The Noise Reporting System

Break the SignalFORNoise New Media

Reports that build themselves.

Your team generates one in an afternoon instead of two weeks. The fair board actually reads it. And it holds up in a year when the numbers are down.

See a sample report

0 days → 1
To build one report
0 → ~12
Screens the client scrolls
0
Clients, three templates
0 yrs
Of history it can reach
01 · What breaks today

The current report can fail before anyone reads a number.

This is from a real one. Six of the headline figures on page one came out as a connector error instead of numbers, and it went to the client that way. Nobody caught it, because a person had to assemble the page by hand and there was no check that the data actually arrived.

Total ad spend

"The customer account can't be accessed because it is not yet enabled or has been deactivated."

Overall digital ROAS

"The customer account can't be accessed because it is not yet enabled or has been deactivated."

What it should say

3.85x$51,126 spent. $196,980 in tickets.

Also shipped on that page: a chart still titled "Edit title (copy)".

None of that is anyone's fault. It's what happens when a report is stitched together from screenshots and dashboard embeds under deadline. A generated report either has the number or refuses to publish, and it never carries a default title nobody changed.

02 · The harder problem

A report can be completely right and still lose the room.

You're hired to sell online tickets. The client judges the whole event. Weather, pricing, a lineup change or one bad news week pushes those apart, and then the numbers proving the campaign worked are the ones that sound most out of touch.

+23%
−8%

ZERO = LAST YEAR

Advance online
Before the gates
Overall online
Whole campaign

One campaign, one year. The advance push did its job. Two washed out days during the run dragged the headline under. Show only the second bar and you've told the truth and lost the argument. Show both, with the weather next to them, and you've told the story.

03 · Who reads it

It doesn't stop at the marketing contact.

It gets forwarded to a board, and quoted to a county commission, a sponsor, sometimes a state legislature. Fair leadership already reports the same set of numbers upward every year. If the report connects to those, it gets used. If it stops at click through rate, it gets filed.

01
What you spent and what came back

One sentence, first thing on the page. Not a rate or an index. Money in, money out.

02
Tickets, and what moved them

Advance against during the run, by product, against last year, with the weather and price changes that explain the gap sitting right there.

03
Attendance the campaign can claim

The number the industry organizes around, split honestly into what advertising can move and what it can't.

04
Their own per head figure, applied

Fairs publish average spend per visitor. Multiply it out and a ticket count becomes on site spending, which is a number the board already uses.

05
Impact they can quote

This is why it gets forwarded instead of filed. A board defending next year's budget needs a sentence about what the event returns to the city. Hand them that sentence and the report stops being an invoice attachment.

04 · The report

Less to read, more to see.

The detail doesn't vanish, it moves. Anyone who wants campaign level granularity keeps a live link to it. What's left is something a board member gets through in ninety seconds.

Today~80 screens
built by hand
Executive summary
Year on year
Product revenue
Google Ads tables
Performance Max tables
Search terms
Programmatic display
TikTok tables
X and Reddit tables
Digital out of home
Email and SMS tables
Dashboard screenshots
Creative
Audience and targeting
Recommendations PAGE 78
Proposedone page
generated
You spent this. You made this.FIRST THING ANYONE SEES
Executive summary
What else was going onWEATHER, PRICING, LINEUP, INCIDENTS
Advance against during the runWHERE THE STORY USUALLY IS
Product year on year
One chart, every channelTOGGLE THEM ON AND OFF
Impact the board can quotePER HEAD APPLIED, STATED PLAINLY
Creative that sold
What we'd do differently WHERE IT GETS READ
Plain explanationsNEXT TO ANY NUMBER THAT NEEDS ONE

See the whole thing as a sample

05 · Every screen

Built for a phone first.

Not shrunk down to fit one. Charts redraw for the screen they're on, tables turn into cards, and it's never a PDF you pinch to zoom. Same link works on a phone, a tablet and a boardroom display, and it still exports to PDF for whoever wants paper.

PHONE
TABLET
DESKTOP
Charts that move

Figures count up, bars grow as you scroll. Motion points at the number that matters. Never decoration.

Designed, not templated

It should look worth the money before anyone reads a single figure.

A link, not an attachment

Always current, opens for anyone the client forwards it to, and prints clean if they want it on paper.

06 · Your team runs it

Editable by the people who build the reports.

The system writes the draft. Your account managers do the part only they can do, which is deciding what matters and saying it in the client's language. No engineer involved, and none needed six months from now either.

EDITTurn sections off

Per client, per report. A gate only fair doesn't carry concert sections it never needed.

EDITWrite the narrative

Summary, commentary and recommendations stay human, written by whoever knows the account.

EDITExclude what shouldn't count

A campaign that ran alongside the main push but isn't part of the ticket story comes out in one click.

EDITKey in what has no feed

Proper manual entry for sources that will never have an API, not a spreadsheet bolted on the side.

EDITFix the year on year map

When a product gets renamed or dropped, a reconciliation screen keeps the comparison honest.

EDITAsk for changes in plain words

An assistant wired into the system, so a structural change is a request rather than a support ticket.

07 · Where it comes from

Nothing in that report is typed in twice.

Here is the sample report broken into its parts, with the source of each. Green builds itself on a schedule. Blue arrives from a feed you already pay for. Amber is the part that should stay human, because judgement is the thing you are actually selling.

Client logo, colours, fontsAUTOMATICOne brand record per client. Six values and a logo file.
Hero and section photographyFEEDThe client's own photo folder in Drive, newest first, one click to swap.
Spend, impressions, clicks, revenueAUTOMATICWhatagraph to BigQuery, nightly.
Ticket sales, daily and by productFEEDSaffire and Etix scrapers on a schedule. Ticketmaster by partner access.
The ads themselves, with performanceAUTOMATICMeta, Google and TikTok all return the creative file next to its numbers. The gallery ranks itself.
Weather, day by dayAUTOMATICVenue coordinates and the campaign dates. Nothing to configure.
Email and SMS sendsFEEDHive send events land on the timeline as they happen.
Social posts and engagementFEEDAgorapulse, batched overnight inside its rate limit.
Press mentionsAUTOMATICLocalised monitoring, queued for a person to approve before it appears.
Year on year, product and price historyAUTOMATICRead once from nine years of past reports, then kept current.
Executive summary and commentaryHUMANDrafted from the data and the call history, then written properly by the account manager.
What we would do next yearHUMANThe reason the client keeps paying. Never generated.
Builds itself on a schedule Arrives from a connected system Written by a person, every time
The creative gallery is the one worth pointing at.

Meta, Google and TikTok all hand back the actual ad file alongside its spend and conversions. So the page showing your best six ads, with the image and the numbers underneath, assembles itself and re-ranks every night. Right now somebody screenshots those by hand into a slide. That is a whole afternoon per report that disappears.

08 · Built to be changed

A report is a stack of blocks, not a document.

Every part of that sample is a block with its own data source. A report is an ordered list of them. Add one, drop one, reorder them, and save the arrangement as the template for that client or for all seventy.

= =CoverCLIENT BRAND
= =Return summaryATTRIBUTION
= =Cost per ticketDERIVED
= =Channel returnPLATFORMS
= =Platform compareFILTERABLE
= =Sales phasesTICKETING
= =Activity timelineALL LAYERS
= =Products or nightsTICKETING
= =Spend breakdownPLATFORMS
= =Top creativeAD PLATFORMS
= =TargetingAD PLATFORMS
= =Online vs gateTICKETING
= =List growthEMAIL AND SMS
= =What we could not measureALWAYS ON
= =RecommendationsWRITTEN
= =Full bleed breakPHOTOGRAPHY
+Organic socialOFF FOR THIS CLIENT
+Sponsor exposureAVAILABLE
+Economic impactAVAILABLE
+Pre agency baselineAVAILABLE
RULEThree templates, not seventy

A gate only fair, a fair with concerts, and one with organic social on top. A client's report inherits from its template and keeps only what it changes, so improving the template improves every client at once.

RULEAny value can be overridden

Type over a number where the feed is wrong or missing, and the override is marked so nobody mistakes it for measured data later.

RULENothing publishes on its own

The system assembles a draft. A person reads it and presses publish. Detected press and incidents wait in a queue until someone approves them.

RULEA block that has no data says so

It renders as not measured rather than as zero, or it removes itself. It never invents a number to fill a hole.

RULEEvery report keeps its versions

Send a link, then correct a figure, and the client sees the correction. What changed and who changed it is on the record.

RULENew blocks are additive

Build sponsor exposure once for the client who asks, and it is available to the other sixty nine that afternoon.

09 · Context

The reasons, collected automatically.

Right now the explanation for a soft year lives in somebody's memory and reaches the report only if that person happens to be on the call. This turns it into data that shows up on its own.

AUTOMATICWeather

Daily highs and rain against daily sales, pulled per market for the run of the event.

Biggest single variable at a fair
AUTOMATICLocal incidents

Regional press and social watching for the things that quietly flatten a week. Closures, storms, an incident on the grounds.

Engine already built
AUTOMATICYour whole book

How the rest of your fairs moved this season, aggregated and anonymous. No other agency can produce that sentence.

Your best argument in a down year
LOGGED ONCEProduct changes

Bundles and four packs that show up one year and vanish the next, so year on year stays honest.

Captured during the campaign
LOGGED ONCEPrice changes

Ticket price history per product, so soft volume against strong revenue reads correctly.

Reused every season after
LOGGED ONCELineup tier

Talent level per event, so the effect of a booking shows up in data instead of getting argued from memory.

Turns into booking advice over time
Nothing reaches a client because a machine found it.

Everything detected goes into a review queue first. An account manager decides if it belongs and how it's worded. The system gathers. The judgement stays with the person who knows the client.

10 · The data

Every system you run, and how it gets automated.

We went and checked the real integration path for each one instead of assuming. Three of them work differently than expected. Two are easier than they look, and one that seemed shut has a door.

WhatagraphALL PAID PLATFORM DATA
~70 CLIENTS, ~4 ACCOUNTS EACH

Its public API is built for pushing custom data in. The read endpoints only give back what you already pushed. Nothing hands over the Google, Meta or TikTok data it collects, so pulling by API isn't the route.

The supported path is the BigQuery transfer, scheduled, no code. Data lands in a warehouse nightly and we read it there, which also gets rid of platform API quota limits. One setup per account, then it runs itself.

ROUTE CONFIRMED
Google, Meta, TikTok
X, Reddit, programmatic
THE AD PLATFORMS

No direct access needed. It all comes through the pipeline above, which is what makes 70 clients workable. One connection instead of about 280.

COVERED
SaffireDAILY TICKET TOTALS BY PRODUCT

No public API, which matches the scraping you already do. That scraper doesn't have to stay manual though. Browse AI has a full REST API with scheduled monitors, webhooks that fire when data changes, and bulk runs. It can capture nightly across every Saffire client and push to us without anyone touching it.

We'll also ask Saffire about a proper feed. They're a fairs industry partner, and that request lands better coming from the fair than from a vendor.

AUTOMATABLE NOW
EtixTICKET SALES AND ORDERS

Etix publishes a real partner API under partner terms, with 150 plus reports behind it. That's a credentials conversation with their partnerships team, not an engineering problem, and it replaces scraping with a clean feed.

NEEDS CREDENTIALS
Ticketmaster TM1THE BIGGEST CLIENTS

The iframe makes it look sealed. It isn't, it's just not open in a browser. Ticketmaster runs Archtics Transaction Services, a JSON web service built for exactly this data, through their Nexus partner program.

Production access gets granted based on the relationship between Ticketmaster, the client and the partner. So it's a request the fair makes for you, not a technical wall. Worth testing on one big client before we design around hand keying forever.

ROUTE EXISTS
AgorapulseORGANIC SOCIAL

There's a read only Analytics Open API covering audience, content and community reports, the same data as the CSV exports, by API key. Two things to know. It needs a Custom plan, and it caps at 500 requests every 30 minutes with no way to raise it, so we batch overnight instead of querying live.

X isn't covered by their API because of platform restrictions, so that one stays manual.

PLAN DEPENDENT
Google Analytics 4SITE ANALYTICS

Left out of every revenue figure on purpose. Consent banners mean it only catches a fraction of real sales, and a number you can't defend is worse than none. Return gets built from platform conversions plus email and text revenue, with the method stated in one line on every report.

EXCLUDED ON PURPOSE
Google Drive archiveUP TO NINE YEARS OF REPORTS

The raw material for anything historical. Read once, then sorted into the warehouse by product, price, lineup and result per client per year. It's what makes multi year comparisons possible at all.

READY
Fireflies and HubSpotCALL HISTORY ON THE DEAL

Fireflies has a GraphQL API on every plan that returns transcripts, summaries and action items. The HubSpot link is already live, so what got promised and what changed can surface into the report instead of sitting in somebody's inbox.

READY

What that adds up to

Paid media100%
Organic social85%
Ticketing70%
Context90%
History100%

Ticketing is the only partial one, and it's partial because of Ticketmaster alone.

11 · How it moves

Sources in, one report out.

Everything lands in one warehouse, gets sorted so this year and last year mean the same thing, then renders into a report your team edits instead of assembles.

SOURCESWAREHOUSEOUTPUT Whatagraph, BQ Ticketing feeds Agorapulse Context signals 9 year archive Sort PRODUCTS MATCHEDPRICES TRACKED PHASES SPLITCONTEXT ATTACHED Review queue A PERSON DECIDES The report WEB, MOBILE, PDF
12 · Roadmap

Four phases. Each one useful on its own.

PHASE 1NOWThe report

One client, end to end, fully designed. Sets the format, the return panel and the context section.

DONE WHENYou'd send it to a client exactly as it is.
PHASE 2The pipeline

Warehouse, ticketing feeds, product matching, three templates, and the editing layer your team works in.

DONE WHENYour team runs a client they've never touched.
PHASE 3Context

Weather, incidents, portfolio comparison, and a weekly one page pulse that goes out without anyone building it.

DONE WHENA soft year explains itself, with evidence.
PHASE 4Memory

Lineup performance by market, pricing history, call context, and long range comparisons on demand.

DONE WHENA booking question gets answered by the system.
13 · To start

What we need from you.

Short list, mostly access, and none of it holds up phase one for long.

01
A finished report

The real thing you send a client, plus three or four years of history on one account so we can see how the story changes season to season.

02
Whatagraph access

Enough to stand up the BigQuery transfer on one account and see the shape of the data.

03
Drive, Agorapulse, the scrapers

Client folders, the social account, and the Browse AI setup so we can put it on a schedule.

04
One number to agree on

How return gets calculated without GA4. It ends up being the most prominent figure on every report, so it's worth settling once, together.

05
One big Ticketmaster client

To test the partner route before we design around hand keying as permanent.

06
An hour with whoever builds the reports

Most useful hour in the project. What's tedious, what breaks, what gets redone every single time.