Author and Performer
Royalty Statements Generator

Dashboard

Recent royalty statements

Statements
PersonTypePeriodStatusPayableRevReviewCreated

People

Persistent people profiles (authors and performers) and search aliases

All people
NameTypeAliasesActive

New Statement

Every statement always searches every configured channel of its type

Statement parameters

Arbitrary dates are allowed; the period is split at month boundaries and each month uses its own Revenue Share. A missing Revenue Share month blocks the statement.

Statement

Statement
Summary
Not calculated yet.
Candidate videos
VideoStateWorks
Detail lines
Exports
FileRevCreated
Audit trail
TimeUserActionDetail

Revenue Share

One percentage per calendar month; statements snapshot the values they used

Add or correct a month

Correcting a historical value affects only future statements; completed statements keep the snapshot they were calculated with.

Configured months
MonthShare (%)Updated byUpdated

Exchange Rates

Monthly EUR/TRY and USD/TRY fixings; FUGA earnings are EUR and statements convert them to USD with the month's cross rate

Import the rates CSV

Columns: Month, From, To, Value. Only EUR/TRY and USD/TRY rows are read; a re-import updates the months it contains and leaves the rest alone. Statements snapshot the rates they used, so corrections affect only future statements.

Add or correct a month
Configured months
MonthEUR/TRYUSD/TRYEUR/USD (derived)Updated byUpdated

Data Sources

CMS health, channels, and the Fuga data sources; secrets are never displayed

Channels
LabelChannel IDContent OwnerUsed forActive

Channel IDs and Content Owner IDs are administrative configuration. Statements never offer a channel selector: every statement searches every active channel whose "Used for" matches its type (Both serves autor and performer statements alike). After adding a channel, run Sync now so its videos enter the catalogue.

Video catalogue
Loading...

The catalogue is synced on demand, not on a schedule. A statement always reads the local catalogue, so sync after adding a channel, and before a statement whose period ends after the last sync: the New Statement screen says when that is the case, and an older sync is perfectly fine for a period it already covers. The search index is what lets a statement look up a person's videos instead of reading every video in the catalogue; a sync builds it by itself, and the button is only there to force or re-check it.

Fuga catalogue (assets)
Loading...

Upload the Fuga asset export whenever it changes. Only assets whose label mentions RTS are stored; the ISRC code is the join key to the monthly Fuga earnings report and the YouTube UGC reports. The import can take a minute.

Fuga earnings (monthly reports)
Report monthStatusUploaded

Two ways in: Import from Drive opens your own Google Drive (connect once; browse and pick the CSV, the server then pulls it in the background and nothing depends on your tab), or upload the CSV from your computer (that tab stays open only while the file transfers). Rows whose Product Label mentions RTS are aggregated per ISRC, exactly. Which labels enter the payout and at what percent is configured later with the calculation rules.

Authorized Users

Simple full-access allowlist; every user must be a videomite.com account

Add user
Users
EmailNameRoleAdded byAdded

Audit Log

Who did what, across the whole application

TimeUserActionDetail

Help

How a statement is built, and what to do when a number looks wrong

What a statement is

A statement is one person's royalties over one date range, for ONE role. The same person can have both an author statement and a performer statement over the same period, holding different money, because a statement reads only its own role: an author statement reads writing credits, a performer statement reads who sings. A name appearing in the other role is not an error, and does not need reporting.

Everything a statement uses is snapshotted when it runs: the Revenue Share per month, the exchange rates, and the performer rate. Changing a setting afterwards never moves an old statement. To pull new settings in, recalculate and the revision goes up.

Making one
  1. New Statement: pick the role, then the person, then the dates. For a performer, pick the FUGA report months as well: the statement reads exactly the months you choose, and a month you did not import is simply not in it.
  2. Processing runs by itself and can take a few minutes. The phases are discover (read the video descriptions), metrics (views and revenue from YouTube), dmp (the FUGA money), sources (Art Track and UGC videos through Content ID) and calc. It survives being closed; nothing depends on this browser tab.
  3. Work through Needs review and FUGA findings. The totals are partial until they are empty, and the page says so.
  4. Export Excel, then Mark as delivered and later Close as paid. A PAID statement is read-only until it is reopened, which asks for a reason.
Reading the money columns

Each YouTube line goes through the same four steps, left to right:

ColumnWhat it is
GrossWhat the WHOLE video earned in the period. Not this person's share.
NetThe part that is theirs: gross x (billing songs / no. of songs). For a performer, one song counts as 1 / listed performers, so a duet is a half.
RTSNet minus the distributor's Revenue Share for that month. Revenue Share is applied per month, so the ratio between Net and RTS is a blend when the period spans months with different percentages.
PayableWhat the person gets: RTS x their rate. For a performer that is the profile rate (STANDARD 20 percent, EXCLUSIVE 30). For an author it is the Authors' Pool share for their roles.

FUGA lines run through the same chain. They start from the row's royalty in EUR divided by the number of listed performers, converted to USD with that month's cross rate, and from there the path is identical.

The three places you decide something

Needs review is about a video description. Open an item and you see the description with the matches highlighted, and what the parser made of it. Answer with the total number of songs and, for each of the person's songs, how many performers are listed beside it. Or press Not this performer if the video is not theirs, or Defer to leave it out of this statement without deciding.

FUGA findings is about the distributor's report. Two kinds of question appear here:

  • a sale row names the person in a spelling the catalogue roster cannot be split against, so the number of performers is unknown: press Count and enter how many the row lists;
  • a song is out of p-line scope: press Include to take it into this statement, or Leave out.

Re-parse videos re-reads every description with the current rules. You need it after a parser fix is deployed, because a draft that was already processed keeps its old reading and nothing on the screen would tell you. It clears only what the parser itself decided. Anything you resolved, excluded or deferred stays exactly as you left it, and the confirmation tells you both counts before it starts.

The warnings, and what to do about each
MessageWhat it means
dmp_unresolvedFUGA rows nobody could attribute safely. Resolve them under FUGA findings.
pline_outside_scopeSongs kept out of the whole statement by their p-line. Scope is read from the p_line_text column alone; label_name is a different column and never decides, so a song can read "PGP RTS" as its label and still be out. Include or Leave out under FUGA findings; the real fix is to fill the p-line in FUGA.
dmp_other_artist_rowsMoney on this person's own recordings that a DIFFERENT artist string carried away, usually a compilation credited to its own artist. Compare with the FUGA portal filtered to that ISRC. If one of them is really theirs, the fix is a missing alias or a missing roster name.
name_search_outside_repertoireNothing to do. Content ID assets that name the person but have no ISRC to look up, or whose ISRC is already asked about above. It is here to read when a total looks wrong.
missing_fuga_monthsA month in the period has no imported report. Import it under Data Sources, then run the processing again (Retry processing if the run stopped, Re-parse videos if it finished).
catalogue_staleThe FUGA asset catalogue is older than the reports. Re-import it on Data Sources.
content_id_scope_missingA Content Owner is authorized without the Content ID permission, so Art Track and UGC cannot be found for it. Re-authorize it under Data Sources, then run the processing again (Retry processing if the run stopped, Re-parse videos if it finished).
content_id_asset_missingNothing to do for the statement. Recordings in the repertoire with no asset in Content ID under any Content Owner: YouTube has nothing of theirs to count, their FUGA money is counted as usual. If one should exist on YouTube, check the delivery or the ISRC in FUGA or the CMS, then Re-parse.
art_track_missingNothing to do. Recordings in the repertoire that have no Art Track video on YouTube. They have no Art Track row; their UGC videos and FUGA money are counted as usual. Printed so a missing Art Track is never mistaken for a missing row.
sources_unresolvedArt Track / UGC findings the rules could not settle, listed under the summary. The recordings they name are not counted until the cause is fixed and the processing runs again. multi_song_count_failed: the songs on a compilation could not be counted, so nothing from that video was counted.
When a number looks wrong
  1. Read the warnings above the statement first. Money that is deliberately not paid is named there, with amounts.
  2. Check the months. A performer statement reads only the FUGA report months chosen for it, so a sale in a month you did not import is not missing, it is out of scope.
  3. Compare one ISRC against the FUGA portal filtered to that ISRC. If the totals differ, dmp_other_artist_rows usually names where the rest went.
  4. If a video is read wrongly, open it under Needs review and look at "What the parser recognized". If the description is fine and the reading is not, that is a parser bug worth reporting.
  5. After any parser fix ships, press Re-parse videos. Until you do, you are looking at the old reading.
Working...