REPORTING · 2025

Weekly reports write themselves.
Across 12 data sources.

A solo consultant was losing every Sunday to building client reports. We built a reporting agent that ingests from everywhere the client lives, writes the narrative, and lands in their inbox at 7am Monday.

12Data sources unified per client
8h → 0hSunday hours reclaimed
100%Uptime over 90 days
10dBuild to first client delivery

Who they are.

An independent data analytics consultant with 8 recurring clients, each needing a detailed Monday-morning report synthesizing SaaS data, marketing spend, ops KPIs and written commentary.

What was broken.

Every Sunday from noon to 8pm was spent pulling CSVs, reconciling numbers, writing commentary, and formatting reports in a template. Eight clients × 45 minutes ≈ six hours of undifferentiated work, plus two more hours fixing mistakes.

Scaling past 8 clients was impossible without either a hire (too early) or burning out (too late).

Prior BI dashboards solved display but not narrative — clients still wanted a human-written summary of what changed and why.

The solution.

01

Per-client data manifests

One YAML per client listing their sources (GA4, Stripe, HubSpot, Mixpanel, Meta Ads, Google Ads, Postgres, etc.), auth credentials, and the KPIs that matter.

02

Sunday-night orchestration

Temporal workflow fans out, pulls each source with retries, reconciles currency and timezone, stores a weekly snapshot in Postgres.

03

Reporting agent

Multi-pass: (1) compute week-over-week deltas, (2) flag anomalies against the 8-week baseline, (3) draft a narrative summary per client using the consultant’s house style.

04

Quality gate

Verifier pass re-reads the draft against the numbers. Catches hallucinated claims. On failure, escalates to the consultant with a specific reason instead of publishing.

05

Delivery

Rendered to branded PDF + Notion page, emailed with a short personal note field the consultant fills in Monday morning in 10 minutes.

What changed.

8h → 0h
Sundays

The consultant reclaimed his weekends. Monday 10 minutes of personalization is the only manual step left.

100%
Uptime

13 Mondays in a row, zero missed deliveries. One flagged draft, one source outage — both handled gracefully.

3 new
Clients added

Capacity opened up. Three new retainers signed in quarter two — pure margin.

$18k
MRR added

Equivalent to 6 months of retainer. ROI recovered in the second month.

“It just works. I still check the first report every Monday out of habit, but I haven’t had to fix one in three months.”

Thomas R.Freelance Data Consultant

The stack.

Anthropic ClaudeTemporalPythonPostgresGA4Stripe APIHubSpotMixpanelMeta Marketing APINotion
Similar problem?

Let’s talk about yours.

Free 30-minute scoping call. Bring your messiest process.

Book a call