Documentation

Importing contract types

Bulk import or update contract types (royalty rule sets) using a CSV template, with support for tiered rules, conditions, and multiple allocation types.

Contract types define the royalty rules that determine how income is allocated to rights holders. You can create and update contract types in bulk using the CSV upload feature — ideal when setting up multiple royalty agreements at once.

Contract types are reusable — once created, a single contract type can be linked to multiple rights holders and products via contract usage imports, saving you from entering the same contract terms multiple times. For this reason, contract types should be imported before contract usage.

If you only need to create one or two contract types, you may prefer to create them via the user interface.

New to contracts? Read the contracts overview first to understand how contracts, rules, and conditions work together.

Download the CSV template

A CSV template is available to download from the contract types import page:

  1. Go to the main menu, top left, and click Import.
  2. Under ‘What are you uploading?’, choose ‘Contract Types’.
  3. Click ‘Download contract types template file’.
  4. The CSV file template will be downloaded to your device.

You can also export all existing contract types from the same page. This is useful if you want to update contract types in bulk — export, amend the data in your spreadsheet software, then re-import.

How contract type imports work

Each row in the CSV represents a single rule within a contract type. Multiple rows with the same name or code are grouped as rules under one contract type.

  • Rules are evaluated in order by priority — the first matching rule is used for allocation
  • A rule with no conditions acts as a catch-all default
  • If a contract type code already exists, its rules will be replaced with the ones in the file

For more on how rules and conditions work during royalty runs, see contracts overview.

Prepare your contract types data

Open the CSV template (or your exported file) in your spreadsheet software — we recommend Google Sheets over Excel.

Identity columns

ColumnAliasesRequiredDescription
namecontract-type, contract-name, contract-type-nameSee noteThe display name of the contract type
codecontract-code, contract-type-codeSee noteUnique identifier (auto-slugified)
descriptionNoFree-form description

Each row must have at least one of name or code. If only a code is given (no name), the contract type must already exist in the system. If code is omitted, it is generated automatically from the name.

Rule configuration

ColumnAliasesRequiredDescription
rule-priorityorder, rule-order, rulepriorityNoEvaluation order (starting from 0). Auto-incremented if omitted
allocation-typetype, allocationtype, allocationYesHow royalties are calculated (see below)
allocation-percentagepercentage, percent, rate, royalty-rateConditionalRequired for percentage-based types (0–100)
allocation-fixed-pricefixed-price, price-per-unit, fixedpriceConditionalRequired for fixed-price-per-unit type — must be greater than 0

Allocation types

TypeAliasesRequires
net-receiptsnet receipts, netPercentage (0–100)
list-pricelist price, list, rrpPercentage (0–100)
list-price-minus-discountlist price minus discountPercentage (0–100)
fixed-price-per-unitfixed price per unit, fixed price, fixedFixed price (greater than 0)
no-allocationno allocation, noneNothing

For details on what each allocation type means, see rule actions in Creating and Managing Contracts.

Condition columns (all optional)

Each condition has an operator and a value. If an operator is provided, its corresponding value is required.

Operator columnValue columnDescription
discount-rate-operatordiscount-rate-valueFilter by discount rate
sale-country-operatorsale-country-value (aliases: country, countries)Filter by country (ISO codes)
units-sold-operatorunits-sold-valueFilter by units sold
total-net-receipts-operatortotal-net-receipts-valueFilter by total net receipts

Numeric operators (discount rate, units sold, net receipts)

OperatorSymbolWord aliases
Greater than>greater than, more than
Greater than or equal>=at least
Less than<less than
Less than or equal<=at most
Equals=is, equals, equal to
Not equal!=is not, not equal to
Betweenbetween
One ofin, one of
Not one ofnot in, not one of

Tip: For the between operator, use the format min-max (e.g. 10-50).

Country operators

Supports: equals (=), is-not-equal (!=), is-one-of (in), is-not-one-of (not in)

Country values should be ISO country codes (2–3 letters), separated by commas. They are automatically uppercased.

Beware of spreadsheet auto-formatting

Excel and other spreadsheet software can auto-format your data in ways that corrupt it. Common problems include long numbers converted to scientific notation and dates being reformatted.

Tip: Format all cells as text before entering or pasting data. For detailed instructions, see Introduction to importing.

Examples

Simple percentage contract

nameallocation-typeallocation-percentage
Standard Authornet-receipts25

Contract with tiered rules

namerule-priorityallocation-typeallocation-percentageunits-sold-operatorunits-sold-value
Tiered Royalty1net-receipts30>=1000
Tiered Royalty2net-receipts25>=500
Tiered Royalty3net-receipts20

Rule priority 3 has no conditions, so it acts as the catch-all default for sales under 500 units. For more on tiered royalties, see tiered royalties.

Country-based contract

namerule-priorityallocation-typeallocation-percentagesale-country-operatorsale-country-value
Regional Rates1net-receipts30inGB,US,CA
Regional Rates2net-receipts20

Fixed price contract

nameallocation-typeallocation-fixed-price
Fixed Ratefixed-price-per-unit1.50

Upload your contract types CSV

When you’ve double-checked your data, save the file as a CSV. In Google Sheets, this is File > Download > CSV.

  1. Go to the main menu, top left, and click Import.
  2. Under ‘What are you uploading?’, choose ‘Contract Types’.
  3. Under ‘Choose your file’ click ‘Browse’ and navigate to your CSV file.
  4. Click ‘Next’.
  5. The file will be uploaded and validated (checked for problems). You will see the results on a preview page.
  6. If the results look good, click ‘Continue’ and the contract types will be imported (or, if the preview step highlights problems, you will need to fix the data — read the error message and check the requirements above).

Dry run preview

Before the import is applied, you will see a summary showing:

  • New contract types to be created (with rule counts)
  • Existing contract types to be updated (showing old vs new rule counts)
  • Any validation errors that need to be fixed

You must confirm the import before any changes are saved.

Validation

The import runs validation before any changes are made:

  • Name or code — at least one must be provided per row
  • Allocation type — must be a recognised type
  • Percentage — required for percentage-based types, must be 0–100
  • Fixed price — required for fixed-price-per-unit, must be greater than 0
  • Operators — must be valid if provided
  • Values — required when an operator is specified
  • Country codes — must be 2–3 letter ISO codes
  • Rule priorities — must be unique within each contract type
  • Between values — must use min-max format with two numbers

Update contract types in bulk

You can also use the above process to update existing contract types in bulk.

When a contract type code in the CSV matches an existing record:

  • The name and description are updated (if provided)
  • All existing rules are replaced with the rules from the CSV — this is a full replacement, so any rules not in the CSV will be removed

Tips

  • Use the template CSV download to get the correct column headers
  • Use the export feature to download your current contract types as a starting point for edits
  • Column names are flexible — many aliases are accepted (see the tables above)
  • Operators can be written as symbols (>, >=) or words (greater than, at least)
  • Empty condition columns are ignored — only add conditions you need
  • Rule priority is optional — rules are auto-numbered if omitted

What’s next?

Once your contract types are set up, you can link them to rights holders and products by importing contract usage.