Why revenue numbers never match

Revenue discrepancies aren't bugs—they're inevitable features of how modern companies operate.

Different definitions

Stripe reports what was actually charged. It includes prorations, refunds, disputes, and currency conversions. MRR is calculated from active subscriptions at a point in time.

Your database might track "contracted revenue" based on subscription records—what customers agreed to pay, regardless of what was invoiced or collected.

The CRM shows deal values, which might include one-time fees, multi-year contracts counted upfront, or pipeline optimism that never closed.

Different timing

Stripe updates in real-time. Your database might batch-process subscription changes overnight. The CRM updates when sales remembers to move deals to closed-won. Comparing them at the same timestamp compares different realities.

Different boundaries

Which customers count? Stripe sees everyone with a payment method. Your database might exclude free trials. The CRM might include partner deals that don't flow through Stripe at all.

The cost of discrepancies

When revenue numbers don't match, someone has to reconcile them manually. Usually before an important meeting. Usually under time pressure.

The real costs:

  • Hours of forensic work tracing individual transactions across systems
  • Delayed decisions while waiting for "the real number"
  • Lost credibility when different teams present different figures
  • Audit risk when you can't explain the differences
  • Compounding errors when discrepancies go unnoticed and grow

How Eru reconciles revenue

Understand what each system means

Eru's AI agent explores each data source to understand its specific definition of revenue. Not a generic "Stripe connector"—your actual implementation. It learns which fields represent MRR, ARR, one-time charges, and discounts. It maps the relationships between subscriptions, invoices, and payments.

Establish clear mappings

Once Eru understands each system, it creates explicit mappings. "MRR in Stripe equals the sum of active subscription amounts, minus scheduled cancellations, converted to USD at daily rates." These mappings are documented, versioned, and auditable.

Run continuous checks

Eru schedules Truth Checks that compare revenue across systems with defined tolerances. "Stripe MRR should match database MRR within 1%." When the check fails, you get an alert with the exact discrepancy and where to look.

Explain the differences

Not all discrepancies are errors. Some are timing differences. Some are definitional. Eru tracks known variances so you can distinguish expected differences from actual problems.

Example: Monthly revenue check

Truth Check: Monthly Revenue Reconciliation Schedule: Daily at 6am UTC Tolerance: 1% or $500, whichever is greater Sources: - Stripe API: sum(subscriptions.plan.amount) where status=active - Database: sum(mrr_cents)/100 from subscriptions where cancelled_at is null - HubSpot: sum(deal.amount) where stage=closed_won and close_date in current_month Expected: All three within tolerance Alert: #finance-ops on failure Evidence: Include top 10 largest discrepancy contributors

What you get

Single source of truth

One documented definition of revenue that everyone uses. No more "which spreadsheet has the real number?"

Early warning

Catch discrepancies when they're small. A 2% drift caught early is easier to fix than a 15% surprise at quarter-end.

Audit trail

Every check execution is logged with full evidence. When the auditor asks how you calculated revenue, you have receipts.

Time back

Stop spending Friday afternoons reconciling spreadsheets. Let Eru do the tedious comparison work.

Common reconciliation checks

For CFOs: revenue accuracy as your system of record during fundraising

If you’re a CFO at a Series B company between $15M and $80M ARR, revenue reconciliation isn’t a data engineering problem — it’s a board credibility problem. When your Stripe MRR, Salesforce pipeline, and internal database report different numbers, your board loses confidence in every metric you present.

Stripe–Salesforce reconciliation for board-ready revenue

The most common reconciliation gap at mid-market SaaS companies is between Stripe (what customers actually pay) and Salesforce (what deals closed for). Eru reconciles these continuously, so your board deck revenue figures are accurate the moment you need them — not after a week of spreadsheet forensics.

  • At $15M ARR — a 5% Stripe–Salesforce variance represents $750K in potential misreporting. That’s material for a Series B board.
  • At $50M ARR — the same 5% variance is $2.5M. At this stage, investors and auditors expect you to explain every dollar of discrepancy.
  • At $80M ARR — approaching IPO readiness, your revenue recognition must be audit-ready with full data lineage. Eru provides the reconciliation trail that SOX compliance demands.

ARR forecasting accuracy that survives due diligence

VCs evaluating your company will pull your revenue data apart. They’ll compare your reported ARR against what Stripe says, check your NRR methodology, and ask for cohort-level retention data. Eru ensures your numbers tell a consistent story across every data source:

  • Reconciled ARR — calculated from actual billing data matched against contracts, not CRM pipeline assumptions.
  • Revenue waterfall — new business, expansion, contraction, and churn broken out and reconciled across Stripe and Salesforce.
  • Audit trail — every reconciliation decision documented and versioned, ready for VC due diligence without a preparation sprint.

For data leads: integration reliability and multi-system data mapping

If you’re a data lead or RevOps engineer responsible for revenue data integrity across systems, you know the pain of maintaining reconciliation pipelines. Schema changes break silently, entity matching logic drifts, and the monthly close process still requires manual verification. Eru handles the cross-system reconciliation layer so your team can focus on analytics.

Multi-system data mapping consistency

Revenue data flows through 4–6 systems at most mid-market SaaS companies: Stripe for billing, Salesforce or HubSpot for CRM, your product database for usage, Snowflake or BigQuery for analytics, and Intercom or Zendesk for support signals. Keeping entity mappings consistent across all of these is the core data engineering challenge:

Snowflake, dbt, and Hex compatibility

Eru integrates with your existing data stack rather than replacing it:

API-based data pipeline governance

For data teams managing revenue pipelines, Eru provides the governance layer that custom-built ELT pipelines lack:

Frequently asked questions

How does Eru handle data accuracy for board reporting?

Eru reconciles revenue data across all connected systems — Stripe, Salesforce, your database, and your data warehouse — before producing any metric. Every revenue figure traces back to reconciled source data with documented data lineage. When Stripe says $1.2M and Salesforce says $1.3M, Eru identifies and explains every discrepancy so your board deck reflects what customers actually pay. For CFOs at the $15M–$80M ARR stage, this means board metrics that survive VC due diligence without a two-week reconciliation sprint before each meeting.

Can Eru integrate with our existing data warehouse?

Yes. Eru connects directly to Snowflake via read-only access and can consume data from your existing dbt models. It also integrates with Stripe, Salesforce, HubSpot, Intercom, Zendesk, Amplitude, and Segment via OAuth. Eru doesn’t replace your data warehouse or BI tools like Hex — it adds the cross-system entity resolution and revenue reconciliation layer that’s difficult to build and maintain in dbt alone. Your data team keeps their existing stack; Eru handles the revenue accuracy problem.

How does Eru handle Stripe–Salesforce reconciliation?

Eru connects to both Stripe and Salesforce via read-only OAuth, uses AI to resolve customer entities across systems (matching Stripe customer_id to Salesforce Account ID), and continuously reconciles billing data against CRM records. It flags every discrepancy — missed cancellations, price changes not reflected in CRM, subscription modifications that bypassed Salesforce, and billing cycle misalignments. Most Series B companies discover 3–8% variance between Stripe and Salesforce. For a $50M ARR company, that represents $1.5M–$4M in potential reporting error that Eru catches before it reaches your board.

What data pipeline governance does Eru provide?

Eru provides automatic schema change detection (re-maps data sources when upstream schemas change), data freshness monitoring (alerts when connected sources stop sending data), reconciliation audit trails (every entity mapping decision is logged and versioned for SOC 2 compliance), and defined tolerance alerting (set acceptable variance thresholds and get alerted when they’re breached). This is particularly valuable for data leads managing multi-system pipelines who need governance guarantees that custom-built Snowflake + dbt pipelines struggle to maintain.

Related

Stop reconciling manually

Eru reconciles Stripe, Salesforce, and your data warehouse continuously — so your board deck is accurate the moment you need it.

Book a call