Blog · Board and management reporting
Compare subscription, advertising and licensing revenue by publication and period. Build a reconciled publisher revenue review from finance and audience summaries, with spreadsheet formulas and a worked example.
Media publishing revenue analytics separates subscriptions, advertising and licensing, then reconciles their movements to the publisher's recognized revenue. Add audience and delivery summaries only after the finance totals tie, because readers, bills and earned revenue measure different things.
Use one reporting month, publication and income stream per summary row. Keep a separate detail export containing the source transaction identifier, revenue account, recognition period, publication, stream and recognized amount. Include credit entries with their signs intact.
This division reflects real publisher economics. The New York Times Company's annual report distinguishes subscription, advertising, and affiliate, licensing and other revenues, and describes advertising revenue as driven by volume, rate and mix. Your categories should follow your own business and accounting policies rather than copying another publisher's reporting labels.
Use recognized revenue from the approved close. Subscription payments may precede access, advertising bills may precede delivery, and licensing agreements can have different recognition patterns. For the broader timing distinction, see bookings, billings and revenue.
Exclude sales taxes and amounts outside the selected entities and currency. If finance reports a residual other-revenue category, keep it visible until its contents are understood. Hiding it in licensing makes the review harder to reconcile.
Consider a fictional US publisher with Metro Daily and Trade Review. Its May and June 2026 ledger summaries contain the following recognized revenue. All amounts are USD; the example has no currency conversion or intercompany eliminations.
| Publication | Stream | May revenue (USD) | June revenue (USD) | Change (USD) |
|---|---|---|---|---|
| Metro Daily | Subscriptions | 240,000 | 264,000 | 24,000 |
| Metro Daily | Advertising | 150,000 | 144,000 | -6,000 |
| Metro Daily | Licensing | 30,000 | 42,000 | 12,000 |
| Trade Review | Subscriptions | 120,000 | 126,000 | 6,000 |
| Trade Review | Advertising | 90,000 | 108,000 | 18,000 |
| Trade Review | Licensing | 20,000 | 18,000 | -2,000 |
| Total | 650,000 | 702,000 | 52,000 |
Put the source rows on a sheet named Revenue, with month in column A, publication in B, stream in C and recognized revenue in D. Store months as consistent dates representing the first day of each month. On a summary sheet, B1 contains the selected month, A5 the publication and B3 the stream:
=SUMIFS(Revenue!$D$2:$D$5000,Revenue!$A$2:$A$5000,$B$1,Revenue!$B$2:$B$5000,$A5,Revenue!$C$2:$C$5000,B$3)
The formula adds only rows matching all three criteria, following Microsoft's SUMIFS syntax. Extend every range together if the export exceeds the selected range. Covirage is not affiliated with Microsoft.
For the comparison table above, with May in C and June in D, enter the change and growth calculations as follows:
=D2-C2
=IF(C2=0,NA(),D2/C2-1)
Format growth as a percentage. The total increase is $702,000 minus $650,000, or $52,000; $52,000 divided by $650,000 is 8.0%. Percentages here are rounded to one decimal place. A zero comparison period needs an explanation rather than an invented growth percentage.
Bring a separate monthly audience and advertising-delivery summary. Match it by publication and month, without repeating an entire month's audience count against every invoice.
For this example, advertising revenue covers only the impression-based digital activity shown below. Paid accounts are monthly averages on the same subscription scope as the revenue; free access is excluded.
| Publication | Month | Average paid accounts | Delivered ad impressions | Subscription revenue per paid account (USD) | Ad yield per thousand impressions (USD) |
|---|---|---|---|---|---|
| Metro Daily | May | 20,000 | 10,000,000 | 12.00 | 15.00 |
| Metro Daily | June | 22,000 | 12,000,000 | 12.00 | 12.00 |
| Trade Review | May | 5,000 | 3,000,000 | 24.00 | 30.00 |
| Trade Review | June | 5,250 | 3,600,000 | 24.00 | 30.00 |
If subscription revenue is B2 and average paid accounts C2, the first ratio is:
=IF(C2=0,NA(),B2/C2)
If matching advertising revenue is D2 and impressions E2, yield is:
=IF(E2=0,NA(),D2/E2*1000)
Revenue per account and yield are rounded to two decimal places. These are diagnostic ratios from recognized revenue, not substitutes for contract prices. Review bundle allocations, promotions and account definitions before calling a movement a pricing change.
The stream totals provide the first reconciliation:
| Stream | May revenue (USD) | June revenue (USD) | Change (USD) |
|---|---|---|---|
| Subscriptions | 360,000 | 390,000 | 30,000 |
| Advertising | 240,000 | 252,000 | 12,000 |
| Licensing | 50,000 | 60,000 | 10,000 |
| Total | 650,000 | 702,000 | 52,000 |
The changes sum to $52,000 and must match the publication table and ledger movement. Licensing needs its own contract-level explanation: the $12,000 Metro increase and $2,000 Trade decrease net to $10,000, without requiring an audience explanation.
Metro's subscription increase is consistent with additional paid accounts at unchanged revenue per account: (22,000 minus 20,000) × $12 = $24,000. Its advertising result is different. Extra impressions at May's yield add (12,000,000 minus 10,000,000) / 1,000 × $15 = $30,000. The yield effect at June volume is 12,000,000 / 1,000 × ($12 minus $15) = -$36,000. Together they explain the $6,000 decline.
The commercial owner should investigate ad mix and realized rates; the subscription owner should check acquisition and retention quality. Finance owns the ledger tie and licensing schedule. Broader media and entertainment analytics covers the wider operating review, while paid media analytics addresses the advertiser's spending perspective.
Upload your recognized-revenue export and matching publication, audience and advertising summaries, or bring a Google Sheet. Covirage maps the columns; its tools compute and check stream comparisons and reconciliations, while the external AI model explains the result with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See revenue driver analysis for the supporting approach.
Separate subscriptions, advertising and licensing at a minimum when those streams exist. Keep affiliate commissions, events, commercial printing and other material activities in their own categories. Preserve the finance team's approved revenue classifications rather than putting every non-subscription receipt into advertising.
No. A customer may pay for access before the publisher provides it. Use the approved revenue schedule for the period being reviewed, and reconcile billing and cash separately. Counting an annual payment as one month's revenue distorts comparisons with monthly subscriptions.
For a clearly defined advertising segment, divide recognized advertising revenue by the matching delivered impressions and multiply by one thousand. Keep print advertising and services with different units separate. A blended yield describes the mix sold; it does not prove that every advertiser paid the same rate.
Audience growth can support a revenue explanation, but it is not itself recognized revenue. Check paid-account growth against subscription revenue and monetized advertising volume against ad revenue. Free readers, unpaid trials and impressions outside the revenue scope can otherwise make the relationship look stronger than it is.