Framing of revenues and MRR – ARR
Learn to compare your internal data (ERP, billing tools) with the indicators calculated by Fincome. Identify and analyze discrepancies to ensure the reliability of your finance reporting
Why perform a reconciliation?
This allows you to compare your internal data (sales, billing, MRR from the ERP, etc.) with Fincome data, in order to identify where differences come from. The goal is to ensure that variations are justified (for example a discount applied, a one-off invoice, a period shift...) and not the result of an integration or configuration error. By regularly reconciling your revenue and your MRR/ARR, you gain confidence in Fincome data and can explain differences to your finance teams or investors clearly and transparently.
Important preliminary note
The internal reference (ARR file & movements validated by Finance or shared with your investors) is the primary comparison baseline. Billing exports serve as complementary support.
A difference in Fincome does not mean an error : it can reflect a different business rule or a specific calculation option (see §5).
MRR/ARR and their movements rely on a SaaS market consensus (publishers, investors, analysts), but there is no single truth.
Fincome provides several configurable calculation options which can — and sometimes should — justify differences compared to your internal reference.
1. Definitions and conventions (to lock in before any comparison)
Internal ARR reference and movements
Internal reference file including total ARR, movements (New / Expansion / Contraction / Churn), and possibly breakdowns by segment or BU.
Billed revenue
Revenue from invoices issued during the period (sometimes includes one-offs, discounts or credits).
MRR
Monthly Recurring Revenue: monthly recurring revenue, according to your Fincome options (discounts, statuses, tolerances…).
ARR
Annual Recurring Revenue = MRR × 12.
One off / non-recurring
One-time revenues: setup fees, professional services, single sales… (excluded from MRR/ARR).
Scope
Same month, same entities/products/segments, same currency.
Granularity
Calendar month (from the 1st to the last day).
ARR movements
New, Expansion, Contraction, Churn.
2. Recommended primary reconciliation method
Objective: compare Fincome with your internal reference, then use billing exports to document the gaps.
Phase A — Reconcile total ARR
Choose a period.
Record thetotal ARR in your internal reference.
Record theFincome total ARR (or MRR × 12).
Compare the two totals.
Interpretation:
If difference is small → tolerance (rounding/FX).
If difference is significant → move to Phase B.
If needed → document via billing exports.
A difference can be justified by a Fincome option (discounts, statuses, smoothing…). Always document before concluding.
Phase B — Reconcile ARR movements
Record the movements (New / Expansion / Contraction / Churn) in your reference.
Extract the equivalent movements from Fincome (section Data → Export Center).
Compare by category: the sum of movements reconstructs the total change (ΔARR).
Identify discrepancies and adjust parameters if necessary.
Phase C — Reconcile revenue recognition
Go to the revenue recognition page
Analyze the share of one-off revenue versus recurring revenue
Compare with your reference
Phase D — Reconcile by segment / BU (optional)
Extract ARR and movements by segment/BU from both sources.
Compare: some segments may have specificities (local discounts, deferred billing, unpaid invoices…).
3. Detailed reconciliation - Fincome vs reference comparison in an Excel file
Once you have identified a material MRR or ARR discrepancy for a given month, export the details from each source (Fincome vs your internal reference) and compute the differences for each customer.
In Fincome, the export is done from Data → Export Center → MRR by customer / month. This export lets you obtain the list of all your customers with their MRR for each month, to directly compare these values with those from your ERP or your internal file.
On that basis, select concrete cases and explore the reasons for these discrepancies in detail to understand their origin and define a classification of differences by type.
Recommended reconciliation table (by customer)
CUST 001
Alpha Industry
12 000
11 400
-600
Discount
Coupon -5% Q3; Fincome in “net all discounts”
CUST 014
Beta Cloud
5 000
0
-5 000
One off
One-time setup (non-recurring)
CUST 032
Gamma Retail
8 400
9 100
+700
Timing
Invoice 08/31 → period covered in 09
CUST 087
Delta Apps
7 200
6 800
-400
Upgrade/Down
Downsell on 09/18; prorated
Delta = Fincome_M – Internal_reference_M. The acceptable residual should be small, documented (rounding/FX), and below the chosen materiality threshold.
To help you reconcile, you can complete this Excel template:
Main causes of discrepancies to investigate
Discount applied : If your billing system shows a lower amount than Fincome for a customer, this may come from a commercial discount. Fincome, depending on settings, can present an MRR net of discounts while your ERP shows the billed amount after discount, or vice versa. → Identify whether the customer had a promotion or discount that month.
One-off / non-recurring : When the source shows revenue but Fincome displays €0 for a customer, this often corresponds to a one-off billing (non-recurring). Fincome does not include non-recurring items in MRR. → This one-time revenue (e.g. installation fees, exceptional sale) then explains why Fincome MRR is lower than the billing figure observed for this customer.
Period shift (timing) : A discrepancy can arise from a shift in revenue recognition. For example, if an invoice was issued in a different month (billing delay or advance), or if a subscription starts in the middle/end of a month, timing can make Fincome MRR diverge from ERP revenue for that specific month. → These discrepancies often offset from one month to another.
Calculation parameters or missing data : In some cases, none of the above points explain the discrepancy. → Then ensure that Fincome parameters (Settings > Calculation options) are consistent with your billing method (e.g. date of churn recognition, treatment of credits, neutralization of periods…). → If a customer has an unexplained discrepancy, verify that all their invoices and subscriptions are properly accounted for on both sides.
By categorizing each difference this way, you will get a clear view of the sources of discrepancies between your two references. Most often, a few major causes explain most of the total difference, which allows you to focus your analysis on the points that really matter (for example a particular customer or a specific type of operation).
4. Concrete examples of typical discrepancies
Temporary discounts
€1,000 gross, promo -10% for 3 months
Fincome (option “all discounts”) = €900. Expected difference if reference is gross. Category: Discounts.
One off excluded
Setup €5,000 + subscription €600/month
Fincome excludes the setup. Category: One off.
Period shift
Invoice 08/31 for 09/01–09/30
Difference offsets between M–1/M. Category: Timing.
Churn recognition
Cancellation 09/05, period end 09/30
Churn date according to option (on request / end of period). Category: Churn (rule).
Credits / refunds
Credit –€300 on prior invoice
Retro/non-retro/ignored option. Category: Credit/Credit Note.
Billing in arrears
Invoices issued at period end
“Deferred smoothing” option to avoid MRR holes. Category: Deferred billing.
Disjunction / overlap
Two periods separated by one day
“Neutralization” option to fill gaps. Category: Period neutralization.
Included statuses
Fincome = open + paid / reference = cash
Align option 12. Category: Statuses.
5. Fincome calculation options — impact summary
1
Churn recognition
Position churn date
Moves the month of the movement
2
Application of discounts
Gross vs net
Changes the MRR/ARR level
3
Consideration of credits
Handle refunds
Impacts total and movements
4
Timezone
Align the timezone
Fixes day-boundary shifts
6
Exclude open canceled / unpaid invoices
Clean up commitments
Reduces MRR if open at risk
7
Deferred billing
Smoothing of MRR
Avoids intra-month holes/peaks
8
Tolerance for deferred billing
Grace before simulated churn
Temporarily extends MRR
9
Tolerance for future subscription
Anticipate a near start
Simulates anticipated MRR
10
Neutralization of disjunctions / overlaps
Reflects true continuity of MRR
Avoids double counting
11
MRR recognition after period end
Renewal
Maintains/removes the MRR
12
Included invoice statuses
Accrual vs cash
Structural difference if source = cash
6. Recommended operating procedure
Lock the period and currency (e.g. 09/2025, EUR).
Record internal and Fincome total ARR.
Note the difference (Phase A).
Record ARR movements M–1 → M (Phase B).
If needed, compare by segment/BU (Phase C).
Map each discrepancy to 1–2 Fincome options.
Decide:
Keep the internal view and document, or
Adjust Fincome options to align then rerun the reconciliation.
7. Typical fixes
Fincome ARR < reference
Net vs gross view
Adjust discount option
Fincome ARR > reference
Accrual vs cash view
Align statuses (option 12)
Churn too early/late
Different recognition rule
Change option 1
Intra-month holes/peaks
Deferred billing / renewal
Adjust options 7–11
Double counting
Overlapping periods
Enable neutralization (option 10)
Isolated discrepancies
Credits / credits notes
Set option 3
BU discrepancies
Local practices (promos, unpaid)
Phase C: reconcile by segment
10. FAQ
→ Where to start: ARR, MRR or revenue? Always with thetotal ARR of the internal reference (your reference file that is authoritative). Then reconcile ARR movements (New / Expansion / Contraction / Churn), the split of one-off revenue versus recurring, and if necessary, segments/BU. Billing exports serve as support to document a specific point.
→ Does a difference mean there is an error? No. A difference primarily signals a difference in interpretation (business view, scope, calculation options). It is only an “error” if the difference is neither explained nor accepted after analysis. The goal of reconciliation is to document then decide: we accept the difference (intended view) or we adjust an option to align.
→ Why does my Fincome ARR differ from my internal reference file? In many cases, the cause is related to a calculation option :
Discounts (Option 2): before discount / permanent only / all (default).
Included invoice statuses (Option 12): open + paid (default) vs paid only (cash view).
Churn recognition rule (Option 1).
Deferred billing / renewal / tolerances (Options 7–9, 11).
Neutralization of gaps or overlaps (Option 10). Good practice: identify the option that explains the difference, document it and decide to accept or align.
→ How to handle discounts in reconciliation? Clarify the target view:
Gross : before discount → higher MRR/ARR.
Net excluding temporary promos : permanent discounts only.
Net all discounts (default) : includes permanent and temporary. Apply the same rule on both sides (reference & Fincome) and document the choice.
→ What if my internal reference is in a “cash” view (receipts)?
Align theOption 12 “Invoice statuses taken into account” to Paid only in Fincome to compare two cash views.
If you keep the accrual view (open + paid) on the Fincome side, the difference is structural and must be accepted and explained.
→ How to explain a churn “one month too early/late”? Check theOption 1 “Churn recognition” :
At cancellation requestAt effective cancellationEnd of last paid period(default) The movement will be positioned differently depending on the option. Document the chosen rule.
→ Should one-offs (setup, services) appear in ARR? No. By definition, ARR/MRR measures the recurring. One-offs remain outside ARR. A difference vs a “total revenue” report that includes one-offs is expected and justified (category One off).
→ How to handle credits / refunds? Choose theOption 3 “Consideration of credits” :
Include – retroactive(impacts the original period)Include – non-retroactive(impacts the month of issuance)Ignore(default) Align with the interpretation of the internal reference. Document the option and the credit identifier.
→ What if total ARR is reconciled but movements differ? Don’t panic, this is common. Move to the bridge by ARR movement category (New / Expansion / Contraction / Churn). Differences often come from:
discounts (permanent vs temporary),
churn rules,
smoothing / renewal / tolerances (Options 7–9, 11),
statuses (accrual vs cash). Categorize and explain each component.
→ We bill at period end: why do we observe “holes” in ARR or MRR? Without enabling the treatment option for invoices billed in arrears (Option 7), MRR can drop between two invoices. Enable a tolerance (e.g. maintain if invoice ≤ 5 days before period end) or set renewal (Option 11) to reflect your operational reality.
→ What is the impact of timezones? Day-boundary date changes (UTC vs local) can move an event by one day (invoice, start/end). Set the timezone (Option 4) to avoid artificial discrepancies between the reference and Fincome.
→ How to handle multi-currency / FX in the reconciliation? Choose a common reference currency. Convert on the reference side or in a reconciliation tab with an explicit rate. Residual differences (FX rounding) are acceptable if documented.
→ We see a discrepancy concentrated in one BU / segment: what to do? Move to Phase C: compare ARR & movements by BU/segment. Look for specific practices (frequent promos, local cash view, deferred billing, unpaid invoices). Decide either to accept these specific rules or to harmonize.
→ A customer exists in the reference but not in Fincome (or vice versa)? This is a mapping problem (ID, name, duplicate, renaming). Update the mapping table and rerun the comparison. Also check the nature (one-off) and the status (trial/paused/unpaid/canceled).
→ How to treat subscription statuses (trialing, paused, unpaid)? Clearly define your policy:
trialing: 0 MRRpaused: 0 MRR as long as the pause is activeunpaid: depends on your internal policy (count the commitment or set to 0). Set consistently with Option 12 and document.
→ Where do “tolerated differences” stop (rounding, cents, FX)? There is no universal threshold. Practical rule: reach ≥ 95% of difference explained and tolerate a small residual (rounding/FX) that is documented.
→ The internal reference includes CARR (signed contracts not invoiced): how to compare? Start by reconciling billed ARR. Then expand to CARR (signed contracts not yet invoiced). Need help? Contact Fincome support to reconcile the transition.
→ The reference is “gross” but we want to move to “net” (or vice versa): how to do it? Decide the target view (Finance / Management / Investors). Update Option 2, rerun the reconciliation on a recent month and record the decision (date, impacts).
→ How to properly track reconciliation for internal audit? Keep a dated reconciliation file with: period, currency, scope, total ARR, movement bridge, segments, chosen options, justifications and decisions. This is your assumptions log.
→ What if total ARR is reconciled but some major accounts still show an unexplained delta? Target 3–5 accounts with a large delta, reconstruct the chronology (periods, discounts, upgrades/downgrades, credits, statuses). The delta almost always results from an option or timing.
→ Differences between “total revenue” and ARR: how to avoid confusion? Total revenue includes one-offs and follows billing/collection. MRR/ARR reflects the recurring (commitment/contract). Maintain two tracks: P&L vs ARR, and always specify the view used.
→ When to adjust calculation options in Fincome rather than document the difference? If the difference recurs systematically and your organization wants a target reading (e.g. cash view for the board), align the option. Otherwise, accept the difference, documented and shared.
Useful links
Reconciliation tutorial part 1: Video link
Reconciliation tutorial part 2: Video link
Reconciliation tutorial part 3: Video link
Related articles:
Fincome data vs billing data – Understand in detail why your Fincome data may differ from those of your billing system,
Manage calculation options - How to adjust parameters to best align MRR calculations
Last updated