Extracting License and Royalty Terms From an IP Licensing Agreement
10 min read · updated August 11, 2026
A royalty clause looks like a rate and a base, and it is not. It is a defined term, a table, and a convention for reading the table, and if the extraction captures the first two and not the third then the numbers it produces are wrong by a predictable, large amount.
The royalty base is a definition, not a number
Royalties are almost always payable on a defined term such as Net Sales, and the definition is where the money is. It typically starts from gross invoiced amounts and subtracts an enumerated list: returns and allowances, trade discounts, sales and value-added taxes, shipping and insurance, sometimes bad debt. Two agreements with an identical rate and different deduction lists produce different payments on identical trading.
So the deduction list is structured data. Extract it as an array of permitted deductions with the verbatim text of each, together with any caps stated on them — a cap on allowable discounts, a limit expressed as a percentage of gross, a requirement that deductions be actually taken rather than accrued. Storing the definition as one paragraph means every later question about it is a re-read.
Record which defined term the royalty clause actually references, too. Agreements define several — Net Sales, Net Receipts, Gross Revenue, Sublicense Revenue — and different royalty provisions in the same document reference different ones. Binding each rate to its base by name is the difference between a reproducible calculation and a plausible one.
Marginal or whole-amount: the same table, two answers
Take a synthetic tier table and a synthetic reported figure, both invented for this page:
Tier table (synthetic)
Net Sales up to 1,000,000 5%
Net Sales 1,000,001 to 5,000,000 4%
Net Sales above 5,000,000 3%
Reported Net Sales for the period: 7,500,000
MARGINAL reading — each tier's rate applies to the portion in that tier
1,000,000 × 5% = 50,000
4,000,000 × 4% = 160,000 (5,000,000 − 1,000,000)
2,500,000 × 3% = 75,000 (7,500,000 − 5,000,000)
-------
285,000
WHOLE-AMOUNT reading — the rate for the tier reached applies to everything
7,500,000 × 3% = 225,000
Difference on one reporting period: 60,000Same table, same sales figure, sixty thousand apart. Nothing in the numbers tells you which is right; the contract does, in language that is easy to skim past. Marginal structures say something like “for that portion of Net Sales” or “on incremental Net Sales in excess of”. Whole-amount structures say “if Net Sales exceed X, the royalty rate shall be Y on all Net Sales”. Extract the convention as an explicit field with the supporting quote, and where the drafting genuinely does not say, mark it unresolved rather than defaulting — marginal is more common, which is exactly what makes an unflagged default dangerous.
The tier boundaries need the same care. A table that reads “up to 1,000,000” then “1,000,001 to 5,000,000” is unambiguous; one that reads “up to 1,000,000” then “1,000,000 to 5,000,000” overlaps at a point, and a reader must decide. Extract the stated bounds verbatim plus an inclusivity flag per bound, and validate that the tiers are contiguous and non-overlapping. A gap or an overlap in the extracted table is either a drafting issue or a misread row, and both want human eyes.
Advances, minimums and what recoups against what
Three related figures appear constantly and interact in ways a flat schema cannot express. An advance is a payment made up front, usually recoupable against future royalties. A minimum annual royalty is a floor payable whether or not earned royalties reach it. A guaranteed payment may be neither recoupable nor creditable.
The fields that decide the arithmetic are the relationships: is the advance recoupable against earned royalties, is it creditable against the minimum, does an unrecouped balance carry forward between periods or expire at year end. Each is a yes or no stated in a clause, and each changes the amount payable. Extract them as booleans with quotes; a record that has the numbers and not the relationships cannot compute anything.
Anti-stacking or offset provisions belong in the same group. These reduce the royalty where the licensee must also pay a third party for rights needed to practise the licence, usually with a floor expressed as a proportion of the stated rate. The reduction mechanism and the floor are both fields, and an extraction that captures the rate table alone will over-state every payment where an offset applies.
The grant fields that bound everything else
- Exclusivity. Exclusive, sole and non-exclusive are three values, not two, and the middle one is frequently defined in the agreement itself.
- Territory and field of use. Both are usually defined terms, both are frequently lists, and both bound where the royalty base is even measured.
- Licensed property. Patents by number, marks by registration number, works by title, often in a schedule that is amended separately from the agreement. Extract the schedule as its own dated structure, the same way a trust property schedule is kept separate from the instrument.
- Term, renewal and reporting cadence. The reporting period and the number of days after period end within which a statement and payment are due generate the calendar that the whole record is for.
- Sublicensing. Whether it is permitted at all, and the share of sublicense revenue payable, which is a second rate on a second base.
Three provisions decide whether the extracted numbers can ever be checked against reality, and they are routinely skipped because they are not about rates. Audit rights state how often the licensor may examine the books, how much notice is required, and who pays if an underpayment above a stated threshold is found — that threshold is a number worth extracting. Late payment interest is a rate on a period. And where sales occur in more than one currency, the agreement specifies a conversion basis and a date, and two records computed on different bases are not comparable. Extract all three as structured fields, because a royalty figure without its conversion rule is a figure nobody can reproduce.
What breaks
Percentages are written twice in contract drafting — “five percent (5%)” — and the two forms disagree more often than anyone expects, usually after an amendment changed one and not the other. Extract both representations and compare them as a cross-field amount check; a mismatch is a finding, not something to resolve by preferring the numeral.
Number formatting is the second recurring trap. European decimal commas and thousands separators invert the meaning of 1.500,00, and a currency symbol elsewhere in the sentence is the only clue. Capture the currency as a field rather than inferring it from the symbol nearest the number, and reject a parse where the separator convention is ambiguous rather than guessing — the currency amount validation rule covers the general case.
Finally, the tier table itself is often an image or a deeply nested table with merged header cells, which is a layout problem rather than a language one. Fix it upstream in merged-cell table extraction and validate the result arithmetically, because a tier table that does not tile the number line is a table you have read wrong.