Three scattered revenue spreadsheets become one board-ready forecast suite in a single command — plus the data problems no single file can show.
Built for a B2B SaaS finance team. Every month the finance lead stitched a revenue forecast together by hand from three sources: a renewals export, a new-business pipeline export, and a manual running-balance workbook. The number came out right, but it cost hours, and the prep crowded out the analysis. The whole point of automating it was to spend the time reading the forecast instead of assembling it.
Context
B2B SaaS Finance Team
Run Time
~5-7 Seconds
Output
6 Artifacts, One Command
Reusability
Any Salesforce-Fed Forecast
The forecast lived in three places that never sat together: renewals in one export, new business in another, and the running balance in a manual workbook. Merging them by hand was slow, and because the sources never touched, the data-quality problems hid in the gaps. Deals closed-lost with no revenue attached, contract periods mislabeled, dates that only meant what you assumed they meant — all invisible until something downstream broke.
One command reads all three workbooks, normalizes them to a common schema, and writes six artifacts in about five seconds — each aimed at a different reader.
Every renewal and opportunity, normalized into one flat table. The one file everything else is built from.
The finance lead's own spreadsheet, returned with two new tabs and every formula preserved. No new schema to learn.
A clean closed-vs-committed view of year-end MRR, separate from the source files.
The narrative: starting balance, projections, the headline finding, and the cleanup punchlist.
The whole year in one view, designed to drop into a deck or an email.
A presentation-ready slide for the leadership read, generated from the same data.
The point of merging the sources was never the merge. It was the story that only shows up once they sit together. The consolidator surfaces the top wins, the top losses, the commit-stage deals, and the single largest contributing cluster — and it flags the thing no single file could: opportunities marked closed-lost with no revenue data attached. Silent churn, invisible in any one source, reported as a same-week cleanup list.
It also respects the traps in the real data. Salesforce labels every new contract period a “new customer” even when it's a renewal, so the tool classifies on revenue-delta and stage instead of trusting the type field. It reads each row's date from the plan start date, not the grouped close-date column that's only populated on the first row of each group. Those are the non-obvious gotchas that produce wrong numbers if you trust the labels — the difference between a script and a tool someone can stake a board meeting on.
It's framed as today's bridge, not tomorrow's architecture. The team's end-state is Salesforce as the single source of truth; this tool accelerates the move there, it doesn't pretend to replace it. And it never extrapolates beyond the data. If there's no pipeline for a future quarter, the forecast shows flat for that quarter — honest and empty, not a synthesized guess dressed up as a projection. Reusable on any revenue data of the same shape: a Salesforce-fed forecast with a manual balance bridge.
I build working AI tools for businesses, not slide decks about AI. If a number your team needs takes hours to assemble every month, let's talk.