← Back to hub
StackDX · Revenue

Revenue Dashboard

How we get to the year-end estimate

Forecast composition vs actuals

Booked Renewals New logo Stripe / BOE Actuals (QuickBooks)

Each bar is the forecast for that month, stacked by source. In past months the bar should reach its diamond — if it falls short, invoiced revenue isn't captured in contracts.

Forecast mix

Stripe (Maps) — year over year

BOE advertising (Zoho) — year over year

Top clients

Upcoming deals

Clients by month

Billing reconciliation —

Every client QuickBooks invoiced in — the universe that should recur — plus anyone with a contract billing row, a term ending, or an invoice this month. Not all of it is renewal: a mid-term multi-year contract bills on its anniversary with no renewal deal behind it, which is booked revenue rather than a renewal. Status is the stage a client has reached — deal in the CRM, booked into contracts, invoiced in QuickBooks — and the line under each client name says why, since a Booked row can still be days from term expiry.

Missing — in no system at all Invoiced, no deal — billed with nothing behind it Invoiced, not in contracts — billed, contracts table not updated Renewal — deal exists, not booked Booked — in contracts, not invoiced Invoiced — booked and invoiced qb deal idinvoice carries the deal id contract deal idcontract row cites the deal name onlyclient-name text alone

New deals expected to close —

forecast — excluded from every figure above

New-business pipeline, kept out of the reconciliation on purpose. Blending it in lets new-business dollars paper over a renewal that never landed.

Tie-out — contracts scheduled vs. QuickBooks invoiced

Renewal horizon

Contract dollars coming up for renewal, by the year the term ends. Forward-looking, so it does not move with the invoicing month on the Billing tab — that tab asks whether this month's billing actually landed, this one asks what is due to be renewed and when.

Clients above up for renewal

What links these three systems

The reconciliation joins Pipedrive, the Contracts table and QuickBooks. How reliable each row is depends entirely on whether a real key was available or whether it fell back to matching client-name text. This tab is that picture.

How far the deal id reaches
QuickBooks

Same deal, two client names

Rows where the Contracts table and Pipedrive share a deal id but disagree on the client name. The deal id joins these correctly; a name match would silently miss them. This is the strongest argument for finishing the key.

One client scheduled twice

Two spellings of the same client, both scheduled to bill in the same month. The schedule double-counts, and this is the entire reason the tie-out does not close to zero in those months.

Names this month had to fold together

The current month's clients whose sources spell the name differently. These were matched on normalized text, not a key — each one is a place a typo or a new DBA would break the reconciliation silently.

QuickBooks by client —

Straight from QuickBooks — a single source, so nothing here depends on matching names across systems.

Client comparison — invoiced vs contracted vs pipeline

Contracted but never invoiced — check billing / name match Invoiced ≥ $25k with no contracted billing or open deal

Month spotlight

Module coverage

Click a module to filter the table below to the clients that have it. Pick several to find clients that have all of them.

Company accounts