Use case

Weekly marketing report automation

The weekly report, on autopilot — same structure, same definitions, every Monday. Opera refreshes the numbers, appends to your Sheet and posts the summary before the team logs on.

The weekly report is the most repetitive artifact in performance marketing: the same pulls, the same columns, the same recomputations, fifty-two times a year — due at the exact moment everyone wants to discuss what the numbers mean, not assemble them.

Monday morning, today

  1. Pull last week's spend from each ad platform — separately, in each one's interface
  2. Export the MMP's installs and conversion events for the same seven days
  3. Reconcile the two (they won't match; decide which story to tell)
  4. Open the report, find this month's section, locate the next empty week row
  5. Paste, reformat, recompute CAC/CPI/ROAS, extend the formulas
  6. Write the summary; answer the first 'is this right?' before coffee

What breaks

Boundary errors (Sunday counted twice or not at all, depending on timezone), restated platform numbers (Meta's Friday looked low on Monday and right on Thursday), the wrong week's row, a formula overwritten by a hurried paste, and the silent killer: definitions applied slightly differently by whoever happened to build it that week.

What the automated week looks like

Every Monday, before standup
Periodlast full ISO week, Mon–Sun, in the report's timezone
PullsMeta, Google, TikTok, Snapchat spend + AppsFlyer installs and KPI events, client filters applied
Re-pull windowtrailing days re-pulled so Meta/Google restatements converge
Writepreviewed, duplicate-checked, append-only into the current section
DeliverySlack/email summary with WoW deltas and exception flags

"Every Monday, update the weekly report with last week's spend, installs and CAC, and post to #growth."

Consistent every single week

The report stops mutating. Same period logic, same filters, same KPI formulas, same formatting — because the run executes a stored specification instead of a person's memory of one. Week 37 is computed exactly like week 12, which is what makes the trend line mean something.

The summary your team actually reads

Weekly paid — Wk 24 · Spend $48.2k (+6%) · New customers 3,180 (+9%) · Blended CAC $15.16 (−2%) · ⚠ Snap CAC $18.90, above the $17.50 target

Headline, deltas, exceptions, link to the Sheet. The conversation starts at 'why is Snap up' instead of 'where's the report'.

One report, two altitudes of reader

The same workbook serves the operator and the executive if it's structured for both: the summary block and Slack message for the fifteen-second skim, the rollup and channel detail for the person who has to act. Permissions stay native Google — leadership gets the link with view access, the team edits, nobody gets a new login. The discipline that makes this work is keeping the summary generated from the rollup rather than maintained beside it: one source of numbers, two reading depths, zero opportunities for the deck version and the sheet version to disagree in a board meeting.

When the week is weird

Holidays, a market launch, a tracking outage — some weeks aren't comparable, and the report should say so rather than pretend. The pattern: the run still executes (the data is the data), the summary carries an annotation ("Eid week — volume comparisons vs Wk 23 not meaningful"), and the annotation lands in the row's notes column so the trend line carries its own context six months later. What you never do is skip the week or hand-adjust the numbers — gaps and edits are how report histories stop being trusted.

What reviewers actually check in the diff

The two-minute Monday review, codified: the period label (right week, right section), spend magnitude against expectation (catches a filter change instantly), the customer count against the platform's claimed range (catches dedup or event-name breaks), and any flag the summary raised. Four glances. Everything deeper is analysis, which now has its morning back.

The definitions block, field by field

The one-page contract that makes week 37 comparable to week 12:

  • Period — last full ISO week, Mon–Sun, Asia/Dubai (named, not implied)
  • Customer eventpurchase, unique users, re-engagement excluded
  • Scope — campaigns prefixed US_; geo = US; media sources: paid only
  • Formulas — CAC = spend ÷ customer event; CPI = spend ÷ AF installs; ROAS = AF revenue ÷ spend
  • Targets — CAC ≤ $15 blended, ≤ $17.50 per channel; flags at breach
  • FX — account currencies → USD at pull-time rate, one source

Ten minutes to write, signed by whoever answers for the numbers — and from then on, every dispute about the report is a dispute about a line in this block, which is a dispute you can actually end.

Same pipeline, three cadences

Once the weekly runs, the other rhythms are configuration, not new projects: a daily pulse (yesterday vs 7-day baseline, flags only) for the team channel, and the monthly close (run after restatements settle, month re-pulled whole, appended to the monthly section) for the client. One stored specification, one set of definitions, three audiences served — and none of them depend on anyone's calendar memory.

Rolling it out

One week to hands-off
Map the report — Opera detects tabs, sections, columns and formulas; you confirm
Lock the definitions — period boundary, KPI formulas, filters, in writing
Run one Monday in parallel — automated vs manual; resolve any diff to a definition, not a vibe
Hand over the schedule — and keep the preview policy as strict as you like

Safe enough for production

Opera is built to touch production reports and live ad accounts without breaking anything:

  • No destructive writes. Updates are append-only by default — your existing data and formulas are never overwritten.
  • Preview before execution. You see exactly what Opera will change before a single cell is written.
  • Campaigns paused by default. New campaigns are created paused, with approvals required before any spend.
  • Full audit logs and client-level isolation. Every action is logged, and each client's data and rules stay separate.

See this running on your own reports.A 45-minute workflow audit maps your current process and shows exactly what Opera automates — step by step.

Frequently asked questions

Can it run before the team starts on Monday?
Yes — schedule it for any time, in the report's timezone. Most teams run it early Monday so the summary is waiting in Slack.
What about platforms restating last week's numbers?
Each run re-pulls a trailing window, so Thursday's restated Friday updates the report instead of diverging from it.
Will it match our existing format exactly?
Yes — Opera follows your structure and formatting. The point is that the report your stakeholders know keeps arriving, minus the manual build.
What about weeks that aren't comparable — holidays, launches?
The run still executes; the summary and the row carry an annotation so the trend keeps its context. Skipping or hand-editing weeks is what erodes a report's history.
Where does the summary go?
Slack, email, or both — per report, per audience.

See exactly what Opera would automate in your workflow.

A 45-minute teardown of how you report today: we map every step, mark what Opera automates, and send you the written spec — useful whether or not you buy.