Cash GL ties out.
Even with five banks.
Last reviewed·ReconPe Editorial
ReconPe reconciles your cash GL against bank statements across multiple accounts and currencies. Date-shift tolerance handles value-date drift. UTR canonicalisation handles cross-system truncation. Cross-period memory carries in-flight wires to next month's run automatically. Per-bank narration parsers ship out of the box.
Where bank reconciliation breaks at scale
Bank value date ≠ GL posting date
A wire initiated on 28-Mar settles on 02-Apr. Your cash GL posts on day-of-initiation; the bank statement reflects value date. Closing March against unbounded bank data produces ghost breaks that vanish in April.
UTR truncation across systems
Your ERP truncates the UTR to 16 chars. The bank statement carries 22. The same transaction looks like two unrelated rows. Pure-string match misses 8-15% of legitimate ties without canonicalisation.
Multi-bank, multi-currency volume
Operating in 5 banks across INR, USD, AED — daily reconciliation needs to align value dates, FX revaluation, and bank-specific narration formats. Spreadsheet workflows break around 3 banks or 1,000 transactions a month.
Bank charges and FX revaluation
₹500 wire fee, USD 25 SWIFT charge, FX revaluation gain or loss — line items that exist on the bank statement but not on the GL transaction. Treat them as breaks and you'll never tie out; treat them blindly and you'll miss real ones.
What the engine gives you
Date-shift tolerance for value-date drift
DATE_SHIFT_DAYS rule type tolerates configurable lag (default ±5 days) between GL posting and bank value date. Long-haul wires get longer windows. Same-day NEFT gets tight windows. No false breaks at period boundaries.
UTR canonicalisation across formats
ACRE's L2 relaxed-key blocking handles truncation, transposition, and formatting differences in UTR / RRN / SWIFT reference fields. Configurable similarity threshold per bank, learned weights per organisation.
Bayesian confidence per match
Every bank credit / GL row pair gets a composite confidence using Fellegi-Sunter weights — amount, narration, value date, counterparty all factored. High-confidence matches auto-approve in bulk. Low confidence surfaces for review.
Cross-period memory for in-flight items
A wire initiated 28-Mar that settles 02-Apr is no longer a March break. Memory carries it forward and links it to the matching bank credit when April runs. Period close stops being a moving target.
Per-bank narration parsing
Bank narration formats are bank-specific and legacy. ReconPe ships parsers for major Indian and global banks (HDFC, ICICI, SBI, Axis, Citi, JP Morgan, HSBC) with extensible rules. UTR + counterparty extraction without manual cleanup.
Bank charges as a separate audit axis
Wire fees, SWIFT charges, RTGS fees, and FX revaluation flow through a dedicated rule track. Reconciled separately, summed daily, and visible in the close report — not silently swallowed into matching tolerance.
Frequently asked
How is this different from generic transaction matching?
Generic matchers do 1-to-1 string matching on UTR or amount. Bank-to-GL needs date-shift tolerance (value date drift), narration parsing per bank, multi-currency awareness with FX revaluation, and cross-period memory for in-flight items. ACRE handles all four with explicit rule types — DATE_SHIFT_DAYS for drift, FUZZY for narration, multi-currency partitioning, and the memory pool for cross-period state.
What about subset-sum on the bank side too?
Yes — when one bank credit corresponds to multiple GL postings (e.g. one consolidated daily settlement matching three intra-day wires), the same SUM_AGGREGATE rule type used for AR-to-GL applies. Configure the rule, set tolerance, the engine finds the subset.
Can it handle bank statements in MT940, BAI2, or CAMT format?
ReconPe ingests CSV, Excel, JSON, and XML extracts. For MT940, BAI2, and CAMT.053, the standard pattern is to use your bank or treasury system's CSV export — these formats convert cleanly. Direct format support is on the roadmap; for current customers we build conversion adapters in onboarding.
How do you handle in-flight items at period close?
Wires initiated near the period boundary stay in the unmatched pool with an age attribute. The memory layer fingerprints them by (counterparty, amount, direction) and waits for the matching bank credit. When it arrives in the next period's run, the fingerprint matches and ReconPe links the cross-period pair automatically — no manual carryforward.
Does it work with multiple bank accounts in a single reconciliation?
Yes. Configure the GL extract with the bank-account dimension, configure each bank's statement as a separate source, and ACRE handles all of them in one reconciliation run. The Bayesian scorer takes account number into evidence weighting, so wires routed via account A are not matched against bank credits to account B.
What about FX revaluation?
FX revaluation is treated as an explicit reconciliation axis: GL records the rate and amount in functional currency, the bank statement records the rate and amount in transaction currency. ReconPe's range-tolerance rules accept FX-induced variance within a configurable band, surfacing systematic divergence (rate-source disagreement) but not absorbing it silently.
Daily bank rec in minutes. Not the morning.
Free tier covers 1 bank account, 50 transactions per month against your cash GL.
Request early access