Context
An IP licensor running recurring royalty cycles had the same problem the entire category has: a calculation process driven by spreadsheets and email, a growing number of contracts each with idiosyncratic terms, and a month-end close that consumed the full analyst team for most of the first two weeks of every cycle. The firm had grown enough that the spreadsheet approach was past its breaking point — reconciliation errors were showing up in licensee statements, audits were taking weeks to resolve, and the analyst team was near the point where additional contracts could not be onboarded without additional headcount.
The firm had looked at off-the-shelf royalty-management vendors and at ERP add-ons. The vendor tools were expensive, opinionated, and often required the client to bend contract terms to the tool's model. The ERP add-ons handled the calculation in principle but had weak UI for the analyst team and poor reporting for licensee statements. What the firm wanted was a system that expressed contracts naturally, calculated accurately, and produced audit-ready statements without a spreadsheet in the loop.
Challenge
The requirements:
- Multi-format sales feed ingest. Different licensees and different distribution channels produced different feed formats. The ingest layer had to normalize without forcing the upstream side to change.
- Contract-term flexibility. Every agreement had its quirks — tiered rates, minimum guarantees, advance-recovery, reserves, currency, tax. A hard-coded calculation engine would fail on the long tail.
- Audit reproducibility. Every royalty number in a statement had to be reconstructable from the source sales and the contract terms, step by step. No "trust me" math.
- Payout and statement generation. Statements for licensees and payment files for the payment rails had to come out of the system directly, not from a post-processing spreadsheet.
Approach
Thoughtwave deployed TWSS AI Royalty — our production royalty-operations platform — configured for the client's contract book and sales-feed sources. The platform runs four stages per cycle:
- Ingest. Sales feeds (CSV, fixed-width, JSON, API pulls) flow into the platform; each source has a normalization mapping that converts to the internal canonical form.
- Apply contract terms. A contract DSL expresses every agreement; the calculation engine applies the terms against the normalized sales for the cycle.
- Calculate. Payouts, reserves, and adjustments are computed per agreement; the engine maintains running balances for multi-cycle concepts (advances, minimum guarantees, reserves).
- Generate statements and payment exports. PDF and Excel statements are produced per licensee; payment-export files go to the payment rails. Every number carries back-references for audit reproducibility.
Engagement arc:
- Weeks 1-4. Mapped the contract catalog; translated the existing contracts into the DSL; validated outputs against the last four historical cycles to ensure parity.
- Weeks 5-8. Connected the sales-feed sources; ran cycles in parallel with the spreadsheet process for two cycles; reconciled differences (a handful of historical spreadsheet errors surfaced during this pass and were resolved).
- Weeks 9-12. Cut over to production; spreadsheet process retired; audit and versioning layer validated against the firm's audit workflow.
What we built
The production system has five components:
- Sales feed ingest layer. Multi-format adapters with normalization into a canonical sales-event schema.
- Contract DSL engine. Domain-specific language for royalty terms, compiled into an executable calculation plan.
- Calculation engine. Applies contract terms against cycle sales; maintains running balances; produces per-licensee and per-contract results.
- Statement and payment generator. PDF, Excel, and payment-export file generation with audit back-references.
- Audit and versioning layer. Every statement is reproducible from inputs; every contract change is versioned; every cycle is archived with the exact DSL and engine version used.
Outcomes
- Spreadsheet errors per cycle eliminated. The spreadsheet process is retired; reconciliation errors stopped appearing in licensee statements.
- Faster monthly and quarterly royalty cycles. The analyst team's two-week close is materially compressed; additional contracts onboard as DSL configuration rather than analyst-spreadsheet work.
- Audit-ready statements out of the box. Every statement has a provable chain from source sales to final payout. Audits close faster; examiners see exactly what they need to see.
- Multi-format sales feed ingest. Upstream licensees and distributors do not have to change their feed format to work with the platform.
What's next
The next phase adds AI-driven anomaly detection across sales feeds — surfacing unusual patterns (spike sales that may be returns, missing geographies that may be feed errors, rate mismatches between contract and applied rate) before they reach the cycle close. The platform is also being extended to sublicensee and international-treatment scenarios where tax, currency, and withholding complicate the base royalty calculation.
For broader context on Thoughtwave's data and AI practices, see our Data Analytics & Engineering service and the accelerators portfolio.