IFRS 17FinAIAboutContactSupportPrivacySign InBook a Demo →
IFRS 17 · Ind AS 117 · Reporting, measurement & disclosure

Nothing publishes unless it proves itself.

IFRS 17 replaced one number with a measurement system: every group of contracts carries a best-estimate liability, a risk adjustment and a stock of unearned profit that must roll forward every quarter, reconcile across a dozen notes, and tie to the general ledger. FinIFRS is the platform where that proof is the product. Forty-one reconciliation identities run on every change. If one breaks, the pack says BLOCKED and refuses to be signed. If they all pass, every published figure can be clicked through to the source rows — or the exact calculation — behind it.

41 identities enforced on every run445 automated tests, 0 failing18 statements & notes composedPAA + GMM engines that show their workingIndia / IRDAI parallel-run packHash-chained audit trail
The problem

“Does note 4 tie to note 7, and to the ledger?”

That is the auditor’s first question every quarter. In a world of an actuarial tool nobody in finance can trace, a spreadsheet layer that stitches the disclosures together, and a quarter-end scramble to make them agree, the honest answer is “mostly.” A spreadsheet looks equally confident whether it ties or not — which is exactly the property you do not want in a regulatory filing.

The actuarial tool

Produces numbers finance cannot trace, on a timetable finance does not control.

The spreadsheet layer

Stitches the notes together, carries the version risk, and hides the plug.

The 2 a.m. plug

Someone forces the difference so the pack can go out. Nobody writes that down.

The tie-out binder

Break it on purpose. Watch it refuse.

This is the product — not the reports, the refusal. Delete one retroceded recoverable row from an otherwise perfect book and the pack flips to BLOCKED, names the identity that broke, shows both sides and the delta, and declines to be published. Every pack you distribute carries this binder inside it, so it can never look more finished than it is.

Tie-out binder · MININOVA_RE · 2026-Q1
0 / 41 identities run
RUNNING
Re-running the reconciliation identity register against this period's facts…
0
Passing
0
Open breaks
0
Orphan figures

Select any identity above to read what it proves. A break shows both sides and the delta — never a bare “failed”.

What makes it different
PRINCIPLE · 01

Fail loud, never fail quiet

Every pack carries a tie-out binder: 41 reconciliation identities, each stated as pass or open, giving the pack one honest status — RECONCILED, PARTIAL or BLOCKED. A distributed pack physically cannot look more finished than it is. There is no force-publish button, and there is no 2 a.m. plug.

PRINCIPLE · 02

Every figure traces, or it does not publish

Any number in any statement drills to the source rows behind it — or, if the engine measured it, to the formula, the substituted inputs and the Ind AS 117 paragraph that required the step. Identity R-20 sweeps the whole pack for lineage: a figure with no support is an orphan, and an orphan blocks publication.

PRINCIPLE · 03

Compute or ingest — your actuary decides, per group

Keep the Appointed Actuary’s numbers and we reconcile them, or let the engine measure the group and show its working. Both routes go through the identical gauntlet. If a computed result would break the pack, the platform reverts that group to the ingested numbers and tells you why — an experiment can never corrupt the close.

The reporting engine

Eighteen statements and notes, composed from one set of facts.

Not eighteen exports of eighteen spreadsheets. One canonical fact base, one composer, and a note catalogue shaped on how the large reinsurers actually disclose — each note with a data contract, an identity list, and a rendered layout, repeated per segment and split issued versus held. Change a driver and every note that depends on it moves together, because there is only ever one number.

18
Statements & notes composed
41
Reconciliation identities enforced
20
GMM calculation steps, each with ¶ ref
13
PAA calculation steps
445
Automated tests, hand-computed examples included
0
Orphan figures tolerated at publish

Primary statements

SoFP

Statement of Financial Position

The four IFRS 17 positions plus investments, cash and equity.

SoPL

Statement of Profit & Loss

Insurance revenue → service expense → service result → finance result, in IFRS 17 vocabulary.

SoPL·GL

Profit & Loss on a GL basis

The same income statement rebuilt from the trial balance, as a ledger crosscheck of the actuarial P&L.

The disclosure-note catalogue

D1Gross / retroceded / netThe retro leg tied to the reinsurance asset in the GL (R-02).
D2Roll-forward — LRC · loss component · LICOpening plus movements equals closing, per group, to the rupee.
D3Roll-forward — PV of FCF · RA · CSMCSM split by transition population; cross-ties to D2 (R-06).
D3+CSM movement analysis (¶B96(c))Opening, new business, interest, FCF change, RA change, experience, currency, release, closing.
D4Contracts initially recognisedNew business in the period, by group and profitability.
D5Revenue components (¶106)Revenue built from its components, not reconciled to them after the fact (R-03).
D6Maturity analyses & expected CSM releaseUndiscounted bands reconciling to the discounted balance (R-12, R-13).
D7Acquisition cash-flow asset (¶105A–105B)Roll-forward that closes (R-25).
D8Transition disclosures (¶114–116)CSM and revenue by MRA / FVA / other / post-transition (R-14).
D9Significant judgementsSigned assumption set, methods, RA confidence level, expense allocation, ULAE & ENID.
D10IFIE disaggregation — P&L / OCIUnder the split policy the OCI amount is the rate-change effect (R-09).
D11Risk & liquidity disclosuresLarge losses, event and counterparty concentration, liquidity profile.
D12Management KPI layerThe numbers the board asks for, from the same connected source.
D13India parallel-run packInd AS 117 ↔ IGAAP bridge, s.49 surplus recon, fund Revenue Account & schedules.
D14Narrative commentaryDrafted against the composed figures, never against a stale copy.
SEGSegment reportP&C / L&H columns that sum to group totals (R-11).
TRIClaims-development trianglesIRDAI phase-in aware — 10 origin years FY27, 15 FY28, 20 FY29, read from config.
LINLineage sweepEvery published figure resolved to source, or the pack blocks (R-20).

What leaves the building

Excel (.xlsx)

Real OOXML. Figures stay live numeric cells your board pack can formula against — never text pretending to be numbers.

Word (.docx)

Editable narrative and tables, generated against the composed figures so the commentary can never quote a stale number.

Print pack (HTML)

Deterministic, print-to-PDF from the browser. Server-side PDF bytes are deliberately not built — format=pdf returns an explicit 501, not a silent fallback.

The tie-out binder travels inside every export. A workbook that leaves your building still states its own proof status.

Lineage

“Where did this number come from?” — three clicks, not three days.

A statement line, the groups behind it, then the evidence: for an ingested group, the uploaded rows with batch, version and uploader; for a computed group, the working itself — ordered steps, the formula, the substituted inputs, and the Ind AS 117 paragraph that required the step, persisted with the run so what you read is what was computed. Try it below.

₹ lakh · MININOVA_RE · 2026-Q1

Statement of Financial Position, as composed. Click the insurance liability the way an auditor would.

Insurance contract liabilitiesDRILL ›51,050
Reinsurance contract held — assets(4,500)
Net insurance position46,550
Measurement

Your actuary keeps every judgement. We take the arithmetic.

Measurement is a per-portfolio choice and it is reversible. Any group can stay on your Appointed Actuary’s ingested numbers forever. Where you want the platform to calculate, PAA and full GMM are both built — and the output goes through the identical reconciliation gauntlet as ingested numbers, with the same identities deciding whether the pack is publishable.

The GMM engine — 20 steps

Best-estimate liability from your cash-flow vectors on your curve; Cost-of-Capital risk adjustment on your capital pattern; the full CSM mechanics — day-one gain deferred and day-one loss recognised, interest accreted at the locked-in rate, future-service re-estimates, the zero floor with the excess to a loss component, and release by ingested coverage units; IFIE with the OCI split; and the ¶B123 revenue build. Every step carries its paragraph reference.

The PAA engine — 13 steps

Premium allocated by passage of time, expected loss ratio on earned premium, discounted LRC and LIC, Cost-of-Capital RA with its unwind and release, and the facts-and-circumstances onerous test. Eligibility implements the real two-limb ¶53 test — a three-year contract is not auto-disqualified; the platform asks for the documented ¶53(a) materiality assessment with reviewer, approver and doc reference, and flags it as advisory, never a hard block.

What the engines refuse to do

They do not estimate IBNR, run chain-ladder triangles, construct or bootstrap discount curves, or choose coverage units. If a curve is missing, the compute fails loudly instead of guessing. VFA groups are not computed — a VFA group set to computed fails rather than approximating. Judgement stays with your Appointed Actuary; the arithmetic, the reconciliation and the audit trail come to us.

The safety net

If a computed result would break reconciliation, the platform automatically reverts that group to the ingested numbers and tells you why, rather than leaving the pack blocked. An experiment can never corrupt your close — which is what makes adopting the engine one portfolio at a time a genuinely low-risk decision.

The journey

Nine steps, each one gated on the last.

The module is a guided path, not a folder of screens. Each page is one step, each step needs the one before it, and the landing page tells you what to do next. You cannot accidentally publish from a half-loaded period.

1

Template Registry

— → the shape of your uploads

Review and edit the typed input templates against your real actuarial, claims and GL extracts.

2

Upload & Validate

source files → validated batches

Schema, type and key validation fails loud at upload with row-level errors — never silently at quarter-end.

3

Data Catalog

batches → confidence they landed

Every uploaded dataset with version, rows, load status and lineage. Open a batch, read its exact source rows.

4

Measurement

drivers → measured facts

Per group: ingested or computed. Run PAA or GMM, check ¶53 eligibility, open “How?” to read the working step by step.

5

Mapping Engine

raw columns → canonical facts

Source columns to canonical fields, GL accounts to the SSOT — versioned lookups, not hard-coded rules.

6

Ledger & TB Bridge

a mapped TB → posted journals

Unwind the existing trial balance into the Ind AS 117 book, post the double-entry subledger, read the account-level bridge with no plug.

7

Reconciliation

facts → a break report

Run the identity register. Blocking breaks show both sides and the delta, resolved to the account that causes them.

8

Reports & Disclosures

canonical facts → the pack

Generate the statements, notes and India pack. Drill any number to its source rows or its calculation.

9

Publish Pack

the pack → a signed artifact

Review the binder, run four-eyes sign-off with CFO and Appointed Actuary attestation, distribute to Excel, Word or print.

India pack

Ind AS 117 and the Insurance Act, in the same pack.

India is not a localisation afterthought here — it is a first-class parallel-run pack. And it knows the difference between “the law limited this” and “this does not add up”: a Section 49 cap that is legitimately binding reads as compliant-amber, not as a break. Only an unexplained residual turns red.

Ind AS 117 ↔ IGAAP bridge — base plus reconciling items equals total, checked, with 100% of the delta explained (R-18).
Section 49 surplus ↔ Ind AS profit reconciliation, with the 90:10 gate: a binding cap reads compliant-amber, only exceeding it breaks.
Fund-level Revenue Account and schedules that must foot before the pack composes.
Claims-development triangles with the IRDAI origin-year phase-in — 10 years FY27, 15 FY28, 20 FY29 — read from config, never hard-coded.
IRDAI public-website disclosure manifest, resolved per item to published / external / pending / missing.
The parallel IGAAP book balances in its own right (R-26), so the comparison is between two real books.
Governance & assurance

Designed by someone who has been through an audit.

Sign-off is not a checkbox on the last screen. It is a period-level governance run wrapping every statement, with the separation of duties an auditor expects and a trail that would expose our own tampering as readily as anyone else’s.

Four-eyes workflow — preparer → reviewer → approver → publisher, enforced. The preparer cannot approve their own pack, and admin is not a bypass.
CFO and Appointed Actuary attestation requiring the exact role, with no override path.
Publication refused while any blocking break is open — the status is a gate, not a label.
Append-only audit trail, each entry hash-chained to the previous, so tampering breaks the chain visibly.
Templates, mapping rules and report definitions are versioned data — “what did the rules look like last quarter” is an answerable question.
Tenant isolation throughout: every table keyed and filtered by tenant, with row-level policy behind it.
Proof points, not adjectives
41 / 41
Reconciliation identities live and passing on the golden book.
445
Automated tests, including hand-computed worked examples. Zero failing.
0
Orphan figures tolerated. A number without lineage blocks the pack.
51,050
Gross golden-book aggregate — BEL 39,000 + RA 3,050 + CSM 9,000 — equal to the GL.
20 · 13
GMM and PAA calculation steps, each carrying its Ind AS 117 paragraph.
6 / 6
Groups computed from raw drivers with the pack still fully reconciled.
What we deliberately do not do

The edges, named before you find them.

Vendors who claim everything get tested on everything. Here is the list we would rather say first — because a platform whose whole thesis is that it refuses to overstate a number should not overstate itself either.

Reserving. No IBNR estimation, no chain-ladder, no curve construction, no coverage-unit selection.
VFA measurement. Direct-participating groups run on ingested numbers; a VFA group set to computed fails loudly rather than producing a wrong answer.
Scenario generation. What-if runs are ingested and re-tied to base (R-19) — the platform never invents the scenario.
Server-side PDF bytes. Distribution is real .xlsx and .docx plus a deterministic print pack; format=pdf returns an explicit 501 rather than a silent fallback.
The questions the room actually asks

Straight answers for the actuary,
the controller and the auditor.

Does this replace our actuarial model?

No, and it does not try. Reserving, IBNR, curve construction and coverage-unit selection stay with your Appointed Actuary. The engine takes your drivers — cash-flow vectors, capital patterns, your curves — and performs the IFRS 17 mechanics on the groups you choose to flip. Everything else runs on your ingested results. You remain the measurement authority; we are the proof layer.

How do we know the CSM mechanics are right?

Three ways. Every step shows its formula and its Ind AS 117 paragraph, so your team can check it line by line. The test suite includes hand-computed worked examples whose numbers are verifiable with a calculator — 445 tests, all passing. And the acceptance bar we hold ourselves to is that, given equivalent drivers, the engine must reproduce a known-correct book exactly, with the pack still fully reconciled when every group is computed.

We use a confidence-level risk adjustment, not Cost of Capital.

Then ingest your RA and the platform reconciles it like any other measured input. The Cost-of-Capital engine exists for groups where you want computation — the rate and the capital pattern are your inputs, not our constants. It is never imposed.

Will a three-year contract on the PAA be rejected?

No. Ind AS 117.53 has two routes: the one-year automatic route under ¶53(b), and the materiality route under ¶53(a) for longer contracts. We implement both. A long-coverage PAA group raises an advisory asking for the documented ¶53(a) assessment — materiality conclusion, reviewer, approver, documentation reference — and never hard-blocks, because that judgement is yours. The platform captures and checks the conclusion; it does not run the test.

What happens to a pack with an open break?

Status BLOCKED, publication refused, the break named with both sides and the delta and resolved to the account or group that causes it. There is no force-publish, for any role.

What does it take as input, and what do we get out?

In: versioned, typed templates — files your teams already produce from the actuarial system, the claims register and the GL. Schema drift fails at upload with row-level errors. Out: real .xlsx with live numeric cells and .docx, both carrying the tie-out binder inside the file, plus a deterministic print pack. No mandatory system integration to go live; API-level integration is incremental.

Can we adopt this gradually?

Per portfolio, reversibly, with an auto-revert safety net. A realistic path: quarter one, ingest everything and use us as the reconciliation and disclosure layer; quarter two, flip the short-tail PAA books to computed and parallel-run; later, the GMM books as your actuary gains confidence. Nothing is big-bang.

If we leave, what happens to our data?

Everything exports to open formats — xlsx, docx, HTML — and the underlying store is standard Postgres. There is no proprietary lock-in on the data model.

The low-risk way in

Give us one quarter of your data. Let the binder do the talking.

A four-to-six week pilot on your last closed quarter, ingested. You get your own pack back — RECONCILED, or honestly BLOCKED. Either result is worth having: a blocked pack on real data finds the discrepancies your current process is quietly absorbing.

Scope a pilot quarter →Back to Home