A corpus is not a pile of documents. It is one company, coherent across its tools, with what happened next recorded.
Entity-consistent across every source
The same surrogate for a client, a payer, a vendor or an employee in email, chat, tickets, the ledger and the practice or claims system, so a thread can be followed from the first message to the ledger line.
One dictionary per company
A single entity map is applied to every source. A name replaced in an email is the same replacement in the ticket and the invoice.
Join map delivered
Which record in which system refers to which entity, so the corpus loads as one graph rather than six exports.
Dates shifted, intervals exact
Every record for one entity moves by the same random offset. Sequences and durations survive; absolute dates do not.
Outcomes kept exactly
Claim paid, denied or appealed. Return accepted or amended. Matter settled or dismissed. Ticket closed or escalated. Client retained or churned. The fields a grader needs are the ones we never touch.
Codes intact
CPT, CDT, ICD, CPC, UCC and docket types are left as they are. Amounts, balances and fees too.
Rare events generalized, not deleted
A single very large claim identifies a firm. Its magnitude is bucketed and the workflow around it kept.
Delivered as structured exports
One export per system with a schema, the join map between systems, and the de-identification method document for the dataset.
Coverage
Medical billing and revenue cycle, insurance and adjusting, title and escrow, accounting and tax, law, clinics, collision and dealers, managed IT. Ask for the current inventory with record depth, headcount and system list per company.
Refresh
Operating sellers deliver updates on a cadence; retracted records are removed from the next delivery and listed in the change log.