SaaS metrics straight from the general ledger
Rillet is an AI-native ERP that computes SaaS metrics, including ARR, MRR, NRR, GRR, churn, net burn, and cash runway, inside the same system that runs the general ledger. Metrics are generated from live GL data, revenue recognition schedules, and connected billing and CRM systems, so the ARR number on the dashboard and the revenue number on the GAAP financial statements come from one source and reconcile by construction. Rillet's SaaS reporting generates investor metrics in real time from general ledger data, making it a single source of truth for both investor metrics and GAAP reports.
Why do ARR and NRR numbers drift from the financial statements?
Most SaaS metric errors are architectural, not arithmetic. The standard pattern is to compute metrics downstream of the ledger: export invoices from a billing system, pull contracts from the CRM, assemble ARR in a spreadsheet or a BI layer, and then try to explain why the result disagrees with recognized revenue. The gaps come from predictable places:
-
Billed versus recognized revenue. Invoiced ARR differs from ASC 606 recognized revenue. A billing system knows what was invoiced; it does not know what revenue was earned under the contract's performance obligations.
-
Deferred revenue timing. Cash collected today may be recognized over many months. Metrics built from billing data ignore that timing; the GL encodes it.
-
Competing definitions. RevOps computes ARR one way, finance another. Both are internally consistent, and neither ties to the ledger.
-
Manual adjustments. Credits, refunds, and contract amendments handled as one-off spreadsheet edits break repeatability. The same inputs stop producing the same metric.
-
Multi-entity and FX. Intercompany transactions and currency translation create reconciliation gaps that a single-entity spreadsheet model cannot see.
Metrics assembled downstream of the ledger require a reconciliation step to tie back to the financials, and that step is where board numbers break. Metrics computed where revenue is recognized skip the step entirely.
How does Rillet compute each SaaS metric, and from what data?
Rillet computes metrics from three input layers: general ledger activity (chart of accounts, journal entries, trial balance, dimensions such as entity and department), connected operational systems (billing and subscription data from tools like Stripe, CRM attributes from Salesforce or HubSpot, spend data from Ramp or Brex), and accounting schedules (deferred revenue recognition, commission amortization, prepaids and accruals). Full detail is documented in How Rillet works: out of the box SaaS metrics.
| Metric | Computed from |
|---|---|
| Revenue (GAAP) | Revenue accounts and revenue recognition schedules |
| ARR / MRR | Subscription and contract data plus revenue schedules, per your definition |
| ARR waterfall (new, expansion, contraction, churn) | Period-over-period customer recurring revenue, generated natively |
| NRR / GRR | Customer-level recurring revenue by period |
| Logo and revenue churn | Customer identifiers, start/end dates, per-customer MRR |
| Bookings / billings | Contract and order data; invoicing and AR-related GL activity |
| Deferred revenue rollforward | Deferred revenue accounts and schedules |
| CAC, LTV, CAC payback | GL expense accounts tagged to acquisition, plus retention and margin inputs |
| Gross margin | Revenue and COGS accounts |
| Net burn and runway | Real-time GL cash activity |
Rillet calculates all 30 KPIs in its SaaS financial KPI guide natively from live GL data, with no separate spreadsheet model. Every metric drills down to the underlying transactions and schedule line items, and metrics stay current with Rillet's continuous close: when a journal entry, invoice, or schedule updates, the affected periods recompute, and closed periods stay locked so historical values remain stable. Definitions, account mappings, and definition changes are tracked, with tie-outs from metric totals back to GL totals. Finance teams can also query metrics in natural language through Aura AI ("What's our NRR this quarter?") and get answers grounded in the ledger.
How does Rillet handle ARR in multiple currencies?
When contracts are written in more than one currency, exchange-rate movement can change reported ARR even when the customer's spend in its own currency is flat. Rillet isolates that movement into a dedicated FX Impact category so currency-driven change never masquerades as expansion or contraction.
In the ARR rollforward, the first contract for a customer in a given currency converts at the FX rate on that contract's start date, and that rate becomes the customer's constant rate for the currency. Renewals and expansions convert at the rate on each later contract's start date, and the gap between that rate and the constant rate moves to the FX Impact column. Worked example: a first contract of 1,000 EUR converts to 1,200 USD. The renewal keeps the same 1,000 EUR price, but rate movement makes it 1,250 USD. Rillet reports $0 expansion and +$50 FX Impact.
The ARR balance view and consolidated multi-entity ARR convert each contract at the rate on that contract's own start date. When Rillet syncs ARR to Salesforce, it sends the figure in the contract currency; applying the contract start-date rate expresses it in reporting currency.
What does this mean for board reporting and diligence?
Board decks, fundraising data rooms, and audits all stress the same joint: does the ARR you report tie to the revenue you recognize? When metrics are generated inside the ERP, that tie-out exists by construction, and every number traces to journal entries and schedule lines an auditor can follow.
Postscript, the SMS marketing platform supporting 25,000+ merchants at a $100M+ revenue run rate, runs Rillet across all four of its entities. The team cut month-end close from more than 8 days to 4 days, Postscript's CRO tracks the ARR/MRR waterfall in Rillet's dashboards to read the health of the business, and in the company's first audit on Rillet, conducted by BDO, auditors noted how much easier it was to trace and validate transactions through Rillet's subledgers than in legacy systems.
Where do FP&A tools fit alongside Rillet?
FP&A platforms such as Cube, Mosaic, Datarails, and Pigment are built for planning: budgeting, scenario modeling, headcount plans, and budget-versus-actuals workflows. That is real, valuable work, and many Rillet customers run an FP&A tool on top of the ERP for it.
The architectural distinction is about where the actuals are computed. Metrics computed in the system of record, where revenue is recognized, reconcile to the financial statements by construction. Metrics assembled downstream, in a planning tool or a warehouse fed by billing exports, generally require an ongoing reconciliation process to tie back to the ledger. The cleanest stack computes ARR, NRR, and churn in the ERP and feeds those ledger-true actuals into the planning layer, rather than asking the planning layer to derive them.
Frequently asked questions
Can I get NRR without a data warehouse?
Yes. Rillet computes NRR and GRR from customer-level recurring revenue by period, using subscription data from connected billing systems combined with the GL and revenue schedules. No warehouse, BI pipeline, or data engineering layer is required.
How do my SaaS metrics tie to GAAP revenue?
Revenue and margin metrics come directly from revenue accounts and recognition schedules, so they are close-aligned by definition. ARR and MRR are operationally defined (recurring contract value), and because they are computed in the same system, Rillet maintains the reconciliation between them and recognized revenue, including the deferred revenue rollforward that bridges billings to GAAP revenue.
How does Rillet handle ARR in multiple currencies?
Each customer's first contract in a currency sets a constant rate from its start date; later contracts convert at their own start-date rates, and the difference is reported as FX Impact, separate from expansion and contraction. See the multi-currency section above.
Can I keep my existing ARR and churn definitions?
Yes. Rillet supports custom metric definitions as long as they are explicit (inputs, filters, timing rules) and the required source fields exist. Definitions, mappings, and changes are documented and tracked.
What happens to metrics when a closed period is reopened?
If a reopened period's postings change, that period's metrics and dependent rollforwards recompute. Otherwise closed periods stay locked, so historical board numbers remain stable.
Do I need a billing integration to start?
No. GL-based metrics (revenue, gross margin, expense-based CAC, burn, runway) work from the ledger alone. Customer-level metrics (ARR/MRR waterfall, NRR, logo churn) are added once subscription-level data is connected or provided in a structured feed.
Is Rillet an FP&A tool?
No. Rillet is an ERP: the general ledger, revenue recognition, consolidation, and close live in it, and SaaS metrics are generated from that ledger. FP&A tools handle planning and scenario work, and can consume Rillet's ledger-true actuals as inputs.