🚀 Launching Soon: Get 1 Month of Growth Tier Free by signing up for Early Access

FinanceOps · AR-to-GL

Match a ₹25 lakh JE to twelve invoices.
In seconds.

Last reviewed·ReconPe Editorial

Upload your AR aging report and GL extract. ReconPe's ACRE engine runs subset-sum matching on the unmatched pool — finding the subset of invoices that sums to each GL journal entry within tolerance. Currency, counterparty, and date-window partitioning keep search bounded. TDS and GST residuals absorbed by default tolerance. One AGGREGATION_CANDIDATE per group, not one MISSING_TARGET per row.

ACRE · Subset-sum

12 AR invoices, summed to one GL journal entry — in seconds, within tolerance.

Running sum
0
INV-001
2,15,000
INV-002
1,98,500
INV-003
2,45,000
INV-004
1,78,000
INV-005
3,12,000
INV-006
2,20,500
INV-007
1,87,500
INV-008
1,98,000
INV-009
2,35,000
INV-010
2,15,000
INV-011
1,95,000
INV-012
1,00,500
ΣSUM_AGGREGATE
General ledger · Journal entry
JE-2026-04-001
25,00,000
Matched · residual ₹0
Stage 1.5·tolerance ±0.5% or ±₹100
Searching subsets…

Where AR-to-GL tie-out actually breaks

One JE, twelve invoices

A GL journal entry posts a single ₹25 lakh figure. Your AR sub-ledger has twelve invoices that should net to that amount. VLOOKUP fails the moment cardinality stops being 1-to-1 — and that's most of close.

TDS, GST, and rounding leave residuals

Gross invoice amounts rarely match net GL postings to the rupee. 10% TDS withholding, GST input adjustments, and bank rounding produce residuals between ₹50 and ₹5,000 that hide real breaks under noise.

Invoice date ≠ posting date

Invoices raised on 28-Mar may post to GL on 02-Apr. Closing a March book against an unbounded AR file produces ghost mismatches that disappear when you re-run a week later — but not before someone's spent the morning on them.

Customer master data drifts

AR file says 'Acme Pvt Ltd', GL says 'ACME PRIVATE LIMITED', NetSuite export says 'Acme P. Ltd.'. Same customer, three name representations. Pure-string match drops 8-15% of legitimate ties.

What the engine gives you

Subset-sum matching, bounded by reality

ACRE searches for the subset of AR invoices summing to your GL entry within tolerance. Currency partition, counterparty partition, and date-window pruning keep search bounded. 5,000 AR rows × 200 GL JEs in seconds.

Tolerance that absorbs TDS and GST

Default tolerance is ±0.5% or ±₹100, whichever is larger. Configurable per rule. A 10% TDS deduction on a ₹2 lakh invoice leaves a ₹150 residual — well inside default tolerance, no manual intervention.

AR aging + GL extract, no preprocessing

Upload your AR aging report and GL extract as-is. ReconPe's schema detection identifies invoice number, due date, customer, and amount fields automatically. No column mapping required for first run.

Bayesian confidence per group

Each aggregation candidate gets a composite confidence score combining per-row scoring with residual penalty. Auto-approve groups above 85, surface 60-85 for review, flag below 60 for investigation.

Audit-grade explainability

Every match exports the source rows, target row, residual, confidence, and the rule that fired. Reruns are deterministic. Your Big Four reviewer sees the subset of invoices and the residual breakdown — not a black box.

Cross-period exception memory

An invoice that didn't settle this month doesn't disappear. ReconPe fingerprints the exception and links it to next month's settling JE automatically. Close the loop across runs, not just within one.

Frequently asked

How does subset-sum matching work in practice?

When ACRE finishes the standard exact + fuzzy + LSH matching pass, it runs an aggregation stage on the unmatched pool. For each unmatched GL row, it searches the unmatched AR pool for a subset whose amounts sum to the GL amount within tolerance — pruned by currency, counterparty, and date window. The search uses a depth-first algorithm with overshoot pruning that handles up to 25-row subsets out of pools of several hundred candidates per target. Once found, the group is emitted as a single AGGREGATION_CANDIDATE exception for human confirmation.

What tolerance does ReconPe accept by default?

Default is the larger of ±0.5% relative tolerance or ±₹100 absolute tolerance per group. This absorbs typical TDS withholding (10% on ₹2L invoice = ₹150 residual on the gross-vs-net difference), GST input adjustments, and bank-rounding noise without surfacing them as breaks. Tolerance is configurable per SUM_AGGREGATE rule, so high-value entities can use tighter tolerance and small-amount books can use wider.

Can it handle TDS and GST without me writing rules?

Subset-sum tolerance handles TDS and GST as residuals — you don't need to model them as separate matching components. For finance teams that want explicit TDS/GST reconciliation as line items, that's a Wave 2 capability built on top of subset-sum: same engine, layered on a TDS rate library. The wedge case — sub-ledger sum to GL entry — works today.

What's the largest AR aging file ReconPe handles?

ACRE benchmarks at 5,000 AR rows × 200 GL entries comfortably within ten seconds for the full pipeline (matching + aggregation + classification). Above 20,000 rows, performance is bounded by the subset-sum stage and depends on counterparty distribution — fine-grained counterparty partitioning keeps each per-target search small. We benchmark new datasets before recommending Pro tier.

How does this differ from the marketplace product?

Same ACRE engine, same memory layer, same agent modes. Different starting position. The marketplace product leads with Amazon/Flipkart/Razorpay settlement detection and rate-card-aware commission variance. FinanceOps leads with sub-ledger to GL tie-out and many-to-1 matching — the question that determines whether month-end close happens in three days or three weeks.

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

ReconPe ingests CSV, Excel, JSON, and XML extracts from any source system. Schema detection recognises common AR aging shapes (invoice number, customer, due date, amount, balance, days outstanding) and GL extract shapes (journal_id, posting_date, debit, credit, account) without manual mapping. Direct connectors for the major ledgers are on the roadmap; 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 row keys, target row key, residual, 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 you can answer 'why did we close this break in March?' in October. The human-state dimension (who decided what, when, why) is captured as a first-class audit trail.

Close the AR sub-ledger 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 data.

Request early access