The reconciliation engine

Every line matched.
Every exception explained.

Reconciliation is where distributor margin lives or dies. The engine performs a three-way match across vendor invoice, vendor usage feed, and your priced partner ledger — line by line — before any partner invoice is generated. Nothing moves forward until every variance is resolved or explicitly signed off.

Three-way match: vendor invoice, usage feed, partner ledger VENDOR INVOICE Microsoft CSP PDF · monthly · 3,112 lines USAGE FEED Partner Center API Real-time · 12,943 events PARTNER LEDGER Priced SKUs Your pricing rules · 412 MSPs THREE-WAY MATCH Reconciliation engine GOVERNED · EVIDENCED MATCHED 12,936 EXCEPTIONS 7 MARGIN RECOVERED $4,218
Parallel data streams in navy with amber variance nodes, representing line-level reconciliation.
The problem with "billing only" tools

Most platforms bill. They don't reconcile.

Vendor invoices drift

A single Microsoft CSP file can contain 3,000+ lines with retroactive credits, RI adjustments, and mid-cycle tier changes. Without reconciliation, you invoice partners on stale prices and eat the variance.

Billing tools trust the feed

Most channel platforms ingest vendor feeds and trust them. They assume the vendor is right. They surface no exceptions. They leave margin leakage invisible until month-end board review.

Spreadsheets are fragile

The "real" reconciliation is happening in one operator's Excel workbook. It works until they take leave, or a vendor changes their CSV format, or the workbook hits row 65,536 and silently truncates.

How the engine works

Four stages, one evidenced ledger.

STAGE 01

Normalise every source

The engine ingests vendor invoices (PDF/CSV), usage feeds (API/SFTP), and your priced ledger, then normalises them to a common line-level schema: (tenant, sku, qty, unit_cost, unit_price, period). Every line preserves a cryptographic hash of its source, so you can always prove where a number came from.

$ recon ingest --source ms-csp --period 2026-04
 ✓ 1 invoice (PDF)  → 3,112 lines
 ✓ usage feed      → 12,943 events
 ✓ partner ledger  → 412 tenants, 847 SKUs
 ✓ normalised → 16,902 canonical rows
STAGE 02

Three-way match, line by line

Every partner-facing SKU is matched against the corresponding vendor invoice line and the raw usage feed. Matches at quantity, rate, and tenant identifier all have to agree. The engine tolerates known vendor quirks — proration rounding, commitment credits, marketplace FX — so you see real exceptions, not noise.

match rules → 47 active
 ✓ 12,936 lines matched
 ⚠ 7 exceptions (0.05%)
 ⚠ rate drift     → 4 lines / $312
 ⚠ qty mismatch → 2 lines / $108
 ⚠ missing tenant → 1 line / $84
STAGE 03

Exceptions, routed and explained

Every exception is categorised (rate drift, quantity mismatch, unknown SKU, tenant unmapped, credit note pending), assigned to an owner, and given a due date. Your finance operator sees a queue, not a spreadsheet. Each exception shows the three source rows side by side and the auto-suggested resolution.

RATE DRIFT · CSP-A1-M365-E3
Harbourline Tech · 24 seats
+$312
QTY MISMATCH · DB-BACKUP-1TB
Northbay IT · 14 vs 12 units
+$108
RESOLVED · CREDIT APPLIED
Wattle Cloud Group · $84
STAGE 04

Sign-off, then invoice

No partner invoice generates until the period is signed off. Approvals are evidenced — who approved, when, and with what exceptions outstanding. The signed-off ledger flows straight to channel billing and into your GL with full line-level lineage. Auditable, reversible, reproducible.

period 2026-04 → sign-off
 ✓ 12,936 matched
 ✓ 7/7 exceptions resolved
 ✓ $512 recovered vs draft
 → approved by j.chen@distributor
 → 412 partner invoices generated
 → GL journal posted · ref R-26-04
What makes it reconciliation-grade

Ten years of edge cases, in one engine.

Built on the Selcomm billing core — which has been reconciling AU telco and software channel invoices since 1994. Every rule below exists because a distributor lost margin to it.

Retroactive credit tracking

Vendor issues a credit six weeks late. The engine reopens the affected period, re-runs the match, and flags which partner invoices are now misaligned — with a suggested recovery action.

Proration and mid-cycle changes

Seat changes mid-period are reconciled at the day level. We handle Microsoft's NCE commitment model, Dropsuite's add/remove in period, and marketplace prorated usage without manual intervention.

Multi-currency and FX

Vendors bill in USD. Partners pay in AUD or NZD. The engine captures the FX rate used at the moment of reconciliation, not at invoice time, so margin calculations are deterministic.

Tenant identity resolution

Partners show up under different names across vendor feeds. We maintain a canonical tenant graph so a merged acquisition or a renamed tenant stays continuous across reconciliations.

Pricing rule engine

Partner pricing isn't a single markup. It's tiered, per-SKU, with volume breaks, carve-outs and commitment floors. The engine stores pricing rules versioned in time so every line has a reason.

Evidence trail, always

Every reconciled line stores the source hash, the rule that matched it, the approver, and the timestamp. If a partner disputes an invoice, you can show them line-level lineage in under a minute.

The operator difference

From CSV workbook to governed ledger.

CSV / SPREADSHEET
RECONCILIATION ENGINE
Vendor invoice arrives
Downloaded, re-keyed into workbook
Ingested, hashed, normalised in seconds
Quantity mismatch
Spotted three weeks later, if ever
Surfaced as an exception on day of ingest
Retroactive credit
Unmapped to partner invoices
Automatically linked to affected periods
Partner disputes a line
Operator reconstructs from memory
One click reveals source, rule, approver
Operator on leave
Close is delayed
Queue is visible to the whole team
Auditor asks "how did you price this?"
Ten-minute explanation per line
Versioned pricing rule referenced inline
"In our first reconciliation run we found seven lines of drift on a single vendor we'd been re-keying for two years. The engine paid for itself in one period."
Finance operator · AU software distributor · reference available on request

See your own data reconciled.

Bring one vendor feed and one partner ledger to a 20-minute walk-through. We'll show you the exceptions the engine would have caught last period.