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.
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.
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.
Up Next: Common Mistakes while Recognizing Revenue
Recent Topics
Show backordered items on packing slip
We send out a lot of large orders, and often there are one or two things backordered. How can I fix the packing slips to show quantity ordered & quantity packed There should also be the ability to "ship" 0 of an item so the receiver knows that things
Document | Files
The vendor "Partial matches" still not fixed here after years of putting up with having to select most vendors manually ! ( again, the banking "Transaction rules" would solve a lot of these issues ) Some unwanted, irrelevant pdf's also arrive. It would
books+POS+ tap to pay+ stripe
So in the UK we now have tap to pay with stripe. So we can use the stripe app as a POS terminal. Brilliant news. Can we hope that the Books App might add this feature ASAP. It would be great to have one system rather than using the not very good Square
Canvas Form View - Client Script Page on load - Url params not working
We have a custom module with a canvas page for form view. We have a button in Customers module to open this canvas page using invokeurl function. We send few parameters as in the URL as query parameters. https://crm.zoho.in/crm/orgxxxxxxxx/tab/CustomModule12/create/canvas/64333200000261xxxx?layoutId=643332000002605001&c=${Customers.Customer
Sending Recruit SMS's to Zoho Cliq - Or tracking in the Messages module in Recruit?
Is there any way to send SMS Gateway messages in Recruit to ZOho Cliq? We use 2-way SMS massages a lot in Zoho Recruit to speed up communication with Candidates. However the only way to keep track of received SMS's is by keeping a look out for the Email
This mobile number has been marked spam. Please contact support.
Hi Support, Can you tell me why number was marked as spam. I have having difficult to add my number as you keep requesting i must use it. My number is +63....163 Or is Zoho company excluding Philippines from their services?
Is it possible to set a customer context variable in Zobot
Hi, I want to use a context variable to route users down different paths in my Zobot chat flow. I know I can do this when the user enters data. But I want to know if I can use a variable that is 'hard coded' on the card, that the user is unaware of. Use
Cannot change Blog Title
There is nowhere to change the blog title. You can change the blog URL but that is making no difference to the text "Enter Your Post Title" am I missing something?
Kaizen #203 - Answering Your Questions | Handling API Limits and Error Responses
Hi Everyone, Welcome back to yet another post in the Kaizen Series! We appreciate your keen participation in the 200th milestone celebration of the Kaizen series. We will continue to answer the queries we received through the feedback. When working with
How to verify website ownership with google search console
Hi, I am having a free .in domain provided by Zoho I have created a website on it now I want to verify my ownership to google webmaster. Can you please help me how to do that.
"SPF record exceed the allowed limit of 10"
Hi, I was wondering if there were a "universal Zoho SPF record" that would allow all my configured Zoho services that email things to meet this limitation ? or do I have to have an entry for mail, com, billing, etc?
Animated GIF Images in Chat
I know this seems to be a small feature request but in a recent Cliq update Zoho disabled autoplay for animated GIFs posted in Cliq conversations. We think this was not a good change. In our organization, animated GIFs in a chat play a role in expressing
I can't seem to login in to Mail Apps of MacOS /IOS
Hi, i'm having trouble in signing in to mail apps from IOS. It's always come back to wrong passwords. But i already changed my password like 3 times. But still it says wrong credentials
Profile Image Showing Incorrectly in Zoho Mail
Hi everyone, I’m facing a serious issue with Zoho Mail. The profile image showing for my email address is incorrect — it’s not my image. When I send an email to my Gmail account, it displays someone else’s image. This looks very suspicious and can make
I need access to my old email
I need access to my old email bromzeman@zoho.com to verify it for forwarding. I can’t access the inbox to get the confirmation code. Please assist with recovery or forwarding. as you might already know, they made alot of the email addresses to have that
Set Defaults for Email Groups
Is there a way to set defaults for all of the groups that I establish as a moderator? For example, I want every group I establish to have the following settings: 1. Moderator is <user> 2. User is <user>, <user> 3. Notifications for new group turned
LOGS FOR RECEIVED MAIL ( READ DATE & TIME)
In Zoho mail we can extract the read logs of received mails so that we can see when we have read the mail and at what time & we have read it.
Domain verification probem
Hello, i use a domain from Namecheap with hosting from Cinfu when i try to verify my domain on zoho i get "TXT Verification failure" i even tried the HTML verification and the code appears but also giving me the verification failure error.
Switching to Cloudflare email routing from Zoho Mail
Hello, I'm currently working on migrating from Zoho Mail to Cloudflare's email routing solution. This requires changing MX and TXT records for our custom domain - when we do this, will our users still be able to log into their accounts and access an archived
Un Subscription Button
How can i Add the Un Subscription Button in Zoho mail
Documents unable view and need to downlad
I can't view .doc files in Zoho mail unless I download them, but I can view PDF files without downloading.
we encountered a problem while sending your email. please try again later.
Adding and removing people from groups
We're having problems adding people to a group. Apparently Zoho has one email address and will not recognize a different email address.
MAIL SEARCH IS NOT WORKING
THIS ISSUE HAS BEEN BUGGING ME SINCE MORNING, PLEASE RESOLVE THIS AT THE EARLIEST
URL Parameter on Help Center SIgn in link
Is it possible to add a url parameter to the sign in link on the Help Center?
migrating from HelpScout
I am attempting to import a conversation file from helpscout into desk and am receiving size errors. What is the current file size restriction. Does anyone have any tips for a successful migration?
Layout Rules Don't Apply To Blueprints
Hi Zoho the conditional layout rules for fields and making fields required don't work well with with Blueprints if those same fields are called DURING a Blueprint. Example. I have field A that is used in layout rule. If value of field A is "1" it is supposed to show and make required field B. If the value to field A is "2" it is supposed to show and make required field C. Now I have a Blueprint that says when last stage moves to "Closed," during the transition, the agent must fill out field A. Now
Article Name Sorting in Zoho Desk Knowledge Base (agent / admin side)
Dear Zoho Desk Support, We are writing to request an enhancement to the Knowledge Base management feature within Zoho Desk. Currently, there is no option to sort articles by their name, which significantly hinders efficient article management, especially
How to parse JSON data with SQL in Zoho Analytics?
Hi all, I have a column with JSON data. I want to show this column in a chart, but it is very messy, and no JSON parsing function is supported on Zoho Analytics. data example: {"id": 5, "status": "false", "date": "15/10/22"} what I want to do in SQL is
Add an Equation Field (Or update the Formula Field)
Hi, I would like to be able to have one field as a Text Field with QR Code, and then have multiple Equation/Formula Fields that then take parts of that fields data with LEFT, MID, RIGHT, REGEX, etc. Thanks Dan
How to parse column having JSON data using SQL?
We have a daily sync from a PostgreSQL database that brings data into Zoho Analytics. Some of the columns store raw JSON data. We need to build SQL queries on top to parse data from JSON and store them in discrete columns. There is no option for "Data
Enable report button based on the current user role
Greetings i have a report that contains action buttons, i want these buttons to appear as enabled only when the current logged in user has a certain role, for example only CEO role users will be able to use this button. but when setting the conditions
500 Internal Error In Mail API
I'm getting 500 Internal Error when using mail API. I'm getting this error for this one account, it works fine for other Account IDs which I have in my system.
Zoho live chat widget in React Js
I am trying to test Zoho live chat widget code in react js, below is the sample code void(0)} onClick={()=>window.$zoho.salesiq.floatwindow.visible("show")}>LIVE CHAT
window.$zoho = window.$zoho || {};window.$zoho.salesiq = window.$zoho.salesiq
Are there any plans to add Triggers for Subform edits?
By The Grace of G-D. Hi, How are you? Can you tell me if you have any plans to support subform edit as a workflow trigger? And what about have them trigger an "onChange" client script?
Zoho commerce
i am facing issue with order summary emails.i am getting 1 continuous email for order received yesterday and today.ideally 1 email should be received for a particular date ie for 02/08 i should received 1 email from 12.01am till 11.59pm but it is being
Feature Request: Improve Category Page Sorting for "Out of Stock" Products
Hi there, I'm writing to request a new feature that I believe would significantly improve the user experience in my online store. Currently, on category pages, products are sorted by popularity. However, when a popular product goes "Out of Stock," it
POSTMAN - There was an error in evaluating the Pre-request Script:Error: Cannot read properties of undefined (reading 'json')
I am beginning the journey to learn how to use the API for Zoho Sign. I am getting the following error when I try to use postman. To walk you through how I am getting this error... I wanted to start with a simple GET and expand my learning from there.
How do i integrate shipstation with zoho inventory
Wanting to set up my own delivery driver in ship station so we can get real time tracking of where the package is but then i want it to automatically update zoho inventory packages/shipments how can i do this
Invalid value passed for salesorder_id
Hi, I am using sales return API, details are given below: API: https://inventory.zoho.com/api/v1/salesreturns?organization_id=700571811 Post Json Data: { "salesreturn_number": "", "date": "2020-11-12", "reason": "Testing from API", "line_items": [ { "item_id":
Next Page