Earning revenue isn't just about collecting cash from your customers. It's about recording the income correctly and consistently. Revenue recognition is the process of deciding when and how to record revenue in financial statements so that they reflect the true value after the goods or services are delivered.
Today's business models are more dynamic than ever. Subscriptions, long-term projects, bundled products, and usage-based pricing make it challenging to determine when a sale is truly earned.
We will be going through a series of posts on Revenue Recognition and how it works with different industries, starting with,
➤ What is revenue recognition?
➤ What are the principles behind the standards?
What is Revenue Recognition?
Revenue Recognition is an accounting principle that defines when and how businesses can record revenue in their books. It ensures revenue is reported only when the company has delivered the promised goods or service, not simply when a payment is received.
For instance, if a customer pays upfront for 12 months of service, the business cannot recognize all of that money immediately. It must recognize it gradually over the period the service is delivered.
To address these challenges, Accounting standards like IFRS 15 and ASC 606 were introduced.
What Do IFRS 15 & ASC 606 Say?
Both IFRS 15 & ASC 606 are closely aligned. They denote that companies must recognize revenue when they satisfy their performance obligation, that is, when they deliver the promised goods or services fully to the customer.
The core principle is:
"Recognize revenue to depict the transfer of promised goods or services to the customer in an amount that reflects the consideration to which the entity expects to be entitled."
To make this consistent across industries, these standards use a five-step model.
This model helps businesses recognize revenue accurately by following a structured process. Each step ensures that income is recorded only when a company truly earns it by delivering the promise.
Steps | Description | Example |
Step 1: Identify the Contract with a Customer | Confirm there is a legal, enforceable agreement with clear payment terms and obligations. | A software company signs a 12-month service contract with a client with proper terms and a clear payment schedule. |
Step 2: Identify the Performance Obligations | Break the contract into separate performance obligations that provide unique values. | Contract includes access to software, onboarding support, and monthly training. These are distinct services and are treated separately. |
Step 3: Determine the Transaction Price | Calculate the total expected payment, including any discount, bonus, or other variables. | The total contract worth is $12,000, but the customer gets a discount of $1000 for an annual payment upfront. The transaction price becomes $11,000 in this case. |
Step 4: Allocate the Transaction Price to the Obligation | Distribute the transaction pricing across the performance obligation based on their standalone selling prices. | If software is usually sold for $9,000, support for $1500 and training for $1500, the $11,000 will be proportionally allocated to each of these. |
Step 5: Recognize Revenue When (or As) Obligations Are Satisfied | Revenue is recorded either over time or at a point when the customer gains complete control of the product or service. | In case of software licensing and implementation, the revenue is recognized monthly over 12 months, but the onboarding is recognized as and when it's delivered.
|
This single contract shows how IFRS 15/ASC 606 helps businesses handle complexity like discounts, variable consideration, multiple deliverables and other aspects in recognizing revenue.
Ultimately, these standards require companies to:
- Recognize revenue only when the performance obligation is met.
- While selling services and goods together, consider them as individual deliverables.
- Allocate the total contract value fairly across all deliverables.
- Adjust discounts, bonuses, and other variable pricing.
- Provide an audit-ready document for how and when revenue is recognized.
The bottom line of revenue recognition is straightforward. But while computing, it doesn't look the same when you are dealing with different billing models and while handling hundreds of contracts/transactions.
Recent Topics
Dashboards for Customers
Is it possible to build dashboards for each customers in the community for their tickets?
Feature Request - Dedicated "Avail" action for Restricted Holidays (instead of routing through Apply Leave)
Currently, Restricted Holidays in Zoho People are handled through the Leave module. Employees have to go through Apply Leave and select the Restricted Holiday as a Leave Type in order to avail it. From an HR perspective, a Restricted Holiday isn't really
Deleting invoice (not syncing with Xero)
If I delete an invoice or Bill in Zoho Inventory, it doesn't sync with Xero. So my Xero accounts are not correct. Whats the point of being able to delete a transaction in Zoho if it doesn't sync to my accounting package? How can I do this?
Allow Clients to choose which meeting platform works best for them
Hi! I have a feature request for Zoho Bookings! I currently have multiple online meeting platforms connected to Zoho Bookings: Zoho Meeting, Zoom Meetings and Teams Meetings. Since we are allowed to connect multiple meeting platforms, it would only make
Implement Meeting Polls in Zoho Bookings
Dear Zoho Bookings Support Team, We'd like to propose a feature enhancement related to appointment scheduling within Zoho Bookings. Current Functionality: Zoho Bookings excels at streamlining individual appointment scheduling. Users can set availability
Previewing attachments in email composer (Zoho CRM)
When I am sending an email from a contact's record, when I am in the compose email screen, if I add an attachment to the email, I cannot then click on the attachment to view it to see if it is in fact the correct attachment before sending. In Outlook
Zoho Lens Feature Update: September 2026
RealWear store support Zoho Lens is now listed on the RealWear marketplace, paving the way for quick and easy deployments. Install it straight to your smart glasses from the marketplace without any cables, pendrives, or manual transfers.
How are you using AI task management tools in your team
AI is becoming more useful when it can do more than suggest tasks. Having AI agents help with task updates, follow-ups, and repetitive project work could make day-to-day collaboration much smoother. I recently came across Sharkly.ai, which focuses on
Introducing Incentives for Zoho CRM: Build, automate, and track sales commissions
Dear Customers, We are here with an amazing news! We built a direct solution to help manage your commission provisioning activity in your business. From creating commission plans to issuing payouts, this application leverages your sales reps’ performance
Can Zoho Mail Be Used with Google Workspace Without Migrating Emails?
Hello Zoho Community, We currently use Google Workspace for our company emails and do not want to migrate our email accounts or data to Zoho Mail. However, we would like to use Zoho Mail as an email client, similar to Microsoft Outlook, by connecting
Topic assignment to a contact list never completes in Zoho Campaigns
Hello, I am experiencing an issue in Zoho Campaigns when trying to assign a Topic to a contact list. When I select a list and try to assign a Topic, Zoho displays the following message: “This process will take a few minutes. You will receive an email
Subforms and automation
If a user updates a field how do we create an automation etc. We have a field for returned parts and i want to get an email when that field is ticked. How please as Zoho tells me no automation on subforms. The Reason- Why having waited for ever for FSM
[ZohoDesk] Improve Status View with a new editeble kanban view
A kanban view with more information about the ticket and the contact who created the ticket would be valueble. I would like to edit the fields with the ones i like to see at one glance. Like in CRM where you can edit the canvas view, i would like to edit
Automating CRM backup storage?
Hi there, We've recently set up automatic backups for our Zoho CRM account. We were hoping that the backup functionality would not require any manual work on our end, but it seems that we are always required to download the backups ourselves, store them,
Zoho Assist Feature Update: September 2026
Custom View Filters in Scheduled Reports Scheduled Custom Reports now support saved Views. Select a View when setting up your schedule, and only the data matching its filter criteria will be delivered to recipients in each email. Without a selected View,
Tip #89 – Access, print, and manage remote files from your local printer with Remote Printing – 'Insider Insights'
A team member working from home urgently needs a document that's sitting on the office system. The office is locked and nobody is around to access it. Emailing the file means routing a sensitive document through external channels, and that's not something
Important: Teamwork Projects Integration Moving to API v3
Hello Teamwork Project users, We are migrating the Teamwork Projects integration from the legacy V1 API to V3 API. This upgrade enables support for custom fields from Teamwork Projects, allowing users to import custom modules and fields into Zoho Analytics
Introducing Night Mode for Zoho Recruit [BETA]
Late-night hiring sessions? Long hours reviewing resumes? We heard you. Night mode [BETA] is now available in Zoho Recruit, giving you a cleaner, more comfortable workspace that’s easier on the eyes while keeping the focus on what matters most: hiring.
Sent Items folders not syncing on Thunderbird
HI, I run TB on multiple devices, since the middle of September all the devices have stopped synchronising the sent items folders, all mail is received and sent correctly and stored in my zoho webfolders. I haven't changed any of the settings. Any ideas? This is also the case in my 'paid for' accounts with ZOHO and Thunderbird Many thanks Tony whittingham
Thunderbird not retrieving Mail automatically
Hi, I have set up Zoho in Thunderbird all fine, the only problem is that the mails are not coming to Thunderbird automatically, they only come when I initially start up Thunderbird, any ideas for a fix on this cheers
Free Webinar Alert! Don’t take the bait: Everyday email safety in Zoho Mail
Hello Zoho Community! Think you can spot a suspicious email before it catches you off guard? Join our upcoming webinar, “Don’t take the bait: Everyday email safety in Zoho Mail,” and learn how to recognize common email threats and build safer habits for
Do you know which 20% of your products generate 80% of your revenue?
Not all products earn their place in your inventory. In almost every catalog, a small group of items drives most of the revenue, while a long tail quietly ties up storage, counting effort, and working capital. The trouble is, most teams treat every SKU
How can we allocate incoming PO stock to Sales Orders, and does Backorder automatically reserve it upon receipt?
Hello Everyone, We want to allocate incoming Purchase Order quantities to specific Sales Orders before the stock arrives. For example, from an existing PO of 100 pieces: 40 pieces assigned to SO-A. 35 pieces assigned to SO-B. 25 pieces left unallocated.
Convert an Existing Single Item into an Item with Variants
Hello Zoho Team, Introducing variants is a great addition to Zoho Inventory. However, we would like to request an option to convert an existing single item into an item with variants. For example, Item A initially comes in only one colour, so we create
inventory removal at packing list or shipment.
currently our system is set to remove inventory at invoice. This is creating an inventory nightmare? Is it possible to change the settings to remove the item from inventory at either the packing slip stage or shipping the item.
Delug script
I have been looking at auto-update a amount (home currency) field from another module. Zoho native multicurrency was used in the other module (we have 4 here). Custom script was input with no error, but the field was not updated on trigger. Script as
Zoho Desk API modifiedTimeRange returns HTTP 500 around 2026-03-08T02:00:00.000Z
Hello Zoho Support Team, We are experiencing a reproducible HTTP 500 Internal Server Error when querying the Zoho Desk API search endpoint with a specific modifiedTimeRange boundary. ### API Endpoint GET /api/v1/tickets/search ### Reproduction Steps &
Allow Email Attachments to Be Opened Directly in Zoho CRM
Hi all, It would be very helpful if attachments linked to an email in Zoho CRM could be clicked and opened directly from the email preview. Currently, the attachment names are displayed, but the experience of viewing them is unnecessarily limited. Users
GEO and Zoho Desk
Has anyone done anything with GEO (generative engine optimization) and zoho desk KB? Are there any plans from Zoho on adding the ability in inject GEO scripts in KB Articles?
How to add custom lookup-type field to meeting module form in Zoho CRM
We need to have a lookup field to a custom module's record in Zoho CRM. But it appears that look-up fields are not enabled in Meetings/Events module in Zoho CRM. How do I design/implement a custom look-up type field that will lookup records from custom
AI-Powered Automation for Repetitive Tasks
Incorporating AI into Zoho People can streamline and automate repetitive administrative tasks, boosting productivity and efficiency. Automate Data Entry: Use AI to auto-capture and input data from emails and forms, reducing errors. Schedule Management:
Rotate an Image in Workdrive Image Editor
I don't know if I'm just missing something, but my team needs a way to rotate images in Workdrive and save them at that new orientation. For example one of our ground crew members will take photos of job sites vertically (9:16) on his phone and upload
[IDEA] Bring Layout - Conditional Rules and Client Scripts to Zoho Books
The problem We run Zoho Books with two e-invoicing integrations: myData (Greek tax authority, AADE) and PEPPOL (EU e-invoicing). Between the two, our Invoice form carries a large number of custom fields — document type codes, VAT exemption categories,
Last four Digit field in Zoho Payment Received
One of our client's payment received doc has Notes, Last four digit and Transaction ID fields set, I couldn't find api parameter for these fields in the documentation... when I checked the site, it's not custom fields as well. where do i find it, any
Automatically remove commas
Team, Please be consistent in Zoho Books. In Payments, you have commas here: But when we copy and paste the amount in the Payments Made field, it does not accept it because the default setting is no commas. Please have Zoho Books remove commas autom
Show my cost or profit while creating estimate
Hi, While creating estimate it becomes very important to know exact profit or purchased price of the products at one side just for our reference so we can decide whether we can offer better disc or not .
Cash Flow Forecast Dashboard in Zoho Reports
I am exploring the capabilities of Zoho Reports and created a simplified Cash Flow Dashboard - http://db.zoho.com/ZDBDataSheetView.cc?DBID=97137000000016024 This is just a sample of the useful financial information for small businesses that can be created with this powerful business intelligence tool from Zoho.
Admin Logging in as another User
How can a Super Admin login as another user. For example, I have a sales rep that is having issues with their Accounts and I want to view their Zoho Account with out having to do a GTM and sharing screens. Latest Update (27th April 2026): With the early
Zoho CRM Layout Rules: Nine New Actions, Profile-Based Execution, and Interactive Preview
Hello everyone, Availability: This feature is now available for all users. We’re excited to announce powerful new enhancements to Layout Rules in Zoho CRM - a feature built to guide our teams through form-filling by showing the right information to the
Lookups and Custom Modules
I created a Custom Module that I'm calling "Item Purchasing Group". This module will store information for groups of Items that must be purchased together (including minimum overall quantities and/or values, etc.). This will have a one-to-many relationship
Next Page