Revenue Management: #4 What if there are uncertainties in project or service delivery?

Revenue Management: #4 What if there are uncertainties in project or service delivery?

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. 
    • 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

    • Ticket layout based on field or contact

      Hi! I want to support the following use-case: we are delivering custom IT solutions to different accounts we have, thus our ticket layouts, fields and languages (priority, status field values should be Hungarian) will be different. How should I setup
    • No funcionan correctamente el calculo de las horas laborales para informe de tickets

      Hola, estoy intentando sacar estadísticas de tiempo de primera respuesta y resolución en horario laboral de mis tickets, pero el calculo de horas en horario laboral no funciona correctamente cree los horarios con los feriados : Ajusté los acuerdos de
    • Zoho Mail Android app update: Set out of office response exclusively for organization members and external users, response interval

      Hello everyone! We have now introduced an option to configure out of office messages exclusively for organization members and external users within the Zoho Mail app. Additionally, now you can also customize response intervals for the Out of office messages.
    • Feature Request: Detailed View - Related Block Links!

      Desperately need a view record link option on records displaying in the related blocks on a Detail View. For the love of god, please add this feature. Thank you!
    • Sub-Form Padding in CSV Export

      Hi, When you use the Sub-Form, and for example you have a Date Field on the Main Page, then Option 1 and Option 2 fields on the Subform, when you export this to CSV the Date column will only have the Date in 1 row, the first row, it would be nice to pad
    • Dependent / Dynamic DropDown in ZohoSheets

      Has anyone figured out a way to create a Dropdown, the values of which is dependent on Values entered in the other cell ?
    • How do I change the order of fields in the new Task screen?

      I have gone into the Task module layout, and moving the fields around does not seem to move them in the Create Task screen. Screenshot below. I have a field (Description) that we want to use frequently, but it is inconveniently placed within the More
    • Zoho → ShipStation Integration – Sales Order–Driven Fulfilment Workflow

      Hello All, I’m reaching out to explore the best way to integrate a shipping tool into our inventory which will speed our process up. We are looking to integrate ShipStation into our existing order-to-fulfilment workflow, as we’re keen to standardise on
    • IA ou je peux trouver comment utiliser IA

      Je voudrais utiliser IA dans l'interface zoho pour m'aider quand j'ai des questions de rôle partage ou autre configuration d'automatisation, j'utiliser ChatGPT externe mais il ne connait pas toujours l'interface zoho et les réponses sont parfois longue
    • Data Processing Basis

      Hi, Is there a way to automate the data processing for a candidate every time an application arrives from job boards, without requiring manual intervention? That is, to automatically acquire consent for data processing. I've seen a workflow that allows
    • Disable Zoho Inventory Tracking / Delink Zoho Books & Inventory

      We have integrated zoho inventory with zoho books? Now after a long time, we want to disable inventory tracking and delink these 2 modules. Zoho says we cant do it. Anybody else going thru the same ? Any possibility at all? Why does zoho not allow to
    • Zoho vault instal on windows

      I am trying to use Zoho Vault Desktop for Windows, but I am unable to complete the sign-in process. Problem description After logging in to my Zoho account and clicking Accept on the authorization page, nothing happens. The application does not proceed
    • ZOHO GLITCHES

      Ok, you guys have done a great job at building a platform that has the potential to surmount the competition but these glitches are becoming more than frustrating! This is beyond annoying, I'm trying draft lawsuits and type up privacy and refund policies
    • Notification to customers when I use a Zoho function

      Hi all, I tried searching the community but couldn't find anything about it. I noticed that the customer receives the notification of reopening the old ticket but does not receive the notification of opening a new ticket when I use the function: "separate
    • Date Filters in Zoho Desk Dashboard

      Hello Team, Currently, in the Zoho Desk dashboard, the date filter is available only for daily, weekly, and monthly views. Could we also add a yearly date filter to allow filtering by an entire year? Additionally, in the custom date filter, it is currently
    • Mobile app - offline

      If I made a couple of forms and my field guys had the mobile app and were somewhere without signal, could they open the app, complete and sumbit a form and have it upload when they are back in signal (we need different info at different jobs and I'm trying
    • Zoho Survey reminder settings are extremely confusing

      Hi, I just want to set 3 reminders, one week apart from the first email out. Your form is too confusing and I don't understand. Can you simplify and be more specific regarding the language used on the form ?
    • Zobot drop down list

      Hi, I am trying to create a drop down list in Zobot by creating a plug. I think I am close but I just can't get it over the line and was hoping that someone could help me. I had a little bit of help getting the script started (hence the comments) // Deluge
    • How to compare a subform lookup field that allows multiple entries when edited

      I have a form with a subform with multiple fields. One of the fields is a lookup field that allows a multi select. On edit validation, I want a workflow to execute only when the entries in that subform field has changed. The old. function is not working
    • Translation of Tooltip Messages

      The descriptive help messages should be available to provide translations for.
    • Business Day Logic Update: More Accurate Scheduling for Your Workflows

      Hello everyone, We’re improving how business-day calculations work in workflows, especially when triggers happen on weekends. This update ensures that offsets like +0, +1, and +2 business days behave exactly as intended, giving you clearer and more predictable
    • Lead Blueprint transition in custom list view

      Hi, Is It possible to insert the Blueprint transition label in a custom Canvas list view? I am using Lead module. I see the status, but it would be great if our users could execute the Blueprint right from the list view without having to enter the detailed
    • Email Notifications not pushing through

      Hi, Notifications from CRM are not reaching my users as they trigger.  We have several workflow triggers set up that send emails to staff as well as the notifications users get when a task is created for them or a user is tagged in the notes.  For the past 6 days these haven't been coming through in real time, instead users are receiving 30-40 notifications in one push several hours later.  This is beginning to impact our daily usage of CRM and is having a negative effect on our productivity because
    • Debit opening balances of vendors

      Dear colleagues: I am looking at the trial balance as on 31st March 2024, and punching opening balances (1st April 2024) in Zoho Books. Vendors have credit balances, by its nature, but some of our vendors have debit balances as well (e.g., we have paid
    • Is there an equivalent to the radius search in RECRUIT available in the CRM

      We have a need to find all Leads and/or Contacts within a given radius of a given location (most likely postcode) but also possibly an address. I was wondering whether anyone has found a way to achieve this in the CRM much as the radius search in RECRUIT
    • Allow Text within a Formula

      Hi, I would like to be able to use this for others things like taking an existing Date Field and copying its value, so by entering getDay(Date)&"-"&getMonth(Date)&"-"&getYear(Date) it results in 01-02-2026. And then when the Date is changed so is this
    • Change Number Field to Decimal Field

      Hi, It would be nice to be able to change the field type without having to delete it and create a new one, messing up the database and history. Thanks Dan
    • Pipeline.Company Name field shows up as numbers! [Bigin Developer Console > Component > URL]

      Hi there, I am setting up to invoke URL to send infromation zoho bigin > zoho forms with company name pre-fill in the form. however when I use : ${Pipelines.Company Name} field it shows up as a string of number instead of words. Help.
    • Add specific field value to URL

      Hi Everyone. I have the following code which is set to run from a subform when the user selects a value from a lookup field "Plant_Key" the URL opens a report but i want the report to be filtered on the matching field/value. so in the report there is
    • How to Move Behavior, Acquisition, Polls & Forms Data from Zoho PageSense to Zoho Analytics?

      Hi Zoho Community, I'm looking for a way to transfer data from Zoho PageSense to Zoho Analytics, specifically: Behavioral data (clicks, scrolls, heatmaps, etc.) Acquisition data (traffic sources, campaigns, etc.) Polls and forms data As far as I can tell:
    • Zoho Social - Feature Request - Non-US Date Format

      Hi Social Team, I have noticed that there is no option to change the date format from US mm/dd/yyyy to others like dd/mm/yyyy. It would be great to see this added as the platform matures. Thanks for considering this feedback.
    • In arattai received message can't be deleted

      The issue has been noticed in following: arattai app (Android) arattai app (Window) arattai web While the message posted by me may be deleted, the ones received from others can't be. The item <Delete> change to <Report> when the message is a received
    • Zoho CRM Community Digest - December 2025 | Part 1

      Hello Everyone! In the first half of December, Zoho CRM rolled out auto-invite for portals, smarter CPQ with Zia suggestions and price rules, and Query Workbench for faster query building. We also highlight other noteworthy conversations you shouldn’t
    • Zoho Flow Credits

      Hi , I would like to ask the reason why every time I added plus credit but few days later I will return back to default? (as below I add credit to 3000 but today It change back to 1000) Most important is, when the credit fully used, not any reminder to
    • Custom Module Send Email not filling To automatically after adding Email field also

      I create custom module in zohoCRM but problem is in custom module when i click send email there in popup To is filling automatic its coming empty which i need to manually add an email there. How can I fix it? I already added the Email field there, but
    • Introducing Intake Forms

      We are excited to announce the release of Intake Forms, a new feature in Zoho Contracts designed to make contract requests simple, structured, and efficient. Intake Forms allow organization members to request new contracts through a web form instead of
    • Manage control over Microsoft Office 365 integrations with profile-based sync permissions

      Greetings all, Previously, all users in Zoho CRM had access to enable Microsoft integrations (Calendar, Contacts, and Tasks) in their accounts, regardless of their profile type. Users with administrator profiles can now manage profile-based permissions
    • eIDAS 2.0: What's changed for digital trust in Europe, and where Zoho Sign stands

      Hi there! It's that time of year when many of us get our ducks in a row. A new year often makes us reassess priorities, and for businesses in the EU, it means taking a closer look at how digital identities and electronic signatures work across borders,
    • Directly Edit, Filter, and Sort Subforms on the Details Page

      Hello everyone, As you know, subforms allow you to associate multiple line items with a single record, greatly enhancing your data organization. For example, a sales order subform neatly lists all products, their quantities, amounts, and other relevant
    • Add Israel & Jewish Holidays to Zoho People Holidays Gallery

      Greetings, We hope you are doing well. This feature request is related to Zoho People - please don't move it to zoho one! We are writing to request an enhancement to the Holidays Gallery in Zoho People. Currently, there are several holidays available,
    • Next Page