Chrys Capital Invoice Processor
Reconciles vendor invoices against signed letters of proposal to verify vendor identity, project reference, billing entity allocation, and currency before payment release.
The Problem
Private equity back offices process vendor invoices that must be split across multiple legal entities — fund vehicles, GPs, and co-investment SPVs — based on allocation tables buried inside signed letters of proposal. A single Acme Corp retainer for "Project Denim" can fan out into three invoices billed to ChrysCapital X LLC, ChrysCapital Fund X, and Two Infinity Partners at fixed percentage shares, and the AP clerk is expected to verify each invoice against the engagement letter before release.
The manual check takes 15–25 minutes per invoice and breaks down at scale. Vendor names drift between "Acme Corp Pvt. Ltd." on the invoice and "Acme Corp Private Limited" in the proposal. Project references arrive as "Project- Denim" against a contract that simply says "Denim". Entity names carry stray commas — "ChrysCapital X, LLC" versus "ChrysCapital X LLC" — that defeat any exact-string match in the ERP.
The failure mode that matters is silent: an invoice gets paid against a fund vehicle that was never party to the engagement letter, and the misallocation surfaces six months later during the LP audit when the management fee waterfall does not tie. Recovering that payment from the vendor or rebooking it across funds is materially harder than catching it at intake.
Why It Matters: Context
Under Section 16(2) of the CGST Act, input tax credit on a vendor invoice is only available to the registered entity named on the tax invoice as the recipient. For a fund manager running 8–15 investment vehicles, billing the wrong entity does not just create an internal allocation problem — it creates an ITC eligibility question and an audit trail that contradicts the signed engagement letter held in the legal file.
Mid-market PE and VC firms typically run this control on a spreadsheet. The CFO's office has 3–4 finance staff covering 50–200 active vendor invoices a quarter across professional services, due diligence, and portfolio support engagements. There is no dedicated procurement system, no contract repository tied to the AP module, and no four-eyes check beyond a partner countersignature on payments above a threshold.
When the control fails, the consequence is concrete: an invoice charged to a fund not listed in the allocation table either gets reimbursed by the GP at its own cost, or it sits as a reconciling item in the fund's capital account statement and shows up as an LP query letter.
What This Workflow Automates
- Classifies each uploaded PDF as either an Invoice or a Letter of Proposal using document signals — title, presence of an invoice number such as
INVGGN252600455, HSN/SAC code for management consulting services, or the entity allocation table with percentage shares. - Extracts structured fields from the invoice: vendor name, invoice number, invoice date, bill-to entity, project reference, professional fees, fixed expenses, IGST, total, and currency.
- Extracts the engagement scope from the letter of proposal: vendor name, project name, total fee, payment milestones (typically 50% on confirmation, 50% on completion), currency, and the full
entity_allocationsarray with each entity name and percentage share. - Runs vendor name reconciliation at an 85% fuzzy threshold, normalizing "Pvt. Ltd." to "Private Limited" and "Ltd." to "Limited" before comparison so that legal-form abbreviations do not produce false mismatches.
- Runs project reference reconciliation at a 75% threshold after stripping any "Project-" or "Project " prefix from the invoice side, returning
NO_MATCHrather than a silent pass when the field is absent on either document. - Runs entity allocation reconciliation by scanning every row of the proposal's
entity_allocationsarray against the invoicebill_to_entityat an 80% threshold, treating "ChrysCapital X, LLC" and "ChrysCapital X LLC" as the same legal entity. - Runs a currency check that returns
MISMATCHEDwhen an INR invoice with IGST is presented against a USD-denominated proposal for an offshore fund, and routes the document to treasury review before FX conversion.
All of this happens in roughly 18 seconds per invoice with deterministic outputs every controller can audit.
Edge Cases We Simulate
The workflow ships with a battery of synthetic test scenarios that exercise every failure mode we have seen in real-world data. Each scenario produces a deterministic outcome that an auditor or controller can verify in seconds.
| Scenario | What's wrong | Expected outcome |
|---|---|---|
| Project Prefix Variance | Invoice carries a 'Project- Denim' label while the underlying letter of proposal lists the project as just 'Denim', creating a literal string mismatch. | Workflow strips the 'Project-' or 'Project ' prefix before fuzzy comparison at a 75% threshold and returns MATCHED on the project reference. |
| Entity Suffix Drift | Invoice bills 'ChrysCapital X LLC' but the proposal's entity_allocations array stores it as 'ChrysCapital X, LLC' with a comma, which fails an exact equality check. | Fuzzy match at 80% threshold treats the two as the same legal entity and reports MATCHED on entity allocation. |
| Vendor Legal Form Abbreviation | Vendor name appears as 'Acme Corp Pvt. Ltd.' on the invoice and 'Acme Corp Private Limited' on the proposal, a common rendering inconsistency in Indian vendor masters. | Workflow normalizes 'Pvt. Ltd.' to 'Private Limited' and 'Ltd.' to 'Limited' before comparison and returns MATCHED at the 85% vendor threshold. |
| Bill-To Entity Not In Allocation Table | Invoice is raised on 'Two Infinity Partners' but the proposal's allocation table only lists ChrysCapital X LLC and ChrysCapital Fund X. | Workflow returns MISMATCHED on entity allocation and blocks payment, flagging that the invoice cannot be charged to a fund not covered by the engagement letter. |
| Missing Project Reference | Invoice omits any project_reference field, common when vendors bill against retainer engagements rather than named projects. | Workflow returns NO_MATCH on the project reference rule and surfaces the field as required-but-missing rather than silently passing. |
| Currency Mismatch on Cross-Border Engagement | Letter of proposal is denominated in USD for an offshore fund, but the vendor issues an INR invoice with IGST applied. | Workflow returns MISMATCHED on the currency rule and routes the invoice for treasury review before any FX-converted payment is scheduled. |
Sample Documents
Download or inspect the seeded sample files used to demonstrate this workflow:
| File | Document type | Notes |
|---|---|---|
egon_zehnder_invoice_INVGGN252600455.pdf |
Invoice | Tax invoice from Acme Corp billing a ChrysCapital entity for professional fees on Project Denim, including IGST and SAC code for management consulting. |
project_denim_letter_of_proposal.pdf |
Letter of Proposal | Engagement letter specifying total professional fees, 50/50 milestone payment terms, and an entity allocation table splitting fees across ChrysCapital X LLC, ChrysCapital Fund X, and Two Infinity Partners. |
Sample Results
On a representative quarterly batch of 120 ChrysCapital professional services invoices, the workflow processes the full set in under 40 minutes against a manual baseline of 30–35 hours. Each invoice produces a four-line reconciliation report — vendor, project, entity allocation, currency — with an explicit MATCHED, MISMATCHED, or NO_MATCH verdict and the underlying field values from both documents shown side by side.
The exception class that consistently justifies the control is the bill-to-entity miss: an invoice raised on Two Infinity Partners against a proposal whose allocation table only lists ChrysCapital X LLC and ChrysCapital Fund X. The workflow blocks the payment at intake, flags that the engagement letter does not authorize billing to that fund, and forces either a contract amendment or a corrected invoice from the vendor before the payment run.
Why Automation Wins Here
The workflow compresses a 20-minute manual three-way check into an 18-second deterministic run and eliminates the silent-pass failure mode where a comma or a "Pvt. Ltd." abbreviation causes a real match to be filed as an exception. Across a quarterly volume of 120 invoices, the time saving is approximately 30 hours and the four exception classes — vendor drift, project prefix, entity suffix, currency — are caught before the payment file leaves AP.
Each invoice's reconciliation output — the extracted fields from both documents, the four rule verdicts, the threshold values used, and the matched entity allocation row — drops into the controller's audit file as a single artifact, ready for the statutory auditor's vouching sample and for the LP-side fund administrator review.
Frequently Asked Questions
Yes. The reconciliation rule reads the entity_allocations array on the letter of proposal and matches the invoice's bill_to_entity against every entry using fuzzy matching at an 80% threshold. Each fund-level invoice in a split-billed engagement is validated independently against the same parent contract.
IGST line items and the SAC code for management consulting services are extracted as part of the invoice fields and preserved on the reconciliation record. The workflow does not recompute GST liability here — that belongs to the GSTR-2B reconciliation workflow — but it confirms the tax-inclusive invoice total ties to the contracted fee plus applicable IGST.
The project reference rule returns MISMATCHED and the invoice is held. This is the deterministic control that prevents a vendor from billing Project Denim hours against a Project Linen engagement letter, a common error when a single vendor runs several concurrent mandates for the same fund family.
The workflow produces a per-invoice audit trail showing the source invoice, the matched proposal, the four rule outcomes, and the exact fuzzy-match scores used. This documentation supports SA 505 external confirmation procedures and the ICAI Guidance Note on Audit of Expenses by evidencing that each professional fee paid was contractually authorized.
Yes. Approved invoices export with the matched entity, project code, vendor, and tax breakup as a structured payload that can be posted to Tally Prime, NetSuite, or a fund administrator's accounting system via API or CSV. The entity field maps directly to the fund-level books so allocations do not need to be reentered.
A controller manually opening the invoice PDF, locating the proposal, and verifying vendor, project, entity, and currency typically takes 8–12 minutes per invoice. The workflow returns the four rule outcomes in under 30 seconds and only routes invoices with at least one MISMATCHED or NO_MATCH result to a human reviewer.
This workflow is deployed and live in our demo environment. Upload your own documents to see it in action.
Open the live workflow