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, invoicing, MRR from the ERP, etc.) with Fincome's data to identify where discrepancies come from. The objective 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 & movements file validated by Finance or shared with your investors) is the primary basis for comparison. Invoicing exports serve as complementary support.

  • A difference in Fincome does not mean an error : it may reflect a different business rule or a specific calculation option (see §5).

  • MRR/ARR and their movements are based on a SaaS market consensus (vendors, 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 before any comparison)

Term
Definition

Internal ARR reference and movements

Internal reference file including total ARR, movements (New / Expansion / Contraction / Churn), and possibly breakdowns by segment or BU.

Invoiced revenue

Revenue from your invoices issued during the period (sometimes includes one-offs, discounts or credit notes).

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.

Objective: compare Fincome with your internal reference, then use invoicing exports to document discrepancies.

Phase A — Reconcile total ARR

  1. Choose a period.

  2. Record thetotal ARR in your internal reference.

  3. Record theFincome total ARR (or MRR × 12).

  4. Compare the two totals.

Interpretation:

  • If difference is small → tolerance (rounding/FX).

  • If difference is significant → move to Phase B.

  • If needed → document via invoicing exports.

Phase B — Reconcile ARR movements

  1. Record the movements (New / Expansion / Contraction / Churn) in your reference.

  2. Extract the equivalent movements from Fincome (section Data → Export center).

  3. Compare by category: the sum of movements reconstructs the total variation (ΔARR).

  4. Identify discrepancies and adjust parameters if necessary.

Phase C — Reconcile revenue recognition

  1. Go to the revenue recognition page

  2. Analyze the share of one-time revenue versus recurring revenue

  3. Compare with your reference

Phase D — Reconcile by segment / BU (optional)

  1. Extract ARR and movements by segment/BU from both sources.

  2. Compare: some segments may have specificities (local discounts, deferred invoicing, unpaid items…).

3. Deep reconciliation - Fincome vs reference comparison in an Excel file

Once you have identified a material MRR or ARR variance for a given month, export the detail of each source (Fincome vs your internal reference) and compute the variances for each customer.

In Fincome, the export is done from Data → Export center → MRR by customer / month. This export allows you to get the list of all your customers with their MRR for each month, in order to directly compare these values with those from your ERP or your internal file.

On this basis, select concrete cases and explore the reasons for these discrepancies in detail to understand their origin and define a classification of discrepancies by type.

$customer_id
customer
internal_ref_M
fincome_M
delta (F–R)
discrepancy_category
comment (ref., period, discount, credit note…)

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; pro rata

Delta = Fincome_M – Internal_ref_M. The acceptable residual must be small, documented (rounding/FX), and below the chosen materiality threshold.

To help you reconcile, you can complete this Excel template:

25KB
Open

Main causes of discrepancies to investigate

  • Applied discount : If your billing system shows an amount lower 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 invoiced amount after discount, or vice versa. → Identify if the customer had a promotion or discount that month.

  • One-off / non-recurring : When the source shows revenue but Fincome shows €0 for a customer, this often corresponds to a one-off invoice (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 invoicing figure observed for that customer.

  • Period shift (timing) : A discrepancy can come 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 the month, timing can make Fincome MRR diverge from ERP revenue for that specific month. → These discrepancies often offset month-to-month.

  • Calculation parameters or missing data : In some cases, none of the above points explains the discrepancy. → Ensure that Fincome parameters (Settings > Calculation options) are consistent with your billing method (e.g. churn accounting date, consideration of credit notes, neutralization of periods…). → If a customer has an unexplained discrepancy, verify that all their invoices and subscriptions are taken into account on both sides.

By categorizing each difference this way, you will obtain a clear view of the sources of discrepancies between your two references. Most often, a few major causes explain the majority of the total discrepancy, 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 common discrepancies

Case
Example
Interpretation / category

Temporary discounts

€1,000 gross, promo -10% for 3 months

Fincome (option “all discounts”) = €900. Expected difference if reference is gross. Cat. Discounts.

One off excluded

Setup €5,000 + subscription €600/month

Fincome excludes the setup. Cat. One off.

Period shift

Invoice 08/31 for 09/01–09/30

Difference offsets between M–1/M. Cat. Timing.

Churn recognition

Cancellation 09/05, period end 09/30

Churn date depends on option (on request / period end). Cat. Churn (rule).

Credit notes / refunds

Credit note –€300 on prior invoice

Retro/non-retro/ignored option. Cat. Credit/Refund.

Invoice in arrears

Invoices issued at period end

“Deferred smoothing” option to avoid MRR gaps. Cat. Deferred invoicing.

Disjunction / overlap

Two periods separated by one day

“Neutralization” option to fill gaps. Cat. Period neutralization.

Statuses included

Fincome = open + paid / reference = cash

Align option 12. Cat. Statuses.

5. Fincome calculation options — impact summary

#
Option
Purpose
Potential effect

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 credit notes

Handle refunds

Impacts total and movements

4

Timezone

Align the timezone

Corrects day border shifts

6

Exclude open canceled / unpaid invoices

Clean up commitments

Reduces MRR if open at risk

7

Deferred invoicing

MRR smoothing

Avoids intra-month gaps/peaks

8

Deferred invoicing tolerance

Grace before simulated churn

Temporarily extends MRR

9

Future subscription tolerance

Anticipate an imminent start

Simulates anticipated MRR

10

Neutralization of disjunctions / overlaps

Real continuity of MRR

Avoids double counting

11

MRR recognition after period end

Renewal

Maintains/removes the MRR

12

Included invoice statuses

Commitment vs cash

Structural difference if source = cash

  1. Lock the period and the currency (e.g. 09/2025, EUR).

  2. Record the internal and Fincome total ARR.

  3. Note the discrepancy (Phase A).

  4. Record ARR movements M–1 → M (Phase B).

  5. If needed, compare by segment/BU (Phase C).

  6. Map each discrepancy to 1–2 Fincome options.

  7. Decide:

    • Keep the internal view and document, or

    • Adjust Fincome options to align and then rerun the reconciliation.

7. Typical fixes

Symptom
Likely cause
Action

Fincome ARR < reference

Net vs gross view

Adjust discount option

Fincome ARR > reference

Commitment vs cash view

Align statuses (option 12)

Churn too early/late

Different recognition rule

Modify option 1

Intra-month gaps/peaks

Deferred invoicing / renewal

Adjust options 7–11

Double counting

Overlapping periods

Enable neutralization (option 10)

Isolated discrepancies

Credit notes / credits

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 from the internal reference (your reference file which prevails). Then reconcile ARR movements (New / Expansion / Contraction / Churn), the split of one-time vs recurring revenue, and if necessary, the segments/BU. Invoicing exports serve as support to document a specific point.


Does a discrepancy mean there is an error? No. A discrepancy is first a signal of a difference in interpretation (business view, scope, calculation options). It is an “error” only if the discrepancy is neither explained nor accepted after analysis. The goal of reconciliation is to document and then decide: we accept the discrepancy (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 invoicing / renewal / tolerances (Options 7–9, 11).

  • Neutralization of gaps or overlaps (Option 10). Best practice: identify the option that explains the discrepancy, document it and decide whether 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 considered” to Paid only in Fincome to compare two cash views. If you keep the commitment view (open + paid) in Fincome, the discrepancy is structural and must be accepted and explained.


How to explain a churn “one month too early/late”? Check theOption 1 “Churn recognition” :

  • On cancellation request

  • On effective cancellation

  • End 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 discrepancy vs a “total revenue” report including one-offs is expected and justified (category One off).


How to handle credit notes / refunds? Choose theOption 3 “Consideration of credit notes” :

  • 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 note identifier.


What if total ARR is reconciled but movements differ? Don't panic, it's 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 (commitment vs cash). Categorize and explain each component.


We invoice at period end: why do we observe “gaps” in ARR or MRR? Without enabling the option to handle invoices 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 border changes (UTC vs local) can move an event by one day (invoice, start/end). Set the timezone (Option 4) to avoid artificial differences between reference and Fincome.


How to handle multi-currency / FX in reconciliation? Choose a common reference currency. Convert on the reference side or in a reconciliation tab with an explicit rate. Residual discrepancies (FX rounding) are acceptable if documented.


We see a discrepancy concentrated on 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 invoicing, unpaid items). 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 issue (ID, name, duplicate, renaming). Update the mapping table and rerun the comparison. Also check the nature (one off) and status (trial/paused/unpaid/canceled).


How to handle subscription statuses (trialing, paused, unpaid)? Clearly define your policy:

  • trialing : 0 MRR

  • paused : 0 MRR while the pause is active

  • unpaid : depends on your internal policy (count the commitment or set to 0). Set consistently with Option 12 and document.


Where do “tolerated discrepancies” stop (rounding, cents, FX)? There is no universal threshold. Practical rule: achieve ≥ 95% of discrepancy explained and tolerate a small residual (rounding/FX) that is documented.


The internal reference includes CARR (contracts signed not invoiced): how to compare? Start by reconciling invoiced ARR. Then broaden 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 trace the reconciliation for internal audit? Keep a dated reconciliation file with: period, currency, scope, total ARR, movement bridge, segments, options chosen, justifications and decisions. This is your assumptions log.


What if total ARR is reconciled but some large accounts still show an unexplained delta? Target 3–5 accounts with large delta, reconstruct the chronology (periods, discounts, upgrades/downgrades, credit notes, 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 invoicing/receipts. 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 discrepancy? If the discrepancy recurs systematically and your organization wants a target view (e.g. cash view for the board), align the option. Otherwise, accept the difference, documented and shared.

Last updated