B2B SaaS

Revenue reporting when the numbers do not agree

SaaS teams often have a defensible number in the CRM, another in billing, and a third in finance. We build the layer that explains the gap and gives the business one place to start.

Common sources

Revenue systems
Salesforce · HubSpot · Stripe
Data layer
Snowflake · dbt · Airflow
Reporting
Tableau · Power BI

The problem

What SaaS teams usually notice first

The visible issue is a dashboard nobody quite trusts. The cause is usually a set of definitions that changed in different places at different times.

  1. Pipeline does not tie to bookings

    Sales can explain the forecast and finance can explain the closed number, but the bridge between them is rebuilt by hand each month.

  2. ARR and MRR rules drift

    Discounts, upgrades, pauses and churn rules live in spreadsheets or in tool logic that nobody wants to touch.

  3. Cohorts are hard to defend

    Retention and expansion analysis depends on the customer record, and that record is different in each source system.

The approach

Put the revenue logic in one tested layer

The work starts with the disputed number. From there we agree the metric, trace the source fields, build the model, and document the rules so the same question produces the same answer next month.

Definitions first

What counts as pipeline, booking, churn, expansion and active revenue is written down before the dashboard is designed.

Reconciliation built in

The model shows where CRM, billing and finance differ, so a variance becomes an explanation rather than a meeting.

Handover included

Tests, docs and ownership are part of the delivery, so your team can change the model without calling us back for every field.

What the page is meant to qualify

These are not packages. They are the common entry points behind SaaS work.

Board revenue pack

The recurring set of numbers leadership needs, tied back to the model that produces them.

RevOps model clean-up

CRM, billing and warehouse rules brought into one place, with tests for the definitions people argue about most.

Customer and cohort view

A shared customer grain for retention, expansion and account health reporting.

What clients say

How an engagement usually starts

Pick the number in dispute

We start with one report or metric, because a concrete disagreement is faster than a long discovery phase.

Trace it back to source

Fields, joins and business rules are mapped until the gap has a name.

Build the governed version

The agreed definition moves into dbt and the dashboard reads from that tested model.

Leave the change path behind

Documentation and tests show what to edit when the pricing model or sales process changes.

Questions SaaS teams ask early

Do we need to replace the CRM reports?

Usually no. CRM reports are useful for sales activity. The warehouse is where cross-system revenue logic belongs.

Can you work with messy historical data?

Yes, if we agree what the history is allowed to answer. Some questions need a clean rule from today rather than a false answer for the past.

Do you only work with SaaS?

No, but B2B SaaS revenue data is where most of our work starts. We take pharma and ecommerce work where the problem is the same: important numbers split across systems that disagree.

Next step

Which number do you not trust?

Bring the report nobody trusts. We will tell you what is actually wrong underneath it.

Thirty minutes, straight to the problem. No deck, no pitch, and a written summary afterwards either way.