Revenue Management: #7 Revenue Recognition in Construction & Real Estate Industry

Revenue Management: #7 Revenue Recognition in Construction & Real Estate Industry

If you are in the construction or real estate business, you are used to long project timelines and progressive invoicing to keep up with your billing. But when does revenue get recognized? Will it happen when the contract gets signed? At different milestones or only at the end of the project? Each phase has its own pace, and the revenue needs to be tracked carefully throughout the end.


How do long-term projects and contract-driven businesses recognize revenue?   

Revenue Recognition Scenario in Construction & Real Estate

With long-term projects and multiple deliverables in place, construction and real estate businesses often stretch the process across months or even years. Revenue recognition in these industries is less about timing and more about progress.


Long-Term, Multi-Phase Projects

Construction projects often span many months or years. Recognizing revenue based solely on billing milestones (say 30% upfront, 40% midway, and 30% on completion) doesn't reflect the actual progress or value delivered. Companies must track and report revenue based on performance progress, not payment terms.


Example: $5,00,000 real estate development, $1,00,000 recognized after land acquisition, $2,00,000 during construction in progress and remaining during handover.

Percentage of Completion Method

This industry often uses the percentage of completion method, where revenue is recognized based on the cost incurred or work completed relative to the entire project. Misjudging this percentage can result in misstated finances.


Example: For a $1 million project, if 40% of the work is completed, $4,00,000 is recognized regardless of its payment terms.

Retainage Clauses

In construction, it's common for clients to withhold a portion of the contract until completion. Although the work is completed, the revenue may remain deferred depending on the contract terms.

Example: 10% of the $2,00,000 contract is retained as a deposit. That is, $20,000 will be kept as deferred revenue until completion.

Change Orders and Delayed Delivery

Projects might include design, foundation, electrical, plumbing, and landscaping. Each component might have a separate delivery schedule and must be tracked as a performance obligation. When the scope changes during the progress, companies must reassess the total contract value and the revenue allocation accordingly. On the other hand, if the project execution is postponed, all the revenue earned will remain deferred even if an upfront payment was made.


Example: If a client makes a $5,00,000 upfront payment but the work is delayed, the entire amount will stay in deferred revenue until the obligations are fulfilled.

Proper recognition in this space depends more on accurately tracking project progress and billing terms. It's hard for any business to track all these manually, as any deviation in this might lead to the risk of under- or over-recognition. Sometimes, automated recognition rules may not fit a construction contract, specifically when project timelines are uncertain, milestones don't follow a uniform schedule, or the scope frequently changes.

Businesses may prefer manual revenue recognition to mitigate the risk of miscalculation or inappropriate revenue recognition. This ensures revenue is recorded only when specific deliverables are actually completed.


Info

Scenario:

A construction company signs a $600,000 contract to build a commercial warehouse. The client pays the full payment upfront, but the contract specifies that revenue will only be recognized at key stages of the project completion and not based on the period.

Project stages are defined as:

  •  Site Preparation & Foundation: $100,000

  • Structural Framework: 30% of contract value

  • Roofing & Utilities Installations: 40% of the contract value

  • Interior Finishing & Handover over: Remaining balance


Revenue Recognition with Zoho Billing

Zoho Billing enables businesses like the one above to create flexible revenue recognition rules tied to the project progress and with several deliverables.


Companies rely on manual revenue recognition in most construction projects because project timelines and deliverables are often unpredictable. Manual recognition ensures revenue is recorded only when specific milestones are completed. Automated rules like the percentage of completed or scheduled milestones can still be configured where timelines are more predictable, but manual recognition remains the default approach in this industry. In such cases, rules don't need to be pre-configured; the revenue is recognized manually when the milestone is completed.

Reports in Zoho Billing

At the end of the project, recognition happens only at milestone completions based on the manual entry made by the project management team.


Recognised Revenue Report: 

Phases

Completion Date

Recognized Revenue

Site Preparation & Foundation

15/Jan/2025

$100,000

Structural Framework

10/Mar/2025

$180,000

Roofing & Utilities Installation

25/May/2025

$240,000

Interior Completion & Handover

30/Jul/2025

$80,000

Total Recognized

 

$600,000

 


Deferred Revenue Report: 

Month

Deferred Amount

Jan 2025

$500,000

Feb 2025

$500,000

Mar 2025

$320,000

Apr 2025

$320,000

May 2025

$80,000

Jun 2025

$80,000

Jul 2025

$0

 


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

$600,000

$100,000

$0

$180,000

$0

$240,000

$0

$80,000

$600,000

$0

 


Zoho Billing can efficiently handle change orders, as revenue is recognized manually (Manual Recognition Method). It also allows contract amendments and dynamic revenue reallocation based on project alignment.

Idea

Best Practices for Construction & Real Estate Firms' Revenue Recognition

  • Break Down Phases as Obligations: Identify architecture and construction as distinct deliverable components.
  • Use Percentage of Completion Metrics: Set the base recognition based on cost or time progress, not on the invoicing period.
  • Handle Change Orders: Adjust the revenue schedule dynamically when the scope of the project changes. 
    • 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

    • Feature Request Improve parent-child relationship visibility

      Hi team, The Parent-Child ticket feature is great, but I've struggled to see the relationship between tickets when using ticket list views. It would be a great quality of life enhancement for users if child tickets were nested under parent tickets in
    • Displaying only unread tickets in ticket view

      Hello, I was wondering if someone might be able to help me with this one. We use filters to display our ticket list, typically using a saved filter which displays the tickets which are overdue or due today. What I'd really like is another filter that
    • Is there provision to charge the attendees to join the webinar?

      We want to host some webinar of public interest and want to charge them to participate in this. Does this feature in-build in the application? Offcourse, we will be having Razor pay account activated for these purpose.
    • Pricelists

      So we have them in books but I cannot find them in commerce?
    • Desktop app doesn't support notecards created on Android

      Hi, Does anybody have same problem? Some of last notecards created on Android app (v. 6.6) doesn't show in desktop app (v. 3.5.5). I see these note cards but whith they appear with exclamation mark in yellow triangle (see screenshot) and when I try to
    • Don't send customer email when creating a ticket

      Hi Is there an easy way to stop the system sending an email to the customer when we manually create ticket.
    • List of Mail Merge Templates via Deluge

      Hello, Is it possible to get a list of the mail merge templates I've created in CRM within a custom function? I want to retrieve them and put them in a dropdown list but all I get is a scopes error! Can anyone see where I'm going wrong? Is this even possible?
    • Introducing Bulk Attachment Download from List View

      We're excited to introduce an update to attachment management in Zoho Recruit that lets you download attachments associated with selected records directly from the List View page of any module. How do I download attachments in bulk? You can now select
    • Zoho Desk MCP doesn't expose all functions

      Hello, I'd like to be able to draft (rather than send) ticket replies using Claude Cowork. However, the Zoho Desk MCP doesn't currently offer that, despite it being available in the API (https://desk.zoho.com/DeskAPIDocument#Threads#Threads_DraftEmailReply).
    • Tiktok

      When will Tiktok be added to the Zoho Social Platform?
    • Zoho Mail iOS app update: Spam Controls & Sender Verification

      Hello everyone! We are excited to introduce spam control enhancements in the Zoho Mail iOS app update. Let's dive into what's new. Spam Alerts in Mail Preview : Mail preview now shows warning alerts for emails identified as potentially harmful, helping
    • Mise à jour de Zoho Books – France

      Chers clients, Merci pour votre patience et votre soutien continu. Avec les évolutions réglementaires à venir en France nous introduisons de nouvelles fonctionnalités dans Zoho Books pour les clients français. Ces mises à jour ont été conçues pour répondre
    • 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 Books API: Bulk update thousands of records using Node.js with OAuth refresh, retries and resume support

      Hello everyone, During Zoho Books implementations, one common challenge is updating a large number of existing records. The current options are usually: Update records manually from the UI using Mass Update (with limited batch size). Update records one
    • SalesIQ's Summer '26 Release: For The Moments That Matter

      Every customer journey is made up of moments. The moment someone discovers your business. The moment they need help. The moment you decide to reach out. The moment a simple chat turns into something more. And the moments that continue long after the conversation
    • CNIL - Suivi de Pixel

      Bonjour à tous, À la suite de la nouvelle recommandation de la CNIL sur les pixels de suivi dans les e-mails, savez-vous si Zoho Campaigns permet : de conditionner le suivi des ouvertures au consentement de chaque contact ; de proposer un lien permettant
    • Customer/Vendor Portal session duration - can it be extended?

      Hi all, We'd like to know how long the login session lasts for the Customer/Vendor Portal in Zoho Books, and whether there's any way to extend it (either through settings or via support/API). Right now this is causing a pretty poor experience for our
    • Accessible & Customizable User Governance in Zoho Projects!

      As teams expand and collaborate with multiple external collaborators across projects, keeping control of user access to project data becomes a challenge. Mismanaged access can cause accidental or unauthorized edits, data leaks and lack of accountability.
    • Bulk deleting Zoho CRM records using Deluge, COQL and CRM API

      Hello everyone, During CRM implementations, data cleanup is a common task, especially after testing, migrations, imports, or integration development. The Zoho CRM UI allows deleting records in batches of 100, which is not practical when dealing with thousands
    • CNIL - Suivi de Pixel

      Bonjour à tous, À la suite de la nouvelle recommandation de la CNIL sur les pixels de suivi dans les e-mails, savez-vous si Zoho Campaigns permet : de conditionner le suivi des ouvertures au consentement de chaque contact ; de proposer un lien permettant
    • Zoho CRM Layout Rules: Nine New Actions, Profile-Based Execution, and Interactive Preview

      Hello everyone, Availability: This feature is now available for customers in the JP and SA DCs. It is planned to be released for other customers in soon. We’re excited to announce powerful new enhancements to Layout Rules in Zoho CRM - a feature built
    • Automatically set the default VAT percentage on a quote

      Every time I create a quote, I have to manually adjust the VAT and activate the checkbox for 21%. But all of our quotes include 21% VAT. So now occasionally, it happens that the checkbox is forgotten, and the customer receives an incorrect quote (without
    • How to View Part Inventory and Warehouse Location When Creating a Work Order in Zoho FSM

      Hi everyone, We’re currently setting up Zoho FSM and would like to improve how our team selects parts when creating a Work Order. Right now, when we add a part or item to a Work Order, we can select it from our Zoho Inventory list but we don’t see any
    • Zoho Sprints - Q2 Updates for 2026

      Improve your agile project management experience with the newly released capabilities in Zoho Sprints. This quarter we've shipped a few new features and enhancements that are built around smarter planning and execution tools, tighter integrations, and
    • Building extensions #5: Creating custom user interfaces using widgets

      In our last post, we looked at connections and how they help build a seamless integration with an example. In this post, we'll explore creating widgets in Zoho Sprints and their benefits with a real-time example. Widgets What and where? Widgets are custom
    • Images not saved in notes

      Created noteboards and create a note, copy pasted the image, close the note and open again, image is not coming this same problem occurs in note on notebook I have attached the replication steps as video url to analyse it, and also attached the videos
    • How to Change Notecard Color After It Is Created

      I would like to change the color of a Notecard that already exists in my notebook. I can't for the life of me figure out how to do it. I don't see an option or color picker anywhere.
    • Cannot export Zoho Notebook data nor search via MCP (GDPR)

      Hi, I'm using Zoho Notebook for a few years now. Not as my main notetaking app, but for specific usecases I did find it handy. Now I want to export all my data. Preferably all notes in html format with metadata like note title, included images and parent
    • Bring more clarity to your blueprints with color-coded transitions

      As your hiring processes evolve, blueprints naturally become more detailed. When multiple transitions connect different stages, it can take extra effort to identify approvals, rejections, reviews, and other actions at a glance. With this enhancement,
    • Add a MATRIX field to the forms creation

      Same as Zoho forms, we need a Matrix field in Zoho Creator forms, is very usefull
    • incoming mails not received

      incoming mails not received
    • Integrate QuickBooks with Bigin and streamline your sales and accounting!

      If your business relies on Bigin for customer management and QuickBooks for accounting and invoicing, this new integration is here to make your operations more efficient. By connecting these two platforms, you can now manage your CRM and financial processes
    • Automatically calculate and include tax on quotes

      I've recently been VAT registered and now need to include VAT on my quotes. I have been able to set the tax label and amount but still need to click the tax link and select the tax I wish to include before it appears on the quote. Does anyone know of
    • Relative Dates

      Is there a way to apply a Relative Date filter in DataPrep (ie. Today or Yesterday)? I need to filter a dataset to only include rows with a created date of yesterday, but I’m not finding a way to do it?
    • Change email addresses - Advise how

      Good day, I need assistance to change all our users email addresses Please advise
    • email signature

      How do you add an email signature
    • Email Forwarding | How to Enable and Disable Email Forwarding on a Non-Admin User Account

      Email Forwarding Issue: Enable and Disable Email Forwarding
    • Ask the Experts 31: Improving support performance with reports and dashboards

      Hello everyone, Join us for the next Ask the Experts (ATE) session! Ask the Experts is an opportunity to connect with people who have deep knowledge of Zoho Desk. Let's look at the topic we're focusing on this month. Just as we rely on the right tools
    • Zia AI capabilities now available in all paid editions

      Hello everyone, We are expanding the availability of AI-powered features in Desk to the other paid subscriptions from 7th July 2026. Right now, the following AI-based features are available for Enterprise edition users: Intelligence: Sentiment analysis,
    • Product updates in Zoho Workplace applications | June 2026

      Hello Workplace Community, Let’s take a look at the new features and enhancements that went live across all Workplace applications for the month of June. Zoho Mail Alphanumeric support for attachment extensions in rule conditions Attachment extension
    • Next Page