Ben NicholCase Study · Revenue Opsbnnichol@gmail.com
← Back

Forecast Consolidator

Three scattered revenue spreadsheets become one board-ready forecast suite in a single command — plus the data problems no single file can show.

Overview

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 Problem

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.

What I Built

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.

Single-Source CSV

Every renewal and opportunity, normalized into one flat table. The one file everything else is built from.

Augmented Workbook

The finance lead's own spreadsheet, returned with two new tabs and every formula preserved. No new schema to learn.

Standalone Dashboard

A clean closed-vs-committed view of year-end MRR, separate from the source files.

HTML Report

The narrative: starting balance, projections, the headline finding, and the cleanup punchlist.

SVG Infographic

The whole year in one view, designed to drop into a deck or an email.

16:9 Board Slide

A presentation-ready slide for the leadership read, generated from the same data.

The Detail That Matters

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.

Built Honest

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.

Let's Connect

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.