Our previous post taught us how Zoho Billing makes life easy for businesses with its automated revenue recognition rule. However, certain businesses have more challenges that an automated system cannot handle, and there are certain situations where automated revenue recognition is not feasible. For example, construction services paid in advance but with uncertain start dates can make the revenue recognition rule look inappropriate. Some manual interventions are needed to handle this scenario.
Manual revenue recognition in Zoho Billing helps you handle these uncertainties. It is used when the timing and amount of revenue cannot be determined accurately through automated rules. This is common in industries such as construction, where project completion is tied to milestones that may occur at irregular intervals.
Example 1:
Imagine a construction firm signs a $50,000 contract to renovate a commercial building. The client pays the entire amount upfront, but the agreement specifies that the revenue will be recognized only as key project stages are completed. Each milestone carries a defined value or percentage of the total contact, say,
Design & Approval Phase: $5000
Demolition & Site Preparation: 30% of the total contract value
Structural & Roofing Work: 40% of the total contract value
Interiors & Handover: 100% of the remaining
Milestone | Recognition | Completion Date | Amount Recognized |
Design & Approval | Fixed Cost | 12/Jan/2025 | $5000 |
Demolition & Site Preparation | 30% of the total contract | 20/Feb/2025 | $15,000 |
Structural & Roofing Work | 40% of the total contract | 25/Apr/2025 | $20,000 |
Interior & Handover | 100% of the balance | 30/Jun/2025 | $10,000 |
Total Revenue Recognized= $50,000 |
The company ensures that its financial statement accurately reflects real project progress by only reporting revenue when each phase is completed, rather than relying on an automated schedule that may not match the actual work done.
If you look at the revenue recognition report, it will show up like this,
i) Recognized Revenue Report
At the end of the project,
Month | Recognized Revenue |
Jan 2025 | $5000 |
Feb 2025 | $15,000 |
Mar 2025 | $0 |
Apr 2025 | $20,000 |
May 2025 | $0 |
Jun 2025 | $10,000 |
Total Recognized | $50,000 |
ii) Deferred Revenue Report
As the project progresses, deferred value gets recognized.
Month | Deferred Revenue |
Jan 2025 | $45,000 |
Feb 2025 | $30,000 |
Mar 2025 | $30,000 |
Apr 2025 | $10,000 |
May 2025 | $10,000 |
Jun 2025 | $0 |
iii) Revenue Waterfall Report
Billing Date | Total Billed | Jan 2025 | Feb 2025 | Mar 2025 | Apr 2025 | May 2025 | Jun 2025 | Recognized Revenue | Deferred Revenue |
Jan 2025 | $50,000 | $5,000 | $15,000 | $0 | $20,000 | $0 | $10,000 | $50,000 | $0 |
The project owner ensures that revenue is recorded accurately only after each milestone is completed, and this is done manually without any specific frequency.
Example 2:
A software consulting firm signs a $120,000 contract to implement an in-house ERP solution with a client. The client pays the amount upfront, but the project involves phases that don't follow uniform timelines/deadlines.
The defined timelines are,
Requirement Analysis & Resource Planning: $10,000
System Customization: 25% of the total contract
Testing & QA: 35% of total contract
Deployment & Support: Remaining contract value
Milestone | Recognition | Completion Date | Amount Recognized |
Requirement Analysis & Planning | Fixed Cost | 15/Jan/2025 | $10,000 |
System Customization | 25% of the contract value | 10/Mar/2025 | $30,000 |
Testing & QA | 35% of the contact value | 25/May/2025 | $42,000 |
Deployment & Support | 100% of the balance | 30/Jul/2025 | $38,000 |
Total Revenue Recognized= $120,000 |
When you look at the revenue recognition report for this software deployment, it will show up as follows,
i) Recognized Revenue Report
At the end of the deployment,
Month | Recognized Revenue |
Jan 2025 | $10,000 |
Feb 2025 | $0 |
Mar 2025 | $30,000 |
Apr 2025 | $0 |
May 2025 | $42,000 |
Jun 2025 | $0 |
Jul 2025 | $38,000 |
Total Recognized | $120,000 |
ii) Deferred Revenue Report
As the development progresses, deferred value gets recognized.
Month | Deferred Revenue |
Jan 2025 | $110,000 |
Feb 2025 | $110,000 |
Mar 2025 | $80,000 |
Apr 2025 | $0 |
May 2025 | $38,000 |
Jun 2025 | $38,000 |
Jul 2025 | $0 |
iii) Revenue Waterfall Report
Billing Date | Total Billed | Jan 2025 | Feb 2025 | Mar 2025 | Apr 2025 | May 2025 | Jun 2025 | Jul 2025 | Recognized Revenue | Deferred Revenue |
Jan 2025 | $120,000 | $10,000 | $0 | $30,000 | $0 | $42,000 | $0 | $38,000 | $120,000 | $0 |
Manual revenue recognition is critical when automated rules don't serve the purpose. As we saw through construction and IT consulting examples, Zoho Billing allows businesses to recognize revenue at the right amount and time, ensuring financial statements remain aligned with real project progress.
While we learn the manual recognition process, we will explore these specific industry types in future posts and provide a detailed walk-through of how these businesses record their earnings.
Our next post will start with the SaaS industry, where revenue recognition follows a very different pattern. Unlike milestone-based revenue recognition, SaaS depends more on a recurring billing cycle.
Stay tuned as we explore revenue recognition for SaaS businesses in a few days.
Recent Topics
Zoho Flow s’enrichit avec les subflows et les actions Webhook
Nous sommes ravis d’annoncer deux ajouts importantsà Zoho Flow : les subflows et les webhooks sortants. Ces nouvelles fonctionnalités ont été conçues pour vous aider à créer des workflows plus facilement et à automatiser davantage de tâches répétitives.
How to assign canvas view for portal user
Hi , as a portal user, I can switch to another canvas view, however, I cannot find any field to configure a default canvas view for portal user. May I ask how to set it up in CRM? And if I can view list by sheet view as a portal user?
Restrict Leave Application Based on Attendance Cycle (24th to 23rd)
Hi Zoho Team, Our organization follows a custom attendance cycle from 24th of the current month to 23rd of the next month. I would like to configure the system so that: Employees should not be able to apply backdated leave for any date after the attendance
How do I assign a parent to an existing campaign?
I created a campaign but now I'd like to make that existing campaign a child of another. How can I do this?
Categorize Tickets Through The App
I used to be able to categorize and assign tickets through the app without any issues. However, for the past year, whenever I try to edit a ticket, select a category, and click save, it doesn’t actually save the changes. As a result, I haven’t been able
Can't add picture to email template. Says I'm over the character limit.
I tried creating an email template with a picture and it says I'm over the character limit. The picture is pretty small. What can I do?
Allow breakdown of per diem for meals provided
Would it be possible to break the per diem down into what you get for each meal. The reason for this is we want to offer per diem but if a meal is provided by a customer or sales we need to remove this from the per diem bucket for that day. We break down
Automatically moving Leads into their corresponding buckets
Hi, I have developed a lead pipeline and created different cadences for various lead segments. After enrolling leads into their respective cadences, each lead goes through a series of follow-ups (in my case, three emails). If a lead does not respond after
Tracking Email Template usage
I'd like to be able to track how many times agents/users send an email from Templates. This is so we can track their activity in relation to Campaigns in CRM. Thanks
Get employee id of authenticated user via API
Hi, For adding timetracking records an employee id is required. Is there an API Route available to get the employee ID of the current authenticated user? or something like /users/me Currently using https://people.zoho.com/people/api/forms/employee/getRecords
Zoho Social API for generating draft posts from a third-party app ?
Hello everyone, I hope you are all well. I have a question regarding Zoho Social. I am developing an application that generates social media posts, and I would like to be able to incorporate a feature that allows saving these posts as drafts in Zoho Social.
Collect in-app feedback with richer context and granular insights
Hello, Apptics community! From GenAI chatbots to one-tap checkouts, user experience standards keep rising—yet 96% of unhappy users never explain what went wrong; they simply leave. Introducing in-app feedback 2.0 banner In-app feedback 2.0 is here to
Temporary restiction
My account says You have been temporarily restricted from publishing jobs from Zoho Recruit.Click here to request a one-time approval to publish your jobs and when I go to click it shows error. Kindly assist.
Help with Quote template for peer review
We are wanting to do peer review of quotes/proposals, however the quote templates dont have product cost, profit margins, etc. It is difficult for a manager to approve a quote without ensuring nothing is going out at improper margins, etc. I have not
India Tech Support
Is there no phone tech support number for India? And no chat facility either?
How many AR fields We can add in a form?
I want to add at least 10-15 AR fields in a form. I just want to know is there any limit on the AR fields or do I need to pay extra money for using 10-15 AR fields. Thanks in advance.
Agent working hours
Hi, I know it is possible to set company business hours but is it possible so that agents can have different ones? I.e. some agents cover later hours on specific weeks - can these be set so those agents that are "working" get notified about tickets etc.
Disallow CLOSE if tags field is empty
I want to introduce a mandatory condition that NEW tickets (not prior closed tickets) cannot enter the CLOSED state without first having an entry in the tags field. Is there a way I can do this?
Central de Ajuda - Restringir visualização de tickets
Estou tentando configurar o Zoho Desk para que determinados usuários dentro de uma mesma conta consigam visualizar apenas os tickets criados por usuários específicos dessa conta — e não todos os tickets ou apenas os seus próprios. Até onde sei, existe
Business Hours with lunch break
Our business hours are: mon - fri 08:30 - 13:00, 15:00 - 18:30. How can I handle the lunch break? If I use 8:30 - 18:30 it obviously breaks SLA. Thanks
Default/Private Departments in Zoho Desk
1) How does one configure a department to be private? 2) Also, how does one change the default department? 1) On the list of my company's Zoho Departments, I see that we have a default department, but I am unable to choose which department should be default. 2) From the Zoho documentation I see that in order to create a private department, one should uncheck "Display in customer portal" on the Add Department screen. However, is there a way to change this setting after the department has been created?
Ask the Experts 21: Power up your support game with Zoho Desk Automation
" In every business, there are tasks to automate, Zoho Desk helps with features that integrate Assignments to manage tickets and teams to align,Macros for quick actions and workflows to streamline Contracts and schedules to hold things tight, Plans run
If leads are assigned to a person before 4:00 PM and the stage is "Fresh Lead", then an email should be triggered at 4:00 PM to all assigned users. If leads are assigned after 4:00 PM and the stage is
If leads are assigned to a person before 4:00 PM and the stage is "Fresh Lead", then an email should be triggered at 4:00 PM to all assigned users. If leads are assigned after 4:00 PM and the stage is "Fresh Lead", then the email should be triggered the
Multiselect lookup in subform
It would be SO SO useful if subforms could support a multiselect look up field! Is this in the works??
Tasks as calendar events? What about a way to verify a meeting actually happened?
I'm not sure how to best ask this, but i'm looking to add some guard-rails into zoho for the end-user. However for guardrails to be effective they can't really add extra steps for the end-user. i.e. every step that's added for the user, is another place
Attachments should sync between Zoho Finance in CRM and Zoho Books
It would EXTREMELY helpful and practical if the attachments added to an invoice via Zoho Finance in CRM synced with the invoice updates in Zoho Books. Currently, attachments to an invoice updated in CRM DO NOT appear as attachments when viewing the same
Introducing a new home page view and UI enhancements for Dashboards
Hello everyone, In CRM, the home pages provide a quick view of the various happenings in a business with the help of dashboards. The home pages also help to organize one's and the team's day's work. There are three views in the home tab: Classic User's
Translation support expanded for Modules, Subforms and Related Lists
Hello Everyone! The translation feature enables organizations to translate certain values in their CRM interface into different languages. Previously, the only values that could be translated were picklist values and field names. However, we have extended
Call result pop up on call when call ends
I’d like to be able to create a pop up that appears after a call has finished that allows me to select the Call Result. I'm using RingCentral. I have seen from a previous, now locked, thread on Zoho Cares that this capability has been implemented, but
Data Template Amending
Hi, is it possible to remove data templates once you have applied them in Workdrive? Also, once I have added a new field to a data template can I mass update multiple files who have already been allocated that template and amend just that one added
Zoho Flow y subformularios de Zoho CRM
Buenas tardes, En mi empresa vamos a empezar a usar los subformularios de zoho crm pero estos los voy a tener que rellenar con zoho flow ya que va a ser el encargado de rellenar dichos campos del subformulario. El problema es que a la hora de intentar
Recurring Invoices
We are looking at moving our invoices to ZOHO Billing, I have started the trial period and like that I can et up for four different companies. The one feature we need which is mentioned in the documentation is Recurring Invoices so we can send our Rent
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
Zoho Projects App update: Arabic and Hebrew language support
Hello everyone! In the latest version(v3.10) of the Zoho Projects iOS app update, we have brought in support to access the app in RTL(Right to Left) languages (Arabic and Hebrew). Note: RTL is yet to be supported on the Calendar and Gantt charts modules
I want to cancel @mention group in the notes in Zoho CRM
Hi Everybody, I want to prevent people from mentioning a specific group in notes in Zoho CRM. We have one group called Team Sales, and although we've asked users not to mention groups, they still mention the group name. My workaround is to change the
Kaizen #193: Creating different fields in Zoho CRM through API
🎊 Nearing 200th Kaizen Post – We want to hear from you! Do you have any questions, suggestions, or topics you would like us to cover in future posts? Your insights and suggestions help us shape future content and make this series better for everyone.
How to install node packages in Zoho Creator cloud functions
I wanted to create some functions which requires node packages like axios, fetch, multer etc., How and where can i install the node packages in Zoho creator to use it in Zoho creator Nodejs function.
Session "Ask Me Anything" Zoho France - Le 26 Juin 2025 14h à 17h (en Français
Chers Utilisateurs, Vous cherchez à mieux comprendre Zoho CRM ou Zoho Desk ? Nos experts seront disponibles pour répondre à toutes vos questions lors de notre session Ask Me Anything. Rejoignez-nous ici pour en discuter en ligne. Pendant trois heures,
Option to Crop Existing Agent Image in Zoho One Directory
Hello Zoho Team, We hope you're all doing well. We would like to request a small but useful enhancement to the Zoho One Directory. 🎯 Current Limitation At present, the system allows cropping an agent image only during the initial upload of an agent's
Introducing Sub-Accounts in Zoho Books!
Hello Everyone, Sub-Accounts is LIVE! Yes, you read it right. The much needed and most requested feature is now live in Zoho Books. The sub-accounts feature in Zoho Books will help you to classify your accounts further which will give you a more detailed view of your accounts while running reports. You can create sub-accounts for the below Accounts: Asset Cost of Goods Sold Expense Liability Fixed Asset Other Asset Other Current Asset Long Term Liability Other Current Liability Other Liability Other
Next Page