Revenue Management: #9 Revenue Recognition in Media & Publishing

Revenue Management: #9 Revenue Recognition in Media & Publishing

   

Media & Publishing industry has evolved in recent times. It offers subscriptions, bundles digital and print access, runs sponsored content, and sometimes even sells ad spaces. If you run a media or publishing business, you will always get into a situation where you get paid in advance, but how do you determine what part of the money is earned today versus what needs to be deferred for the future? Can you recognize all of them upfront? Or should it spread across issues or impressions?

How do publishers and media platforms handle revenue?      

Revenue Recognition Scenarios in Media & Publishing

Subscriptions, advertising contracts, bundled content, and sponsored campaigns often complicate revenue recognition in media and publishing. Though accounting guidelines like ASC 606 and IFRS 15 apply, how you use them varies based on how you deliver content.


Subscription Revenue

When a customer pays for a weekly, monthly, or annual subscription, the revenue must be spread across the subscription period, as content is delivered over time rather than upfront.


Example: A $120 annual magazine subscription should be recognized at $10 monthly over 12 months.

Bundled Offerings

You may offer print+digital access, or magazine+e-book bundles. Each component should be recognized separately based on delivery schedules and relative values.


Example: A $240 subscription includes $180 of weekly print magazines and $60 for e-book access. Revenue is recognized $15/month for print and $60 once access is granted.

Advertising Revenue

Advertising may be sold per issue, impressions, or based on clicks. You can recognize revenue only after delivery of an impression or publication, not when the ad is sold or paid for.


Example: A $5000 ad campaign for 1,00,000 impressions recognizes revenue only as impressions are delivered (say $500 for every 10,000)

Sponsored Content or Paid Articles

Sponsored stories or influencer placements should be recognized on publication date or campaign completion, depending on the agreement.


Example: A $2000-paid article is published on July 5th, and revenue is recognized on the same day.

Cancellations & Refunds

If a subscriber cancels mid-cycle and gets a partial refund, revenue must be adjusted with only the earned portion as recognized.


Example: $120 yearly subscription cancelled after 3 months. Only $30 will be considered recognized.

These scenarios highlight how delivery, not payment, drives revenue recognition. With multiple formats and monetisation models in place, manual revenue recognition handling is a huge task prone to errors and misstatements.

Info
Scenario: 

Your publishing company sells an annual subscription package at $240. This subscription covers weekly print magazine work of $15 and on-demand access to the digital library, which is valued at $60. The customer pays upfront on the 1st of January.  

Zoho Billing for Media Revenue Recognition


Publishers and content creators will be able to work with Zoho Billing to define revenue recognition rules based on content delivery and access architecture.

For the scenario above, you may go with the following revenue recognition rule configuration,

Component

Recognition Frequency

Recognition Method

Recognition Time

Print Magazines

Monthly

Evenly Distributed Prorated

Period Start

Digital Library

Once

One-Time (Daily)

Period Start

 

Even though the $240 is received upfront, revenue must be split evenly for the subscription-based service.


Reports in Zoho Billing
Let's say you are checking the reports during March.

i) Recognized Revenue Report

Component

Recognized Revenue

Description

Digital Library

$60

Fully recognized on the subscription start date

Print Magazine

$45

$15x3 issues delivered

Total Recognized

$105

recognized at the end of three months

 

ii) Deferred Revenue Report

After three months of offering, nine print issues are still pending delivery.


Component

Deferred Amount

Digital Library

$0

Print Magazine

$135 (9 months of deliverables)

Total Deferred

$135

 

iii) Revenue Waterfall Report


Month

Digital Library

Print Magazine

Total

Month 1

$60

$15

$75

Month 2

----

$15

$15

Month 3

----

$15

$15

Month 4 (upcoming)

----

$15

$15

Month 5 (upcoming)

----

$15

$15

Month 6 (upcoming)

----

$15

$15

Month 7 (upcoming)

----

$15

$15

Month 8 (upcoming)

----

$15

$15

Month 9 (upcoming)

----

$15

$15

Month 10 (upcoming)

----

$15

$15

Month 11 (upcoming)

----

$15

$15

Month 12 (upcoming)

----

$15

$15

Total (after 3 months)

$60

$45

$105

 

Only at the end of one year will the full payment you received be considered recognized revenue.

Idea

Best Practices for the Media Industry while recognizing revenue

  • Break Down Subscriptions: Separate print, digital, access, ads, and events into individual deliverables.

  • Match Revenue to Delivery: Recognize only when issues go out, impressions are served, or access granted.

  • Account for Returns & Refund: Handle cancellations by adjusting the deferred revenue schedules automatically.

  • Monitor Reports Monthly: Revenue Waterfall and Deferred reports ensure timely recognition tracking. 
Notes
Up Next: Common Mistakes while Recognizing Revenue
    • Sticky Posts

    • Community Learning Series | Digest #5 — September 2020

      Dear customers, We're happy to bring you the September edition of our #CommunityDigest! Keep track of your subscription KPIs right from your smartphone: Last month, we enhanced our Android mobile app to help our customers get daily updates on their business health. We got to know from a lot of customers that this has made their job much more easier because they no longer have to keep a reminder to manually check on the previous day's revenue or activations. If you have not downloaded it yet, here's
    • Community Learning Series | Digest #4 - August 2020

      Dear customers, We hope you're staying safe and healthy. I'm happy to bring you the fourth edition of our #CommunityDigest with some brand-new updates from us. 1. Daily Business Updates (for Android users) The Zoho Subscriptions Android app has got a cool new update: You can now get a push notification to your smartphone that lets you know how many activations and cancellations have taken place, and what's the net revenue for the previous day. The best part is, you can tell the app when exactly you
    • Community Learning Series | Digest #3 - July 2020

      Dear customers, We hope you're staying safe and healthy. We're glad to bring you the July edition of our #CommunityDigest. New community members can view our previous newsletters here. This time, we have two major updates and three interesting topics for you: 1. Zoho Subscriptions Developer Community Since the inception of Zoho Subscriptions, our team believed that the recurring billing platform we provide should be able to offer an extensive API library that empowers businesses to automate most
    • Introducing: Community Learning Series | Digest #1 - May 2020

      Dear customers, We hope you are staying safe and healthy. Helping businesses manage their customer subscriptions more efficiently has always been, and always will be, our goal at Zoho Subscriptions. We strongly believe this is possible if we grow together as a community and share what we know with each other. To nurture this shared learning experience, here is our brand-new Community Learning Series! ​ Welcome to the first edition of our digest! Each edition of our community digest includes guides
    • Recent Topics

    • Create View to See Tickets Closed within the last 3 days

      I'm trying to create a view in Zoho Desk that shows me "recently closed ticket," which I will define as tickets closed in the last 3 days. I want this view to update so that whenever I click to view it is recalculates and shows me tickets closed within
    • Introducing Profile Summary: Faster Candidate Insights with Zia

      We’re excited to launch Profile Summary, a powerful new feature in Zoho Recruit that transforms how you review candidate profiles. What used to take minutes of resume scanning can now be assessed in seconds—thanks to Zia. A Quick Example Say you’re hiring
    • Send Whatsapp message from Whatsapp template with custom variables

      Hi, I'm trying to do some basic integration for sending WhatsApp messages from Zoho CRM using Zoho Desk whatsapp templates. When creating new whatsapp template in Zoho Desk we can choose ticket related fields as variables but it's not clear how to use
    • Recurring Events Not Appearing in "My Events" and therefore not syncing with Google Apps

      We use the Google Sync functionality for our events, and it appears to have been working fine except: I've created a set of recurring events that I noticed were missing from my Google Apps calendar. Upon further research, it appears this is occurring
    • Dissociate account from contact

      Hello, When I make the call through the API to "Dissociate account from contact" using, /api/v1/contacts/**integer**/accounts/**integer**/dissociate I get this response back, 422Unprocessable Entity (WebDAV) (RFC 4918) { "errorCode": "INVALID_DATA", "message":
    • Zoho Desk and Zoho People Integration - is it possible in order to alert whether an agent is available

      Hi, We use Zoho People for our employees to log absence (Paid Time Off etc). I was wondering if it was possible that this information can be shared in to Zoho Desk, so that when allocating a ticket to an agent, if they are on leave there is an onscreen
    • Add Save button to Expense form

      A save button would be very helpful on the expense form. Currently there is a Save and Close button. When we want to itemize an expense, this option would be very helpful. For example, if we have a hotel expense that also has room service, which is a
    • Change Currency symbol

      I would like to change the way our currency displays when printed on quotes, invoices and purchase orders. Currently, we have Australian Dollars AUD as our Home Currency. The only two symbol choices available for this currency are "AU $" or "AUD". I would
    • Call transcrition working for ringcentral?

      I don't see anything about what telephony providers can be used. The Zoho support person A said that RingCentral isn't supported. Zoho support person B said that it works, just make sure the call recording link works. Excellent instructions here: Call
    • How to Send Email from within a custom module (with or without an email template)

      It is possible to send an email from the Deals module. However, I can't find a way to send an email from any of our custom modules. I have tried adding an email field to the modules (even though we don't really want one or need it there). That doesn't
    • All new Address Field in Zoho CRM: maintain structured and accurate address inputs

      The address field will be available exclusively for IN DC users. We'll keep you updated on the DC-specific rollout soon. It's currently available for all new sign-ups and for existing Zoho CRM orgs which are in the Professional edition. Managing addresses
    • Zoho Inventory - Managing Items With Multiple Suppliers

      Hi community, I'm working on a project at the moment for a car parts wholesale business. Each Item (part) has its own original manufacturer part number (sometimes more than one part number for the same item). When purchasing parts from 3rd party suppliers,
    • Kaizen #59 - Creating alerts and custom messages using Client Script

      Hello everyone! We are happy to resume our Zoho CRM Developer Community series - The Kaizen series! Welcome back to the new start of Kaizen! This post is about Client Script and its simple use cases involving ZDK Client functions. What is Client Script?
    • Retainer invoice in Zoho Finance modlue

      Hello, Is there a way of creating retainer invoices in the Zoho Finance module? If not can I request this is considered for future updates please.
    • How do I see the total leads during a certain period?

      I understand I can get the count of leads and potentials but the total number of leads in a certain period should be equal to Leads+potentials because when we convert a lead it gets moved to potentials and no longer exists there. is there a way i could
    • Function #46: Auto-Calculate Sales Margin on a Quote

      Welcome back everyone! Last week's function was about displaying the discount amount in words. This week, it's going to be about automatically calculating the sales margin for a particular quote, sales order or an invoice. Business scenario Where there is sales, there's also evaluation and competition between sales reps. A healthy rivalry helps to better motivate your employees to do smart work and close deals faster and more efficiently. But how does a sales rep get evaluated? 90% of the time, it's
    • Where is the Global Search field?

      I am looking for an alternative to SF.com. Zoho CRM seems to be work fine, and be customizable in terms of the fields and reports. But there's one big thing missing and it's going to prevent us from using it: there's no global search box at the top of
    • API 500 Error

      Hello amazing ZOHO Projects Community, I get this message. How can we solve this? { "error": { "status_code": "500", "method": "GET", "instance": "/api/v3/portal/2010147XXXX/projects/2679160000003XXXX/timesheet", "title": "INTERNAL_SERVER_ERROR", "error_type":
    • In place field editing for candidates

      Wondering about any insight/best practices for efficiently updating candidate records while reviewing them in a Job Opening pipeline. We can do in-field editing (e.g. update job title or City) only when we have the full candidate record open, however
    • Default tax type for mileage?

      Where we are, mileage includes a government tax. Is there any way to set a default tax for the Personal Car Mileage category of expense? (Or any other way?)
    • Analytics Portal

      I have the "standard plan" and want to explore the portal option; I activated the 15-day trial but do not see the pricing for the add-on. How can I get the price under "Upgrade add-ons." Thanks Rudy
    • The Social Wall: October 2025

      Hello everyone, As we head toward the end of the year, we’re bringing you a few updates to help give your social media efforts a strong finish. This month, we’re rolling out new enhancements across both the web and mobile app. Post Preview Have you ever
    • Show price book list price

      When using price books, once you add products to the price book in the Products related list you can display the Unit price which is the default list price; however, there is no option to show the price book list price. To see the price book list price
    • Cliq File Upload

      While uploading large file like 500MB, it takes time, that fines. But if you resize window or move window in other screen, that uploading disappears. After upload complete & sent it will be visible
    • Resizing a Record Template Background Inage

      Hi everyone, I have an issue which I can't seem to resolve: Basically, I'm designing a record template in certificate form. I've specified A5 landscape. I've set my background image the same dimensions with total pixels at 443,520. Whatever I try, when
    • Zia Actions: AI-powered Workflow Automation for Faster and Smarter Execution

      Hello everyone, Workflows got a notch better with AI-based actions. Actions such as field extraction, prediction, auto reply, and content generation facilitate quick execution with improved speed and accuracy. Zia can intercept useful details in newly
    • Constant color of a legend value

      It would be nice if we can set a constant color/pattern to a value when creating a chart. We would often use the same value in different graph options and I always have to copy the color that we've set to a certain value from a previous graph to make
    • What's New in Zoho POS - October 2025

      Hello everyone, Welcome to Zoho POS's monthly updates, where we share our latest feature updates, releases, changes, and more. Let’s take a look at how October went. Process returns for refunds, exchanges, or offer store credit Returns and exchanges can
    • Loan and purchase

      My husband is lending me mobey to buy a vehicle intersst free ... I need to know how to record the cash receipt and how I pay it back... the money is for a vehicle do I just post the invoice for that as I normally would usung the loan money to pay for
    • Zoho Connect Module in Zoho Trident

      Hi I really like where Zoho Trident is going. Having Mail and Cliq in one place is especially powerful. However, Zoho Connect really needs to be included to make this a true communication and collaboration hub. I would like to request that Zoho Connect
    • Zoho FSM API Delete Record

      Hi FSM Team, It would be great if you could delete a record via API. Thank you,
    • File Field Validation

      Hello all, We are tracking our customer NDA agreements in our CRM and have created 2 fields to do so, an execution date field and a file upload field. I want to create a validation rule to ensure that when the execution date field is populated that the
    • 100 record view limitation

      I have just migrated from another CRM and am starting in ZOHOcrm with over 5000 contacts. It seems that my searches and sorts are limited to 100 live records....or am I missing something. This seems to be very limiting...in a lot of scenarios (mass email,
    • ZUG Meet-ups are back - Across India (December 2025)

      The Zoho User Group (ZUG) meet-ups are back, and this time, we’re travelling across India to reconnect with our amazing community! From Chennai to Delhi, Bengaluru to Mumbai, we can’t wait to meet you all in person and talk everything Zoho SalesIQ, automation,
    • Categorise Attachments

      We take ID, proof of address, right to work documentation and more.  I can upload a single file in to field, but we often receive multiple files for each category e.g. someone may send a separate file for the front and back of their national ID card.  My team don't have time to manipulate the files in order to upload them as a single file. The options, as far as I can tell, would be to create additional fields on attachments in order to categorise what the file is, or to be able to upload single
    • Scheduling a meeting for just a 1:1 phone call

      My business is B2C and many of my customer's don't want to engage in an online meeting for what can be handled in a regular phone call. I am trying to create a new meeting invitation, but there is no venue optoin for "phone call". How are other's handling
    • Need more details on API Usage Dashboard

      Hi Team, We have implemented Zoho Expense for a client and has done some integrations with well known third party ERP via api. Recently we have noticed a huge spike in the API consumption. But we couldn't get the root cause for the same. I accept there
    • Power of Automation:: Automating SLA Timelines for First Response & Resolution for Issues module.

      Hello Everyone, Ever wished SLAs could update automatically based on issue severity i.e no manual tracking, no missed timelines? That is exactly what one of our customers, Alex, wanted to achieve in the Issues module. So, we have setup a simple automation
    • Finding missing records

      I have a challenge and I am not really sure where to start with it. I can't find any similar threads on here, can anyone help: I have two forms, FormA and FormB. Both forms have records that contain a field called Job_Number. What I am trying to achieve
    • Power of Automation :: Quick way to associate your Projects with Zoho CRM

      A custom function is a software code that can be used to automate a process and this allows you to automate a notification, call a webhook, or perform logic immediately after a workflow rule is triggered. This feature helps to automate complex tasks and
    • Next Page