← Back to my work

BUILD 02 / DATA + REPORTING AUTOMATION / 01 SEP 2026

AI Operations Reporting

I built a reporting workflow that pulls data from three sources into one dashboard. Code calculates the numbers, Claude writes the analysis, and the workflow checks that analysis before publishing.

View the code ↗Workflow + dashboard
28metrics computed in code
3operating data sources
239recorded pipeline assertions

The problem

Sales, delivery, and people operations lived in different tools. Pulling them into a weekly review by hand made it hard to keep the numbers current and consistent.

What I built

The n8n workflow reads Google Sheets, Airtable, and a people-operations API. It normalizes the records and calculates 28 metrics for the current and comparison periods. Claude writes the analysis, the workflow checks it against the figures, and Supabase publishes it to a read-only dashboard.

Handling missing data and reruns

Bad rows are flagged, and missing values keep the reason they’re missing. The publication step uses natural keys and a transaction so rerunning it doesn’t create duplicate records. If the input fingerprint hasn’t changed, it skips another model call.

What I verified

The recorded harness runs the actual pipeline code and checks publication against Postgres. The evidence lists source credentials, live model calls, and deployment checks separately so unfinished checks aren’t counted as passing.

WHAT I LEARNED

What testing caught

A correct calculation can still describe the wrong reporting window. I changed monthly spend to use the actual dates instead of adding up whole months.

Recorded pipeline evidence · September 2026. The figures here come from those test records.

← See the other projectsGot a workflow in mind? ↗