Written by: Aaron Rovner, Founder, Saas Hero | Last updated: July 28, 2026
Key Takeaways
- Net New ARR mismatches between CRM, billing, and board decks damage investor trust and waste board time on reconciliation instead of strategy.
- The six-step ARR bridge framework (define timing policy, pull source data, build bridge table, categorize movements, reconcile and audit, automate) removes unexplained variance every month.
- Lock core definitions in writing first: Net New ARR equals New + Expansion + Reactivation − Contraction − Churn. Treat billing system data as the source of truth over CRM records.
- Automation through direct connectors from billing platforms and CRM to a BI layer replaces manual spreadsheets with a live dashboard that refreshes without human effort.
- Ready to eliminate monthly ARR scrambles? See how SaaSHero can automate your ARR bridge and scope the full CRM-to-billing integration for your stack.
Prerequisites and Core Definitions for Your ARR Bridge
Confirm access to three systems and alignment on six definitions before you build the bridge.
Required access:
- CRM (HubSpot, Salesforce, or equivalent) with contract-level close dates and ARR fields
- Billing platform (Stripe, Zuora, Chargebee, Salesforce CPQ, or NetSuite ARR module)
- BI tool or spreadsheet (Looker Studio, Google Sheets, or Excel) for aggregation and visualization
Core definitions to document before running any query:
- Net New ARR: The total change in ARR during a period, calculated as New ARR + Expansion ARR + Reactivation ARR − Contraction ARR − Churned ARR
- Beginning ARR: The total active, contractually committed, annualized recurring revenue at the start of the period
- Ending ARR: Beginning ARR + Net New ARR; a monthly ARR bridge must reconcile exactly to ending ARR
- Expansion ARR: Additional recurring revenue from existing customers through upgrades, cross-sells, seat additions, plan upgrades, higher usage, or price increases
- Contraction ARR: Revenue lost from customers who remain active but downgrade plans, reduce seats, decrease usage, or negotiate lower prices
- Churn ARR: The total recurring revenue lost when customers cancel their subscriptions entirely, tracked separately from contraction
The Six-Step ARR Bridge Framework
| Step | Name | Primary Input | Primary Output |
|---|---|---|---|
| 1 | Define Timing and Effective-Date Policy | Contract metadata fields | Written timing rulebook |
| 2 | Pull Source Data | CRM + billing exports | Customer-level ARR snapshot at T0 and T1 |
| 3 | Build the Bridge Table | T0 and T1 snapshots | Per-customer delta rows |
| 4 | Categorize Movements | Per-customer delta rows | Classified buckets: New, Expansion, Reactivation, Contraction, Churn |
| 5 | Reconcile and Audit | Classified buckets | Zero-variance bridge tied to billing |
| 6 | Automate and Hand Off | Stable definitions + BI connectors | Live dashboard refreshed without manual work |
Step 1: Set a Clear Timing and Effective-Date Policy
Purpose: Establish the single date that triggers ARR recognition so every team member runs the same calculation.
Actions:
- Start by adding three separate metadata fields to every contract record: execution date, effective date, and commencement date.
- Use these fields to decide whether ARR is booked on the effective (go-live) date or the signature date, then document that choice.
- Define the grace period after which a non-paying customer moves from active to churned, since this timing rule shapes how churn appears in monthly snapshots.
Decision point: ARR typically updates on the contract execution date, while GAAP revenue recognition starts when service delivery begins, which may be days or weeks later if an implementation period is required. Choose one anchor and apply it consistently. SaaS finance and RevOps teams should maintain separate metadata fields for execution date, effective date, and commencement date rather than using a single “start date” field.
Example: A $60,000 ACV enterprise contract is signed January 5 with a go-live date of February 1. Under an effective-date policy, $60,000 ARR enters the February bridge. Under a signature-date policy, it enters January. Neither approach is wrong. Inconsistency is wrong.
Validation check: Every contract in the CRM has all three date fields populated. No contract relies on a generic “start date” field as the sole timing anchor.
Step 2: Pull Source Data from Billing and CRM
Purpose: Create a customer-level snapshot of every account’s ARR and contract status at the start (T0) and end (T1) of the period.
Actions:
- Export a customer-level ARR file from the billing system for the first day of the month (T0) and the last day of the month (T1).
- Include a stable customer identifier, contract ID, ARR value, status, and effective date in each row so joins stay reliable.
- Cross-reference CRM opportunity records to catch deals closed but not yet invoiced, then flag those as CARR rather than live ARR.
Example: A mid-market SaaS company exports two CSV files from Chargebee, one dated July 1 and one dated July 31, each containing 340 customer rows with ARR values. The CRM shows three additional deals closed in July that have not yet been invoiced. These are flagged as CARR and excluded from the live ARR snapshot.
Validation check: Row count in T0 and T1 exports is reconciled. Every customer ID in T1 that does not appear in T0 is a new logo candidate. Every ID in T0 that does not appear in T1 is a churn candidate.
Step 3: Build the ARR Bridge Table
Purpose: Calculate the per-customer ARR delta between T0 and T1 and organize it into a structured table ready for classification.
Actions:
- Join T0 and T1 snapshots on the stable customer identifier.
- Calculate delta = T1 ARR − T0 ARR for every matched row.
- Flag unmatched T1 rows as new logos and unmatched T0 rows as churned logos.
Copy-pasteable bridge table structure:
| Customer ID | T0 ARR ($) | T1 ARR ($) | Delta ($) | Movement Bucket |
|---|---|---|---|---|
| CUST-001 | 24,000 | 36,000 | +12,000 | Expansion |
| CUST-002 | 12,000 | 0 | −12,000 | Churn |
| CUST-003 | 0 | 48,000 | +48,000 | New |
| CUST-004 | 60,000 | 48,000 | −12,000 | Contraction |
| TOTAL | 96,000 | 132,000 | +36,000 | Net New ARR |
Common Mistakes:
- Counting reactivations as new logos, netting expansion against churn instead of reporting both gross, and mixing booked versus recognized revenue conventions
- Using net deltas instead of gross movements, and snapping mid-period contract modifications to period boundaries
- Allowing customer IDs to change mid-period because of CRM merges, which makes a retained customer appear as churn plus a new logo
Validation check: Sum of all T0 ARR values equals Beginning ARR. Sum of all T1 ARR values equals Ending ARR. Delta column sums to Net New ARR.
Step 4: Categorize ARR Movements by Customer
Purpose: Assign every delta row to exactly one of five mutually exclusive movement buckets so the bridge ties without double-counting.
Actions:
- New: Customer ID absent in T0, present in T1 with ARR > 0
- Expansion: Customer ID present in both periods, T1 ARR > T0 ARR
- Reactivation: Customer ID present in T0 with ARR = 0 (previously churned), present in T1 with ARR > 0
- Contraction: Customer ID present in both periods, T1 ARR < T0 ARR but T1 ARR > 0
- Churn: Customer ID present in T0 with ARR > 0, absent or zero in T1
Decision point for usage-based pricing: For usage-based or hybrid pricing, the contractual floor or minimum commitment counts as ARR while any usage above the floor is tracked separately as consumption revenue and is never annualized from a peak month. For usage-based SaaS, expansion is largely automatic as it follows customer growth, making contraction from usage declines the primary NRR risk.
Example: A customer on a $24,000 base commitment with a usage-based tier consumes $8,000 in overage during July. Only the $24,000 floor enters the ARR bridge. The $8,000 overage is tracked as consumption revenue in a separate column.
Validation check: Every delta row has exactly one bucket assigned. No row is blank. Sum of New + Expansion + Reactivation − Contraction − Churn equals Net New ARR from Step 3.
Need the copy-and-paste ARR bridge template pre-built with these formulas? Get a walkthrough of the template with SaaSHero and see the exact setup for your CRM and billing stack.
Step 5: Reconcile ARR and Document Your Audit Trail
Purpose: Confirm the bridge ties to the billing system to the penny and document any variance with an explanation before the board deck is finalized.
Actions:
- Compare Ending ARR from the bridge to the billing system’s closing balance for the same date.
- Investigate any variance greater than $0, since acceptable variance is zero.
- Document large or unusual movements with a one-line note referencing the contract ID.
- Reconcile ARR to the invoice schedule. Finance teams should reconcile ARR with invoice data monthly to ensure contracted ARR aligns with billed and unbilled revenue schedules.
Example: After running the July bridge, Ending ARR from the table is $4,320,000 but the billing system shows $4,308,000. Investigation reveals one customer’s mid-month upgrade was snapped to August 1 in the billing system but July 28 in the CRM. The timing rule from Step 1 resolves the discrepancy. Billing system wins, and the upgrade moves to August.
Tip: A monthly ARR reconciliation worksheet should show how contracted recurring amounts map to invoices, how invoices map to cash receipts at a high level, how revenue is recognized in the accounting system, and any known timing differences with explanations for why they exist. Store this worksheet alongside the bridge table so any auditor or investor can trace every dollar without a call to the finance team. Once you have a clean reconciliation for at least two consecutive months, you are ready to remove most of the manual work.
Validation check: Bridge Ending ARR equals the billing system closing balance. All variances are documented with contract IDs. GRR and NRR calculations are derived from the reconciled bridge, not from a separate query.
Step 6: Automate the ARR Bridge and Hand It Off
Purpose: Replace the monthly manual process with a live pipeline that refreshes the bridge automatically from CRM, billing, and analytics sources.
Actions:
- Lock movement definitions in a shared data dictionary accessible to finance, RevOps, and engineering.
- Configure direct connectors from the billing platform (Stripe, Zuora, Chargebee) and CRM (HubSpot, Salesforce) to a data warehouse or BI layer.
- Build the bridge logic as a SQL transform or BI tool calculation so it runs on a scheduled refresh.
- Publish the bridge as a live dashboard in Looker Studio or your BI tool with drill-down to the customer level.
Decision point: SaaS companies should switch from spreadsheets to a dedicated ARR tool when they have more than 100 active customers and the spreadsheet takes more than 2 hours per month to maintain. Native integrations with CRM, accounting, ERP, payment gateways, and data warehouses in automated billing platforms enable automatic syncing of usage, payments, and customer status data, which reduces manual reconciliation work and prevents revenue leaks.
Example: A 200-customer B2B SaaS company connects Chargebee and HubSpot to BigQuery through native connectors. A scheduled dbt model runs nightly, applies the movement definitions from Step 4, and pushes results to a Looker Studio dashboard. The CFO opens the dashboard on the first business day of each month and sees a fully reconciled bridge with zero manual input.
SaaSHero configures these data connections, builds the bridge logic, and maintains the live dashboard in Looker Studio or your preferred BI tool, so your team never touches another spreadsheet. See a live ARR bridge in action and understand how the integration is scoped for your stack.
Validation check: Dashboard refresh timestamp is within 24 hours of the current date. Bridge Ending ARR on the dashboard matches the billing system balance for the same date. No manual overrides exist in the published report.
How to Validate ARR Bridge Success
A correctly implemented ARR bridge produces three observable outcomes.
- Zero unexplained variance: Every dollar of movement traces to a contract ID or invoice. No “rounding” or “timing” line items exist without documentation.
- Board questions answered in under five minutes: Any movement can be drilled to the originating customer record without a separate query.
- Audit-ready trail: Every ARR line item ties to an executed contract or order form and a billing plan, which makes the metric defensible for investors and auditors.
For usage-based revenue, confirm that only the contractual floor enters the ARR bridge and that consumption overages are tracked in a parallel column. For long sales-cycle attribution, confirm that CARR (signed-but-not-live contracts) is reported separately from live ARR so pipeline and recognized ARR are never mixed in the same figure.
Advanced ARR Bridge Variations
Usage-based pricing ARR: Usage-based and hybrid pricing models automatically generate expansion revenue as customer usage grows, without requiring separate upsell motions. Track the committed floor as ARR and report consumption revenue as a separate line. Snowflake reported 127% NRR in its Q2 FY2025 SEC filing, illustrating how usage-based pricing drives expansion within existing customer revenue.
Multi-currency ARR: A board-quality ARR walk locks the FX rate at the start of the period and timestamps each component to the day. Use the period-open rate for all movements within that month. Document the rate in the reconciliation worksheet so currency fluctuations are never confused with actual ARR movement.
Mid-contract upgrades: Apply the effective-date policy from Step 1. The upgrade delta enters the bridge in the month the new rate becomes active, not the month the amendment is signed. The pre-upgrade ARR remains in the Contraction bucket and the full new ARR enters Expansion, which preserves gross movement visibility.
Feeding NRR and Magic Number: The reconciled bridge feeds NRR directly. NRR = (Beginning ARR + Expansion − Contraction − Churn) / Beginning ARR. Net Burn Multiple equals Net Burn divided by Net New ARR, so inaccurate Net New ARR inputs directly distort this metric.
Monthly ARR Reconciliation Checklist
Run this checklist on the first business day of each month before publishing any board or investor report.
- Confirm billing system export covers the full prior month (first day through last day, inclusive).
- Verify all three date fields (execution, effective, commencement) are populated for every new contract added during the month.
- Join T0 and T1 snapshots on stable customer IDs, and flag any ID changes caused by CRM merges or account restructures.
- Assign every delta row to exactly one movement bucket, and confirm zero unclassified rows.
- Sum all buckets so New + Expansion + Reactivation − Contraction − Churn equals Net New ARR.
- Confirm Beginning ARR + Net New ARR equals Ending ARR.
- Compare Ending ARR to the billing system closing balance, and document any variance with a contract ID reference.
- Reconcile ARR to the invoice schedule, and flag any contracted ARR not yet invoiced as CARR.
- For usage-based accounts, confirm only contractual floors are included in ARR, and move overages to the consumption revenue column.
- For multi-currency accounts, confirm the period-open FX rate is applied to all movements.
- Publish the reconciled bridge to the shared dashboard, and confirm the refresh timestamp is current.
- Add one-line notes to any movement exceeding 5% of Beginning ARR, referencing the originating contract.
Frequently Asked Questions
How do you track net new ARR accurately for SaaS when your CRM and billing system disagree?
The billing system is always the source of truth. CRM records drift because sales teams update deal values manually and timing rules are applied inconsistently. The correct process for how to track net new ARR accurately for SaaS is to pull the customer-level snapshot from the billing platform first, then use the CRM only to explain movements, not to calculate them. Any discrepancy between the two systems is investigated and resolved against the billing record before the bridge is published. For more detail on this policy, see the decision point in Step 2.
How long does it take to set up a repeatable ARR bridge from scratch?
For a team with clean billing data and a CRM that uses stable customer IDs, the manual version of the bridge can be operational in two to four weeks. The primary time investment is writing the timing rulebook in Step 1 and resolving historical customer ID inconsistencies in Step 2. Automation through a BI tool or data warehouse connector typically adds two to six weeks depending on the complexity of the billing platform and the number of edge cases in the contract data. SaaSHero scopes and configures the full integration, which compresses the timeline significantly for most teams.
Which roles need to be involved in maintaining the ARR bridge?
Three roles are required for a sustainable process. A RevOps lead owns the movement definitions and ensures CRM data quality. A finance or FP&A analyst owns the reconciliation to the billing system and the invoice schedule. A BI engineer or data analyst owns the automated pipeline and dashboard. In early-stage companies where one person covers multiple roles, the critical separation is between the person who classifies movements and the person who audits the reconciliation. These should never be the same individual for the same period.
How often should the ARR bridge be refreshed?
The bridge should be updated monthly for operating reviews and FP&A variance analysis, quarterly for board decks and investor reporting, and annually for audit footnotes and budget reconciliation. Once automated, the underlying data pipeline can refresh daily, which gives the team a near-real-time view of ARR movements without waiting for month-end close. The formal reconciliation and sign-off process still runs monthly on the first business day of each new period.
What are the three next-step options based on team size?
For teams under 100 customers, implement the six-step framework manually in Google Sheets using the bridge table structure from Step 3, run the monthly checklist, and plan the automation migration once the definitions are stable. For teams between 100 and 500 customers, connect the billing platform directly to a BI tool using a native connector and automate the bridge logic as a scheduled query. For teams above 500 customers or with usage-based pricing complexity, engage a RevOps partner like SaaSHero to configure the full CRM-to-billing-to-analytics pipeline, maintain the bridge definitions, and deliver a board-ready dashboard that refreshes without manual intervention.
Conclusion and Practical Next Steps
Inconsistent Net New ARR tracking costs SaaS teams credibility, board time, and valuation. The six-step ARR bridge framework, from timing policy through automation, produces a zero-variance, audit-ready number every month.

Take these three actions immediately after reading this playbook.
- Add execution date, effective date, and commencement date as separate fields to every contract record in the CRM this week.
- Run the monthly reconciliation checklist against last month’s data to identify where the current process breaks down.
- Map the gap between manual spreadsheet time and the automation threshold. If the bridge takes more than two hours per month or the team has more than 100 active customers, the manual process is already a liability.
SaaSHero handles the complete implementation described in Step 6 and delivers a board-ready Net New ARR number every month. The result survives investor diligence, answers follow-up questions in under five minutes, and traces every dollar to its originating contract. Talk with SaaSHero about your ARR bridge and get the implementation running in weeks, not quarters.