Revenue Management: #6 Revenue Recognition in Professional Services Industry

Revenue Management: #6 Revenue Recognition in Professional Services Industry

If you run a consulting firm, agency, or any service-based business, you have a situation where you have signed the contract, maybe even sent the invoice, and have received some initial payments. So, can you consider this as revenue? What if the project spans several months? What if there is a revision or unplanned scope creep in?


How do service-based businesses recognize revenue for time, materials, and milestones?

Revenue Recognition Scenarios in the Professional Services

This can happen to any service-based firm, like legal advisors, consultants, marketing agencies, and IT services providers, as they don't sell physical goods. Instead, they provide time, expertise, and deliverables with different timelines. This means, the revenue is recognized as work is performed and not when the invoices are sent. Here are some of the common scenarios that a service-based company faces:

Time & Material Billing

Many firms work on time and material contracts, where billing is based on hours logged. In contrast, fixed-fee projects promise a set scope for a lump sum. Revenue must be recognized based on the work delivered, not simply how much time has passed or been billed.

Example: A consultant bills $150/hour. If 40 hours are worked in April, $6000 is recognized for that month.

Bundled Services

Like SaaS, A contract might include onboarding, implementation and support. Each has a different timeline and must be recognized separately. Without clear performance obligations, firms risk misstating their revenue.


Example: A network provider sells routers, installs them, and provides support for a one-year period for $50,000. Here, the revenue earned by routers is recognized immediately; revenue from installation will be recognized as and when it is done. However, the revenue for support will be recognised only at the end of the year.

Milestone-Based Deliverables

Some contracts are milestone-based. Even if the client pays upfront or monthly, revenue must be recognized only when the milestone is met. This leads to uneven revenue patterns and complex tracking.


Example: A $20,000 marketing strategy contract has different stages, starting with $500 for discovery, $10,000 for planning, and $5000 at the time of delivery. Revenue aligns with each milestone.

Different Start Date

There can be cases where the client pays upfront for a project that begins after a few weeks. The revenue cannot be considered recognized until the project begins, and it will be deferred until the actual start date.


Example: $10,000 was paid in June for a project that starts in August. The revenue will have to be maintained as a liability/deferred until August.

Scope Changes & Goes for Rework

Projects often evolve with new tasks, changes in timeline, or even the entire deliverable gets changed. These contract modifications require updated revenue allocation and potentially re-recognition of previously booked revenue.


Example: A legal advisory firm signs a six-month contract for $60,000. After two months, the clients expanded the scope by adding training and doubling the reviews from the earlier contract, which required reallocating revenue for the remaining months.

Since service delivery isn't always linear, tracking obligation completion is essential. Manually doing this for a large-scale contract is going to be close to impossible.


Info
Scenario:

A digital consultancy service signs a contract for $60,000 with a client that includes $10,000 worth of an upfront discovery workshop. Additionally, System implementation is planned for $30,000 and will take three months to complete. Technical assistance will be offered at $20,000 for six months.
 

Zoho Billing for Professional Service Revenue Recognition


Zoho Billing allows professional services firms to configure revenue recognition rules tailored to the contract's stages and services.


For the scenario above, the rule could be set as follows:

 

For Discovery Workshop

For Implementation

For Technical Assistance

Recognition Frequency

Once

Monthly

Monthly

Recognition Method

Daily

Evenly Distributed

Evenly Distributed

Recognition Time

Period Start

Period Start

Period Start

 

Once configured, Zoho Billing will take care of recognizing the revenue automatically.


It recognizes $10,000 after the discovery sessions are done. For implementation, $10,000 will be recognized per month for the next three months. For technical assistance, $3,333 per month will be recognized, which sums up to $20,000 for the committed six-month period.


Reports in Zoho Billing

If you look at the Revenue Recognition reports after two months in Zoho Billing, you can find,


i) Recognized Revenue Report

Two months into the engagement, the discovery workshop is over, two months of implementation have been delivered, and two months of technical assistance have been rendered.

Component

Recognized Revenue

Description

Discovery Workshop

$10,000

Fully recognized

System Implementation

$20,000

$10,000/month for two months

Technical Assistance

$6666

$3333/month for two months

Total Recognized

$36,666

Revenue earned in two months

 

ii) Deferred Revenue Report

The remaining revenue in deferred is for pending implementation and assistance services that are to be done.

Component

Deferred Amount

System Implementation

$10,000 (one month left)

Technical Assistance

$13,334 ($3333/month x4)

Total Deferred

$23,334

 

iii) Revenue Waterfall Report

Month

Discovery Workshop

Implementation

Assistance

Total

Month 1

$10,000

$10,000

$3,333

$23,333

Month 2

---

$10,000

$3,333

$13,333

Month 3 (upcoming)

---

$10,000

$3,333

$13,333

Month 4 (upcoming)

---

---

$3,333

$3,333

Month 5 (upcoming)

---

---

$3,333

$3,333

Month 6 (upcoming)

---

---

$3,333

$3,333

 

 

Idea

Best Practice for Professional Services Revenue Recognition

  • Define Deliverables Clearly: Break work into explicit deliverables/obligations to know how it will be delivered.
  • Match Revenue with Service Period: Use time-based or milestone-based rules depending on the service to be recognized.
  • Reassess on Scope Changes: The system should be equipped to automatically understand contract changes and recognize scheduled changes when the project terms shift.
  • Manual Revenue Recognition: It is best to use Manual Revenue Recognition based on completion for long-term milestone-based projects.
  
    • 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

      • Introducing parent-child ticketing in Zoho Desk [Early access]

        Hello Zoho Desk users! We have introduced the parent-child ticketing system to help customer service teams ensure efficient resolution of issues involving multiple, related tickets. You can now combine repetitive and interconnected tickets into parent-child
      • Zero Personalization of the File Sharing Experience

        By now (2025) this is the maximum level of personalization available for a Zoho sharing link. We gently asked Zoho if we could modify at least the background, and they replied that it cannot be customized. We're truly disappointed – and surprised every
      • Lead to Contact Conversion with multiple email address fields

        We are a B2C business with a strong repeat cycle, and as such it's not uncommon for customers to use multiple email addresses with us. We have both our Contacts & Leads modules set up with 3 email fields. (Primary Email / Secondary Email / Historic Email)
      • Introducing Dark Mode / Light Mode : A New Look For Your CRM

        Hello Users, We are excited to announce a highly anticipated feature - the launch of Day, Night and Auto Mode implementation in Zoho CRM's NextGen user interface! This feature is designed to provide a visually appealing and comfortable experience for
      • Does Thrive work with Zoho Billing (Subscriptions)?

        I would like to use Thrive with Zoho Billing Subscriptions but don't see a way to do so. Can someone point me in the right direction? Thank you
      • How to display two measures (sales and price) divided by categories on one line chart

        Hi everyone, I’m having trouble figuring out how to display two columns on a line chart with category breakdowns. What I need is a line chart where one line represents Sales and the other represents Price. However, the Price data is divided into around
      • Exporting Charts from ZohoCRM

        Hi...I'm relatively new to ZohoCRM, but very happy with it so far. I have all my leads and potentials accurately entered, and like the reports that I can view, with charts at the top of the data. But when I export the data, I'm receiving only the data, whether I export as excel, csv or pdf. How can I export both the chart and the data? In case it makes a difference, I'm using the free version right now. I tried researching the other editions to see if a paid version of the software offered the ability
      • Automatically Update Ticket Status in Zoho Desk Based on Actions in Zoho Projects

        Hi Zoho Desk Team, Hope you’re doing well. We’re using the Zoho Desk–Zoho Projects integration to manage tasks related to customer tickets, and it works well for linking and tracking progress. However, there are a few important automation capabilities
      • sms long credits

        I’m trying to purchase Long Code credits so I can send SMS campaigns to my contacts. However, when I click the “Buy Now” button, the page appears blank and doesn’t load any purchase options. Could you please assist me in purchasing the Long Code credits
      • Tip #48- Power Your AI Workflows with Zoho Assist on Zapier’s MCP- 'Insider Insights'

        We’re thrilled to announce that Zoho Assist is now part of Zapier’s Model Context Protocol (MCP), bringing remote support automation right into your AI ecosystem. What is MCP? The Model Context Protocol (MCP) is Zapier’s new framework designed to connect
      • Insert Cookie Policy in Zoho Sites

        Hello, i need to insert a banner on my site because i'm in Italy so i have to respect EU laws for Cookie Policy and Privacy Policy. I see that i need to insert a code in <head> section of my site to show a banner/popup with cookie info. How i can do this? Thank you Luca
      • Marketing Tip #1: Optimize item titles for SEO

        Your item title is the first thing both Google and shoppers notice. Instead of a generic “Leather Bag,” go for something detailed like “Handcrafted Leather Laptop Bag – Durable & Stylish.” This helps your items rank better in search results and instantly
      • Customer Parent Account or Sub-Customer Account

        Some of clients as they have 50 to 300 branches, they required separate account statement with outlet name and number; which means we have to open new account for each branch individually. However, the main issue is that, when they make a payment, they
      • Forced Logouts - Daily and More Frequent

        In the last month or so, I've been getting "power logged out" of all of my Zoho apps at least daily, sometimes more frequently. This happens in the same browser session on the same computer, and I need to re-login to each app separately after this happens.
      • Paste issues in ZOHO crm notes

        Hi, since a week or so I have issues with the paste function in ZOHO CRM. I use "notes" to copy paste texts from Outlook emails and since a week or so, the pasting doesnt function as it should: some text just disappears and it gives a lot of empty lines/enters.....
      • ENTER key triggering Submit

        Is it possible to stopped the ENTER key from the mandatory triggering of the Submit button on Creator form? I want forms submitted "ONLY" when the Submit button is pressed. 
      • Is it possible to assign Client user to external task ON PROJECTS' TEMPLATES?

        Is it possible to assign Client user to external task ON TEMPLATES PROJECTS?
      • Draft & Schedule Emails Directly in Bigin

        Greetings, I hope all of you are doing well. We're happy to announce a few recent enhancements we've made to email in Bigin. We'll go over each one in detail, but here's a quick overview: Previously, you couldn't draft or schedule emails in Bigin, but
      • Cannot Invert Axis for Rankings

        Hi there I want to be able to create a ranking graph in Analytics/BI, with 1 at the top of the Y axis, but I am unable to invert the axis. Super simple example in Excel below. Higher rankings need to be higher up on the graph to give the correct visual
      • Zoho CRM Workflow and Function Backup Options

        Hi everyone! I have been able to make several backups of my CRM data and noticed that the Workflows and Functions are not included in these backups. To my knowledge, there is no backup feature for workflows and functions, which is problematic in of itself.
      • Cliq does not sync messages after Sleep on Mac

        I'm using the mac app of Cliq. When I open my mac after it was in sleep mode, Cliq does not sync the messages that I received. I always have to reload using cmd + R, which is not what I want when using a chat application.
      • Link to images

        I have added images in pages. I would like to link those images with linked in URL so that they open in new window. There is an option of image -> link but I am not able to use the same to open URL in new window. Please check the attached image. Can you
      • Canvas View - Print

        What is the best way to accomplish a print to PDF of the canvas view?
      • What's New in Zoho Analytics - October 2025

        Hello Users! We're are back with a fresh set of updates and enhancements to make data analysis faster and more insightful. Take a quick look at what’s new and see how these updates can power up your reports and dashboards. Explore What's New! Extreme
      • Respond faster and smarter with Zia in your IM Inbox

        You’re in the middle of a busy chat queue. New messages keep popping up. One customer sounds upset. Another is asking a long list of questions. You need context. You need speed. You need help. That’s exactly when Zia Insghts jumps into action. It shows
      • Meeting impossible to use when sharing screen

        he Meeting tool in Brazil is practically unusable when sharing anything, whether it’s a presentation or simple navigation. When accessed via Cliq, the situation gets even worse: even basic calls fail to work properly, constantly freezing. And as you are
      • Let's Talk Recruit: Meet Zia, your all-in-one AI assistant (Part-2)

        Welcome back to Let’s Talk Recruit series. In Part 1, we introduced Zia and how AI is reshaping the way recruiters work. This time, we’re taking a closer look at how far Zia has come and how each update continues to simplify your everyday tasks. When
      • WARNING : Smart list automatically unsubscribes your contacts.

        I created a smart list of my team members based on the criterion that their email domain was @_____. The list refreshed as expected — but it ended up unsubscribing almost all members of my team. I contacted support, but it took two months to get a reply,
      • Export Purchase orders as Excel

        Is it possible to export purchase orders as excel rather than PDF? Our suppliers don't want orders made in PDF, they need it to be excel
      • 5名限定 課題解決型ワークショップイベント Zoho ワークアウト開催のお知らせ (10/31)

        ユーザーの皆さま、こんにちは。Zoho ユーザーコミュニティチームの中野です。 10月開催のZoho ワークアウトについてお知らせします。 今回はZoomにて、オンライン開催します。 参加登録はこちら(無料):https://us02web.zoom.us/meeting/register/BGYTysOnSqa9LA9eY2IKww ━━━━━━━━━━━━━━━━━━━━━━━━ Zoho ワークアウトとは? Zoho ユーザー同士で交流しながら、サービスに関する疑問や不明点の解消を目的とした
      • Subforms in Stateless Forms

        Stateless Forms are very useful, but we can't build complex data entry pages without Subforms. Can this be implemented? This would make Stateless Forms truly powerful.
      • Custom Function not getting package details when triggered from Workflow Rules.

        I have a custom function for Packages that submits a form in our Creator app that we use to generate custom shipping labels (internal staff complete deliveries so we cannot generate shipping labels straight from Inventory). When the function is executed
      • Billing Preferences per Account

        Hello, We are trying to setup Billing Preferences in Zoho Desk to set up a different pricing per account. We charge different pricing per hour per customer/account. Account A = 100 per hour Account B = 125 per hour In the Billing Preferences in Time Entry
      • Time entry preview for custom time entry templates.

        Our company needed time entries in a specific format to document our client interactions. Since we are using a custom time entry layout, we have lost the "preview" on the time entry tab. Using the default time entry layout, you get a small preview of
      • Set to Review for all

        We are testing the use of Writer as part of an internal review process for statement of work documents and have found that when the document is changed from Compose to Review by one person, that is not reflected for all others who view the document. Is
      • Implementing a Self-Invoicing/Vendor Portal in Zoho Creator

        Hello Zoho Community / Creator Experts, We would like to build a Self-Invoicing Portal (Vendor Portal) in Zoho Creator for our external contractors. Our goal is to allow approved contractors to log in, submit their invoice details (hours worked, project
      • Blocked Email

        We are a Zoho One subscriber and use Yahoo as our MX provider. A few times each year, for the past four years, CRM blocks one or more of my Zoho One users from receiving internal email from CRM. This includes "@mentions" in all modules, and emails from
      • Able to change project on timelog entries

        Ability to move the timesheet entry from one project to another. When a user adds a wrong entry a manager can change/update the timesheet entry to the correct project.
      • What formula to use in computing total hrs and decimal hrss

        So , my data includes log im column , 2 breaks with 2 columns that says back and lunch and 1 column that says back and logged out. What formula should i use to be able to automatically have my total hours as I input time in each column? Thankyou
      • i cannot use <b></b> to bold the message in Creator C6!!!!???What?

        Dear experts and friends, Now Creator 6 blocking us from using <b></b> Anyone facing this issue? I faced it on Creator C6 Previously, it used to work. Now failed to work. Faint~ Seek guidance from everyone on how to bold the message. The super simple
      • Next Page