Problems & solutions · Custom Software

Music Royalty Accounting Problems: The 7 That Cost Real Money, and How to Avoid Them

Music Royalty Accounting Software architecture and database illustration showing common problems and fixes.
The short answer

The single most expensive mistake in a royalty build is storing the recoupment balance as one mutable number on the artist account. It looks obvious and it destroys your ability to defend a statement. When an auditor establishes that a recording cost or a marketing contribution was not recoupable under the agreement, you cannot reverse it as an entry and regenerate the affected periods, because the history that produced the current balance no longer exists. What should be a two week correction becomes a manual reconstruction across every period since the cost was posted, and the artist's business manager is now negotiating from a position where your own numbers cannot be reproduced. That is the difference between a short audit and a settlement.

Why does the catalogue matching problem get underestimated so often?

Every royalty project starts with a scope line that reads something like ingest platform statements and match to catalogue. It is estimated as a data import. It is not a data import, it is an identity resolution problem, and it is the largest single workstream in the build.

The reason is specific to music. Recording identity is supposed to be settled by the ISRC, and in a catalogue you created yourself last year it broadly is. In a real catalogue it is not, because a distributor minted a new code for a territory release, a compilation carried its own, a remaster got a third, and a licensed live version arrived through a partner under a code you have never seen. Publishing is harder again, because a work carries share splits registered differently at each society and the statements disagree with each other on the writer strings.

Teams that treat this as a lookup ship a system that matches most lines and dumps the rest into a table called unmatched, which grows every period and eventually becomes a suspense balance nobody can clear. Teams that treat it as resolution build tiers: exact identifier, then a maintained alias table, then a scored match on artist, title, duration and release, then a human review queue. The crucial design detail is that every automated match records the rule and the score that produced it, so a match can be reviewed and reversed without unpicking a payment already made. Scope the review queue as a product with a workflow and an owner, not as a screen. Then report the unmatched pile with an ageing view every single period, because the failure mode here is not a spike, it is quiet compounding.

What goes wrong when you migrate a legacy contract library and historic statements?

The contract migration is where royalty projects overrun, and it overruns on business affairs time rather than development time. A 2003 agreement has a packaging deduction and a reduced rate for what the drafter called new media. A 2014 deal shares net receipts with a defined deduction list. A 2022 deal is a straight split with an escalator at a revenue threshold. A producer has points payable either after the artist account recoups or from record one, depending on a memo stapled to the agreement. Nobody has read most of these documents in a decade, and turning them into structured terms is legal reading, not data entry.

The predictable failure is that the project plan allocates a developer to it. What is needed is a business affairs person, or an external royalty consultant, producing a structured term sheet per deal that somebody with authority signs off. Budget it as a parallel workstream starting in week one, because it gates the calculation engine and cannot be compressed by adding engineers.

The second migration trap is historic statements. You need previously issued statements to remain retrievable exactly as issued, and you almost never need them recalculated inside the new system. Import them as immutable documents with their period, artist and totals indexed, and draw a hard line: the new engine computes from a stated cutover period forward. Teams that try to reproduce five years of history in the new model discover that the old system's rounding, currency dates and deduction ordering differ subtly, and they spend three months explaining differences that have no business consequence.

Why do statement feeds from platforms, societies and distributors break after launch?

They break because ingestion was built as a set of import scripts rather than a validated pipeline, and the assumptions that held during development stop holding by the second or third period. A platform adds a column. A territory code changes format. A society sends a corrected file for a period you have already closed. A distributor's export drops a decimal place on one currency. None of these announce themselves.

DDEX has standardised a good deal of digital sales reporting and where a partner sends conforming files life is manageable. Plenty of your income does not arrive that way: society statements, neighbouring rights, sync fees, physical distribution and older partner exports all come in their own shapes.

The design that survives has three properties. Every file is stored raw and immutable on arrival, so you can always reparse rather than re-request. Parsing produces staged rows and the run does not proceed unless the staged totals reconcile to the partner's own control figures, which means a format change stops the run at a gate instead of silently dropping a column into a quietly wrong statement. And restatements are absorbed as adjustments on the next statement rather than as edits to a closed period, because overwriting a closed period is the fastest way to lose the ability to explain a historic payment.

What happens when recoupment and audit traceability are not fully covered?

This is the gap that turns a working system into a liability. Recoupment gets scoped as a balance and a threshold, which handles a simple advance and nothing else. The reality is advances, recording costs, video costs, tour support and marketing contributions recoupable at a stated percentage, sitting in pools that may be cross collateralised across an album cycle or across a whole deal term, with a producer whose share enters at a different point in the waterfall.

When that is modelled thinly, three things follow. You cannot show the balance as it stood at a historic date, so an auditor's first question has no clean answer. You cannot reverse a single disputed cost without recalculating by hand. And you cannot explain the order of operations, which is frequently the whole substance of the dispute.

The correct model is boring and it works. Costs post as dated events against a named recoupment pool. Earnings apply in a contractually defined order. The balance at any date is derived, never stored. Reversals are entries, not edits. Cross collateralisation is explicit structured data saying which projects share a pool, from when, and what happens when a term ends.

Transparency belongs in the same scope. In the European Union the copyright directive introduced a transparency obligation toward authors and performers, which pushes in the same direction as the audit clause already in your agreements: statements have to be explicable, not merely correct. An artist portal showing earnings by track, territory, platform and period, with the recoupment balance visible and deduction items named individually rather than aggregated, is cheaper to build than it is to keep answering the same questions by email.

Should you build custom or configure what you already own?

Buy, and do not call us, if you are an independent label or publisher with a few hundred releases, modern and fairly standard splits, and income arriving through one or two distributors. Curve Royalty Systems and Reprtoir are built for exactly that shape, cost a fraction of a build, and will produce better statements than a first attempt at custom software. If your complaint is that statements are slow rather than that they are unexplainable, configuring one of those properly is the right answer and it is not close.

Vistex is a reasonable answer inside an enterprise that already runs it for other rights, and if it is already in your estate, exhaust its configuration before pricing a replacement.

Build when two or more of these are true. Your catalogue includes acquired assets whose contracts and identifiers you inherited rather than created. Your unmatched income has become a standing suspense balance nobody can clear. Your deals carry conditional deductions, escalators or cross collateralisation that no product's rate configuration expresses honestly. Your royalty run takes longer than the period you are reporting on, which means you are structurally behind and will not catch up. Or an audit has been served and you cannot produce a tie out from platform income to a statement line.

How do hidden costs get into the quote?

Five reliably. Contract conversion, covered above, which is business affairs time and not development time, and which is the item most often left out of a fixed price entirely. Volume, because a system that handles ten million lines a period comfortably can fall over at three hundred million, and the remedy is a different processing model rather than a bigger server. That is an architecture decision that must be made before the first line of code, and retrofitting it is effectively a rebuild.

Publishing, if it is in scope. Share administration across societies is materially harder than recording royalties and belongs in its own phase with its own budget. Quotes that fold works and recordings into one line are quoting the easier half.

And the review queue staffing model. The system will produce a queue of unmatched and low confidence lines every period forever. If nobody is assigned to work it, the build has moved your suspense balance into a nicer interface.

What separates a build that works from one that fails here?

The first separator is whether your royalty team can change a deal without a developer. New agreements arrive constantly and amendments change terms mid relationship. If a new deduction structure needs a code release, the system is out of date within a year and your team quietly returns to spreadsheets for the deals it cannot express. Build the terms editor for the people who negotiate and administer deals.

The second is determinism. Given the same inputs and the same contract versions, a rerun must produce the same statement, byte for byte. That property is what lets you reverse a cost, regenerate the affected periods and hand the result to an auditor without a covering explanation. Systems that cannot be rerun reproducibly are systems whose outputs cannot be defended.

The third is that every statement issued is retained exactly as issued, alongside the contract term versions and the underlying line data that produced it. An audit request then pulls a file instead of starting a reconstruction, which routinely turns a six week engagement into a short one, and that is worth real money independent of the finding.

The fourth is ownership. You should hold the repository, the infrastructure accounts and the unrestricted right to hire another firm, written into the contract before kickoff. At Digital Heroes the code is yours from the first commit. Royalty calculations may be examined by an artist auditor years after they were performed, and a black box you cannot inspect is a liability your legal team inherits at exactly the wrong moment.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The share of tasks performed mainly by humans is projected to fall from 47% to 33% by 2030 as human-machine collaboration expands, with 170 million jobs created and 92 million displaced (a net gain of 78 million). Source: World Economic Forum (2025) →
  2. Companies in the top quartile of McKinsey's Developer Velocity Index had 2014-18 revenue growth four to five times faster than bottom-quartile peers, showing that software-building capability is a driver of business performance, not just a support function. Source: McKinsey & Company (2020) →
  3. Criteo's Global Commerce Review found retail apps convert at 18% versus 4% on mobile web (roughly 4.5x), and travel apps convert at 20% versus 6% on mobile web (about 3.3x). Source: Criteo (2017) →
  4. WordPress powers 41.5% of all websites and holds 59.2% of the market among sites running a known content management system, making it by far the most-used CMS on the web. Source: W3Techs (2026) →
Naomi B. · Senior Account Director · Enterprise · New York

Naomi runs enterprise accounts, which means procurement cycles, security reviews, multiple stakeholders and a scope that shifts as it climbs the org chart. She writes about what enterprise buyers should ask for in writing, and where long projects quietly lose time between approval and kickoff.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Our unmatched pile keeps growing every period. Where do we start?
Age it before you try to clear it, because the composition matters more than the size. Split it by partner, by period and by likely cause: territory variants of a known recording, an acquired catalogue whose codes were never mapped, a partner whose export changed format, and genuinely unknown lines. In most catalogues one or two of those buckets account for the majority, and mapping a single acquired catalogue's identifiers can remove a large share of the balance in days. The lines that remain are the ones that justify a scored matching layer and a staffed review queue.
How long does converting a legacy contract library actually take?
Weeks of business affairs time, not developer time, and it is the item most likely to overrun. Somebody has to read each agreement and produce a structured term sheet covering rate, revenue basis, named deductions, escalators, recoupment pool and any amendments with their effective dates, then have it signed off by someone with authority. Start it in week one as a parallel workstream, because it gates the calculation engine and no amount of engineering capacity compresses it.
Why did our royalty statements stop reconciling after a platform changed its file format?
Because ingestion was built as import scripts rather than a pipeline with a validation gate. When a column moves or a territory code changes shape, a script keeps running and produces a quietly wrong statement, which is far worse than a failure. Store every file raw and immutable on arrival, parse into staged rows, and refuse to proceed unless staged totals reconcile to the partner's own control figures. A format change should stop the run, not survive it.
Can we recalculate five years of history in the new system?
You almost certainly should not. The old system's rounding, currency dates and deduction ordering will differ subtly from the new engine, and you will spend months explaining differences with no business consequence. Import historic statements as immutable documents indexed by period, artist and totals so they remain retrievable exactly as issued, then compute from a stated cutover period forward. If a historic period genuinely needs restating, do it deliberately as a project.
Is Curve or Reprtoir enough, or do we need to build?
They are genuinely good for an independent label or publisher with a few hundred releases, modern splits and income through one or two distributors, and at that profile a build is hard to justify. The limits show up with acquired catalogues carrying inherited identifiers and legacy contract wording, and with deals whose conditional deductions, escalators or cross collateralisation a rate configuration cannot express. If your complaint is speed rather than explicability, configure the product properly first.
What is the most commonly missed cost in a royalty build quote?
Contract conversion, followed by processing scale. Conversion is legal reading time that fixed price quotes routinely exclude, and scale is an architecture decision: a system built for ten million lines a period needs a different processing model at three hundred million, and that choice cannot be retrofitted cheaply. Ask any prospective developer what the largest period they have processed was and how long the run took, then ask what would break at ten times that volume.
Do we really need an artist portal?
You need one once artist queries start consuming your royalty team's week, which happens earlier than most labels expect. It should show earnings by track, territory, platform and period, the current recoupment balance, and deduction items named individually rather than rolled into a percentage. In the European Union the copyright directive introduced a transparency obligation toward authors and performers, so explicability is moving from good practice toward expectation whether or not you build the portal.
How do we know the build will survive an audit before one is served?
Test it. Pick a closed period, reverse a single posted cost as an entry, regenerate the affected statements, and check that everything downstream recomputes deterministically and that the original statements are still retrievable exactly as issued. Then ask the system for the recoupment balance on a date two years ago and see whether it derives it or looks it up. If the balance is a stored field rather than a derived value, the system will not hold up and the fix is structural, not a feature.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
How small can the first version of my software be and still be worth building?
One workflow, end to end, for one type of user: the single process that currently burns the most hours or loses the most money. In Digital Heroes delivery experience, first versions scoped to 6 to 10 weeks of build time ship, get used, and generate the feedback that makes version two obviously right, while 9-month first versions routinely launch with features nobody touches. Everything you cut from v1 gets cheaper to build later, because real usage reorders the roadmap for you.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?