Revenue Management: #8 Revenue Recognition in Educational & Training Institutions

Revenue Management: #8 Revenue Recognition in Educational & Training Institutions

Educational Institutions and training centres typically collect course fees at the time of enrolment, sometimes for a one-day workshop and sometimes for a year-long certification course. You might also charge separately for course materials or evaluation. But when can you actually recognize that income? Would you be able to recognize it on payment? Spread it across the course period? What happens if a student cancels midway?


How do institutions manage revenue when learning is delivered over time?

Revenue Recognition Scenarios in Education & Training
Education institutions and training providers often deal with varying course durations, delivery models (online, in-person, hybrid), and fees collected upfront. Though the five-step revenue recognition model remains constant, the timing and allocation of revenue depend on the learning service's structure. Here are common revenue recognition scenarios for this industry:

Upfront Free for Long-Term Course
When a learner enrols in a course that runs for several months and pays the full fee in advance, the institution cannot recognize the entire amount immediately. Instead, the revenue should be spread out across the period the training is delivered.

Example: A $6000 certification course runs for 6 months. Revenue should be recognized at $1000 per month during the course period.

Short-Term Workshops & Seminars
For one-day or short-duration workshops, revenue can often be fully recognised once the sessions are delivered, assuming there is no refund window.

Example: A $500 weekend workshop is recognized on the day it occurs.

Course Materials & Exams
Institutions that charge separately for materials, exams, or certification must split those payments and recognize those amounts individually.

Example: $1200 total course fee, including $900 for training for three months and $300 for materials. Revenue should be recognized $300 upfront and $300/month for three months.

Cancellation, Refunds, and Attendance-Based Pricing
Refund policies and partial completions must be factored into recognition. If a student drops out after 1 month of a 3-month course, only one-third of the revenue should be recognized unless a refund is issued.

Example: A $900 course is cancelled after 1 month. You must recognize $300 and defer or refund the rest based on the policy. Credit note will be created, and the deferred $600 will be reversed to the customer as credits or issued a refund.

These scenarios show that educational institutions must align revenue with actual learning delivery and not merely based on fee collection. Automating this alignment avoids revenue overstatement and ensures compliance.


Info
Scenario :

A training company signs up a student for a three-month Data Analytics certification program for a fee of $3000. The payment is made in full at the start. The course includes three months of training and $600 worth of course material.  



Zoho Billing for Education Institution Revenue Recognition
Zoho Billing enables learning platforms to automate revenue recognition by setting up roles that separately reflect course delivery and service components.

For the above scenario, you can configure the recognition rule as follows,

Component

Recognition Frequency

Recognition Method

Recognition Time

Course Material

Once

One-Time (Daily)

Period Start

Training Session

Monthly

Evenly Distributed

Period Start

 

Although $3000 is collected upfront, only $600 for the course material can be recognized immediately according to the performance obligation. The remaining $2400 will be spread evenly across the three-month training period.


Reports in Zoho Billing

i) Recognized Revenue Report
Two months into the course, the course material is delivered, and one month of training is pending.

Component

Recognized Revenue

Description

Course Material

$600

Recognized fully at the start

Training Session

$1600

out of $2400 for two months of training given

Total Recognized

$2200

Recognized in two months

 


ii) Deferred Revenue Report
After two months, it will be left with the training session payment alone as deferred.

Component

Deferred Amount

Course Delivery

$0

Training Session

$800

Total Deferred

$800

 


iii) Revenue Waterfall Report

Month

Course Material

Training Session

Total

Month 1

$600

$800

$1400

Month 2

----

$800

$800

Month 3

----

$800

$800

Total

$600

$2400

$3000

 

Idea

Best Practices for Education Institution Revenue Recognition

  • Separate Instructional & Non-Instructional Items: Classify course material, training, certification, and exam components distinctly
  • Align Revenue with Course Delivery: Ensure the recognition rule is set based on course delivery and that the revenue is recognized when the student receives the instruction.
  • Set Return/Refund Policy Clearly: Establish a clear policy and terms to account for students who drop out or cancel courses after signing up.

 

Notes
Up Next: Revenue Recognition in Media & Publishing

      Zoho Campaigns Resources


        • Desk Community Learning Series


        • Digest


        • Functions


        • Meetups


        • Kbase


        • Resources


        • Glossary


        • Desk Marketplace


        • MVP Corner


        • Word of the Day


        • Ask the Experts


          • 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

          Zoho CRM Plus Resources

            Zoho Books Resources


              Zoho Subscriptions Resources

                Zoho Projects Resources


                  Zoho Sprints Resources


                    Zoho Orchestly Resources


                      Zoho Creator Resources


                        Zoho WorkDrive Resources



                          Zoho CRM Resources

                          • CRM Community Learning Series

                            CRM Community Learning Series


                          • Tips

                            Tips

                          • Functions

                            Functions

                          • Meetups

                            Meetups

                          • Kbase

                            Kbase

                          • Resources

                            Resources

                          • Digest

                            Digest

                          • CRM Marketplace

                            CRM Marketplace

                          • MVP Corner

                            MVP Corner




                            Zoho Writer Writer

                            Get Started. Write Away!

                            Writer is a powerful online word processor, designed for collaborative work.

                              Zoho CRM コンテンツ






                                ご検討中の方

                                  • Recent Topics

                                  • Kaizen #157: Flyouts in Client Script

                                    Hello everyone! Welcome back to another exciting edition of our Kaizen series, where we explore fresh insights and innovative ideas to help you discover more and expand your knowledge!In this post, we'll walk through how to display Flyouts in Client Script
                                  • Admin Control Over Profile Picture Visibility in Zoho One

                                    Hello Zoho Team, We hope you are doing well. Currently, as per Zoho’s design, each user can manage the visibility of their profile picture from their own Zoho Accounts page: accounts.zoho.com → Personal Information → Profile Picture → Profile Picture
                                  • Published Course Not Reflecting In Hub

                                    Hi! I am trying to create micro-learning courses for our team to be available for self-guided learning. I have published the courses with enrollment settings open to all users of the hub, but they don't appear to be available for enrollment. Am I missing
                                  • Unlock Locked Users via Zoho One Mobile App

                                    Hello Zoho One Team, We have noticed that in the Zoho One web admin panel, we can unlock a locked user when needed. However, when using the Zoho One mobile app, there is no indication that a user is locked, nor is there an unlock button similar to what
                                  • Tip #47- Stay Ahead with Automated Scheduled Reports in Zoho Assist- 'Insider Insights'

                                    We’ve made it easier for you to stay informed, even when you’re busy managing remote sessions! With Scheduled Reports in Zoho Assist, you can now automatically receive detailed insights about your remote support and unattended access activities directly
                                  • Colour Coded Flags in Tasks Module List View

                                    I really like the colour coded flags indicating the status of the tasks assigned to a Contact/Deal in the module list view. It would be a great addition to have this feature available in the list view of activities/tasks. I understand you have the Due
                                  • Uploading data to S3

                                    Has anyone successfully uploaded data from Creator to S3 using the InvokeURL command or any other method in Deluge? (keywords: S3, AWS, Amazon, bucket)
                                  • UPS Label size when generated via Zoho

                                    We've integrated UPS with Zoho inventory. When creating and downloading the shipping labels they are created in a larger paper size. I'd like them to be generated to print on a 4x6 printer. Zoho have told me I need to do this within our UPS portal. UPS
                                  • Credit Management: #4 Credits on Unused Period

                                    Recall a familiar situation. You sign up for a monthly gym membership. You pay the subscription fee upfront, get motivated, and show up consistently for the first week. Then, suddenly, you get caught up in work deadlines, travel plans, or a dip in motivation.
                                  • Zoho Analytics Automatically Deletes Queries and Reports When a Synced CRM Field Is Removed

                                    We’ve encountered a serious and recurring issue that poses a massive data integrity risk for any Zoho Analytics customer using Zoho CRM integration. When a field is deleted in Zoho CRM — even an unused one — Zoho Analytics automatically deletes every
                                  • Prevent new Record Association

                                    Hello all, We have a small sales organization therefore, it's helpful for everyone on the sales team to be able to view the full list of accounts to assist in preventing duplicate accounts from being created. However we want to prevent people from creating
                                  • Tip of the Week #73– Automate workflow with Make integration.

                                    Make is a no-code workflow automation platform designed to connect your favorite apps and automate repetitive tasks across services. By integrating Make with Zoho TeamInbox, you can streamline everyday inbox management and save valuable time. With this
                                  • Viewing attachments

                                    I'm using a Web Form integrated in my web site to collect Leads several info, including a image upload. In order to to approve each lead, we have to view the image uploaded. Unfortunately, in the Leads view, the Attachments can only be downloaded, not
                                  • Kaizen #89 - Color Coding using Client Script

                                    Hello everyone! Welcome back to another exciting Kaizen post. Today let us see how you can apply color codes to the List and Detail Pages of Zoho CRM using Client Script. Need for color code in Zoho CRM When you mark things with different colors as a
                                  • Instant Sync of Zoho CRM Data?

                                    With how valuable Zoho Analytics is to actually creating data driven dashboards/reports, we are surprised that there is no instant or near instant sync between Zoho CRM and Zoho Analytics. Waiting 3 hours is okay for most of our reports, but there are
                                  • Is it possibly to directly set the tax amount on order instead of indirectly via tax rates?

                                    We own an eCommerce application and want to funnel submitted orders from that system into Zoho. We're already calculating tax in our application and just need a way to set it in Zoho. We tried to use Zoho's tax objects for tax by setting the rates to
                                  • Zoho account sign in with passkey

                                    Hello, I am trying to sign in using passkey, but the option doesn't show up in the web and is disabled in Oneauth on mobile, saying the admin has restricted the use. On the Admin page in Security MFA I can find no option for passkey. Help would be greatly
                                  • Rescheduled US meetups: Zoho Desk user meetups are coming to seven U.S. cities in October and November, 2025

                                    Hello to our Zoho Desk users in the United States, We're excited to share the revised dates for the upcoming Zoho User Groups happening across the US this summer. Our product experts are heading to seven cities throughout the country, and for the first
                                  • Checklists as templates

                                    Is it possible to save checklists as templates to reuse them in other tasks? Example: I have a web project. I maintain individual web URLs as tasks. Within the tasks the same checklist should be used again and again: - Page created in CMS - Properties
                                  • Send mass email using my secondary email

                                    Hello, When I send an email to just one person from Zoho CRM, a complete email editor appears, where I can choose which of my email addresses I want to use in the From field. When I send a mass email, there is not such option. I can only select the email
                                  • ZOHO TEAM INBOX Calendar Integration

                                    The Problem: Clients send meeting invitations to our TeamInbox address. TeamInbox receives these invites, but we cannot accept them. We do not use individual inboxes for transparency purposes. Ideal Solution: A way to accept calendar invites sent to our
                                  • Unearned / Deferred Revenue Automatic Calculation for Subscriptions

                                    As a SaaS business, we have multiple active subscriptions with varying dates and amounts. Is there a way to have a monthly automatic calculation for all of them that debits or credits the unearned revenue and revenue accounts accordingly? Alternatively,
                                  • Zoho Desk Limit for Comma Separated Queries

                                    Hi, I have just discovered a limit that I believed is not mentioned in any of Zoho's documentations. My search query looks like so: "query: {"accountId":"786050000091629966,786050000163589273,786050000163589427,786050000162753705,786050000162112971,786050000161987643,786050000160752868,786050000167089504,786050000167089378,786050000167089024,786050000167070005,786050000166295256,786050000128153693,786050000110560021,786050000046594575,786050000039106461,786050000002225356,786050000076889093,786050000047895103,786050000043365354,786050000044765191,786050000041790249,786050000040359116,786050000037945198,786050000024605077,786050000000525015,786050000155333895,786050000157741437,786050000000718125,786050000011574353,","departmentId":"786050000042648070","status":"Finished","sortBy":"createdTime","customField2":"cf_completion_date:2025-01-28T03:00:00.000Z,2025-10-28T03:00:00.000Z","customField3":"cf_billed:false"}"
                                  • Module Name doesn't exist

                                    I am trying to create a module named Activity, with plural Activities, but I have an error that module name already exists. This module is doesn't exist, and I don't have a single field called Activity or Activities.
                                  • Zoho Desk iOS and Android app update: AI powered: Reply Assistance and Refine Messages on IM module.

                                    Hello everyone! We are excited to introduce new AI powered features on the IM module of the Zoho Desk app. Reply Assistance: Reply Assistance generates suggested responses for incoming chat messages, which you can directly insert into the conversation
                                  • Unify All Zoho Video Meeting Experiences into One Standardized Platform

                                    Hi Zoho Team, We would like to share an important user experience concern regarding the current state of video meeting functionality across the Zoho ecosystem. The Problem Within Zoho, there are multiple ways to initiate or schedule a video meeting: Zoho
                                  • Is it possible to embed Youtube shorts?

                                    Hi Zoho desk support, This is Ryan from Accuver America. While I'm trying to create a knowledge base article with embed video, I ran into this issue. "www.youtube.com refuse to connect" A little bit background is that because this video is recorded on
                                  • Zoho Inventory - Move Orders

                                    Quick question about Move Orders... Why is there no status to say something like "Draft", "In Progress" and "Completed", similar to Transfer Orders? I'm assuming that when something needs to be moved it should be planned in Inventory, executed and then
                                  • Split functionality - Admins need ability to do this

                                    Admins should be able to split an expense at any point of the process prior to approval. The split is very helpful for our account coding, but to have to go back to a user and ask them to split an invoice that they simply want paid is a bit of an in
                                  • Delegates - Access to approved reports

                                    We realized that delegates do not have access to reports after they are approved. Many users ask questions of their delegates about past expense reports and the delegates can't see this information. Please allow delegates see all expense report activity,
                                  • How to include total km for multiple trips in expense report.

                                    Whenever I create a mileage report it only shows the total dollar amount to be reimbursed. The mileage for each individual trip is included but I also need to see the total distance for all trips in a report? How do I do this?
                                  • Get logged in user ID in Deluge script

                                    Hello all, How do I get the id of the logged-in user in a deluge script? the "zoho.loginuserid" function actually returns the users email address or whatever the user id they use to login to zoho with and not the id of the user record, and given that
                                  • Item Details Field - New Barcode / Document option?

                                    Is this a new feature??? its in both books and inventory.
                                  • Shared Mailbox - Mark as read for all users

                                    Hi all, Maybe someone can help me out. At the moment we have a shared mailbox without streams. When a users reads an mail or marks it as read other users will not see this. How can we resolve this? We now archive the mails when read and followed up. However
                                  • How do I increase the email attachment size in Zoho CRM ?

                                    It looks like I'm limited to 10MB when sending an attachment using the email widget on a record in Zoho CRM. Is there a way to increase the size? Or can I use some other tool? From what I'm reading online, I'm maxed out at 10MB. Any insight would be greatly
                                  • Can I export to PDF in Zoho Learn

                                    I have seen help pages where export to pdf options are available but I do not see that option available from the application. I see that exprt is available in my free trial version but that is only to html pages. I need to be able to export my manuals
                                  • Zoho Sites "pages" management page

                                    I have 80 plus pages on zoho sites. When I go to the "pages" link to view and edit pages, They are not in any kind of order, so I spend lots of time searching for pages when I need to edit or create new. How can I change the view order of all my pages
                                  • Staff rules

                                    Hi! Do you people know what are the default staff rules when a new booking is created? We have two staff members in my team (me as the admin, and my employee). As we share the same services, I'm wondering how Zoho will pick the staff for new apointments.
                                  • Add Image Upload Field to Zoho Bookings Registration Form

                                    Hi, We would like to request the addition of an image upload field to the Zoho Bookings registration form. Currently, Zoho Bookings only supports text-based fields (e.g., Single Line, Multi-Line, Email, Checkbox, Dropdown, Radio Button, and Date), but
                                  • Merge Tags Output Incorrect Placeholder Text After CRM Sync

                                    Hi everyone, I’m experiencing an issue with merge tags in Zoho Campaigns after last sync of contacts and leads from Zoho CRM (days before everything worked perfectly). Here’s the situation (seems like a default configuration in Campaigns) : My leads have
                                  • Next Page