🎁 Early Access Open: Get 1 Month of Growth Tier Free when you sign up

FinanceOps · FA-to-GL

Tie four hundred assets to one depreciation voucher.
In seconds.

Last reviewed·ReconPe Editorial

Upload your fixed-asset register and GL extract. ReconPe runs subset-sum aggregation on the unmatched pool — finding the subset of asset-register lines that sums to each PPE or depreciation voucher within tolerance, partitioned by asset class and GL account. Gross block, accumulated depreciation, written-down value, and the full Opening + Additions − Disposals − Depreciation = Closing movement, tied out in one pass. One aggregation candidate per asset class, not one phantom break per line.

ACRE · Subset-sum

12 per-asset depreciation lines, summed to the month's depreciation journal entry.

Running sum
0
FA-001
78,000
FA-002
42,000
FA-003
95,000
FA-004
38,500
FA-005
61,000
FA-006
54,500
FA-007
33,000
FA-008
72,000
FA-009
28,500
FA-010
49,000
FA-011
40,500
FA-012
48,000
ΣSUM_AGGREGATE
General ledger · Depreciation JE
DEP-2026-04-03
6,40,000
Matched · residual ₹0
Stage 1.5·tolerance ±0.5% or ±₹100
Searching subsets…

Where FA-to-GL tie-out actually breaks

One depreciation JE, four hundred assets

The monthly depreciation run posts a single GL voucher per asset class. Your register holds the per-asset depreciation schedule — hundreds of lines that should sum to that one figure. VLOOKUP dies the moment cardinality stops being 1-to-1, and FA close is many-to-one by design.

WDV drifts a rupee at a time

Per-asset depreciation rounds to the rupee on the register; the GL posts a single rounded total. Across four hundred assets the rounding accumulates, and the register's closing written-down value drifts from the GL net block by an amount too small to spot and too real to ignore.

CWIP that never got capitalised

An asset goes live in March but the capital-work-in-progress balance never moves to the PPE cost account. The GL shows it parked in CWIP; the register shows it depreciating as a live asset. Nobody catches it until the auditor asks why CWIP hasn't moved in two quarters.

Disposals and additions land out of sync

An asset sold on 28-Mar drops off the register but the GL retirement and the gain/loss posting land on 02-Apr. Close a March book against an unbounded register and you get a ghost asset on one side, a phantom disposal residual on the other — both vanish on next month's re-run.

What the engine gives you

Subset-sum roll-up per asset class

The engine searches for the subset of register lines summing to each PPE or depreciation voucher within tolerance. Partitioning on the composite key — asset class and GL account — keeps every per-target search small, so hundreds of asset lines resolve against their vouchers in seconds, not by hand.

Tolerance that absorbs rounding drift

Per-asset depreciation rounding (±1 unit per asset) and FX residuals accumulate into a real gap. Configurable tolerance — default ±0.5% or a small absolute floor, whichever is larger — absorbs the rounding noise so genuine WDV drift surfaces as a break instead of hiding under it.

Period-movement roll-forward

Reconcile on the identity Opening + Additions − Disposals − Depreciation = Closing. The register's movement aggregates many lines per asset class against the GL's net movement, so additions, disposals, and the depreciation charge all tie out in one pass instead of three spreadsheets.

Tally Prime and SAP S/4, no preprocessing

Upload the register and GL extract as-is. Schema detection recognises Tally Prime shapes (Asset Group, Closing WDV, Depreciation for Year) and SAP AR01 shapes (Asset Number, Acquisition Value, Net Book Value) — CSV, Excel, JSON, or XML. No column mapping required for the first run.

Fellegi-Sunter confidence per group

Each aggregation candidate carries a 0–100 confidence score that combines per-line scoring with a residual penalty. High-confidence asset-class groups clear in Aggregation Matches; the borderline ones surface for review; the low-confidence ones route straight to investigation — so a reviewer's time lands where it matters.

Audit-grade explainability

Every match exports its source asset lines, the target voucher, the residual, the confidence, and the rule that fired. Reruns are deterministic. Disposal gain/loss and WDV drift each carry a cause tag, so your Big Four reviewer sees the subset of assets and the residual breakdown — not a black box.

Frequently asked

How does the register actually tie to the GL?

The fixed-asset register holds per-asset detail — gross block (original cost), accumulated depreciation, and the resulting written-down value — while the GL holds the control accounts: PPE cost, accumulated depreciation, and depreciation expense. FA-to-GL reconciliation proves the register's totals equal the GL control balances. Because the register is per-asset and the GL posts in aggregate (one depreciation voucher per asset class), the relationship is many-to-one — which is exactly where subset-sum aggregation earns its keep.

How does subset-sum matching work for fixed assets?

After the standard exact-key and fuzzy passes, the engine runs an aggregation stage on the unmatched pool. For each unmatched GL voucher it searches the register lines for a subset whose amounts sum to the voucher within tolerance — partitioned by asset class and GL account so each search stays small. A depreciation run that posted ₹4.2 lakh for the Plant & Machinery class is matched back to the exact subset of asset schedules that produced it, and the group is emitted as a single aggregation candidate for human confirmation rather than hundreds of false 'missing' breaks.

Can it reconcile the period movement, not just the closing balance?

Yes. Pick the Period Movement angle and the engine reconciles on the roll-forward identity — Opening + Additions − Disposals − Depreciation = Closing. The register's additions, disposals, and depreciation charge for each asset class aggregate against the GL's net movement in a single pass. That catches an addition that hit the register but not the GL, a disposal posted on one side only, or a depreciation charge that doesn't tie — without you maintaining three separate tie-out tabs.

What about CWIP capitalisation and disposal gain or loss?

Both surface as classified breaks rather than silent drift. A capital-work-in-progress balance that should have moved to the PPE cost account but didn't shows up as a missing-capitalisation break — the asset depreciates on the register while the GL still parks it in CWIP. Disposal gain or loss appears as a residual between the asset's written-down value at retirement and the actual sale proceeds posted to the GL. Each gets a cause tag (timing, reclassification, data quality, and so on) so the reviewer sees why it broke.

Does the AI close the books automatically?

No. The AI proposes; a human approves. Field mappings and the SUM_AGGREGATE rule land in an approval gate before anything runs — the engine won't touch shared state until a reviewer approves. For each correction the engine proposes a balanced journal entry, and the Approve button stays disabled until debits equal credits. Recurring depreciation JEs, accruals, and prepaids all land in an approval inbox. Every disposition is logged with who, what, when, and the AI suggestion it came from.

Will it work with Tally, Zoho Books, QuickBooks, or SAP?

Today ReconPe ingests CSV, Excel, JSON, and XML extracts from any source system, with schema detection tuned for Tally Prime and SAP S/4 register shapes plus the GL extract — export and upload, no manual column mapping for the first run. Approved journal entries export back as Tally XML. Direct connectors into NetSuite, QuickBooks, and Zoho are on the way; for now the export-and-upload flow gets a clean reconciliation in the first session.

Is the audit trail strong enough for SOX or Big Four review?

Every aggregation match exports its source asset-line keys, the target voucher key, the residual, the composite confidence, and the rule that triggered. Reruns are deterministic given the same inputs. The exception memory pool keeps a per-organisation fingerprint history with 180-day aging, so an asset that didn't reconcile this month links to the voucher that clears it next month. The human-state dimension — who approved which break, when, and why — is captured as a first-class audit trail you can hand to a statutory auditor.

Riya at her desk in a navy shirt, looking at a laptop with a two-pane view: left pane shows one GL journal entry for ₹25,00,000 from Customer X dated 31 March, right pane shows twelve AR invoices for the same customer with amounts ranging from ₹85,000 to ₹4,60,000.
Finance Manga · EP04

Subset-sum: matching ₹25 lakh to twelve invoices

The GL posts one ₹25,00,000 journal entry. The AR aging has twelve open invoices for that customer. Which subset matches? Humans give up at n=8. Riya walks through the deterministic answer.

Read

Every sub-ledger ties out in the same close

Same ACRE engine, same cross-period memory, same AI-proposes / finance-approves flow — across all six tie-outs of a month-end close.

Tie the asset register to the GL in an afternoon, not a week.

Free tier reconciles 1 entity with up to 50 transactions per month against your GL — enough to run the wedge case on your own register.

Request early access