Prepare, review and post a revenue run
The monthly revenue close: prepare a draft revenue run for a period end, read what each booking and member offer would recognise, fix what holds lines back, post the run's journals, and check the contract balances and the balance sheet.
Prepare, review and post a revenue run
Under a deferring revenue policy, demands don't book sale revenue: they build up a contract liability. A revenue run is the period close that recognises the revenue each booking and member offer has earned by a date, moves costs into inventory and out as cost of sales, and releases capitalised brokerage. Usually an accountant prepares the run each month and the CA or Finance Lead reviews and posts it.
Before you start
- The books' revenue policy is set, and the chart is ready for it: see Set the revenue policy and prepare the chart for it.
- The month's postings are in: demands issued, receipts cleared, cost vouchers posted. The run reads the books as they stand.
- For point-in-time recognition, possession dates are recorded on the bookings (the Possession card on the Booking overview), and the occupation certificate on the tower or project. For the cost method, the project has a Budget Cost.
- The period end falls in an open fiscal year, in a period that isn't locked.
- Permissions, in the role editor's words:
- the View permission on Revenue Recognition and on Books to see the runs;
- the Create permission on Revenue Recognition to prepare and recompute a draft (the default Accountant, Finance Lead and Administrator roles);
- the Approve permission on Revenue Recognition to post it (Finance Lead and Administrator);
- the Delete permission on Revenue Recognition to delete a draft.
Steps
- In the sidebar open Accounting and choose Revenue Recognition. Pick the books in the Books switcher at the top right. The Revenue runs tab lists the books' runs, newest period first, with Run, Period, Revenue and Status. See Revenue runs.
- Click New revenue run. The dialog "New revenue run" opens: "The draft computes every booking and member offer of these books under the revenue policy in force on the period end. Nothing is posted until you post it."
- Check the Period end ("Revenue up to and including this date; the journals are dated on it."). It starts at the last day of last month and can't be after today. Add any Notes.
- Click Prepare draft. The Revenue run page opens with the run number (RR-<financial year>-<number>, for example RR-2026-27-00001), a Draft badge, "<books> · revenue to <date>", and the note "A draft posts nothing. Posting recomputes it from the books as they stand, then posts one journal per project for the revenue and one for the brokerage released."
- Read the Summary card: Revenue to recognise, Cost of sales, Moved into inventory, Brokerage released, Subjects ("N (M skipped)"), Recognised to date, Contract liability, Contract asset, and the Policy the run uses ("<framework> · <method> (from <date>)"). Rows such as Expected losses provided appear only when the policy calls for them.
- Read the Bookings and member offers card. Each row shows the booking (or "Member offer"), its Progress with a note, and Price, Revenue to date, This run, Billed, Liability, Asset, Cost of sales and Brokerage. The note says why a line is where it is, for example "Waiting for: possession handed over", "No occupation certificate on or before the trigger date", "N of M stages achieved" or "cost incurred <amount> of <budget>".
- Read the Costs moved into inventory card (each expense ledger's cost for the project to date, less what earlier runs moved), the Left out card with its reasons, and any warning that starts "Expected loss: the cost share exceeds the price on <booking> …".
- If a line is held back by something you can fix (a missing possession date or OC, a cost budget, a stage not marked completed, a component mapping), fix it and click Recompute. You see "Draft recomputed." and the figures refresh.
- Click Post run. The confirmation "Post <run no>?" reads "The run is recomputed from the books as they stand, then its journals are posted on <period end>. The revenue policy it uses becomes locked." Without the Approve permission the button is greyed out, with "Posting a revenue run needs REVENUE:approve" on hover.
- Click Post run in the confirmation. You see "Run <no> posted: <n> journal(s)." The badge reads Posted, Revenue to recognise becomes Revenue recognised, and the Journals card lists each voucher with its status.
- Click a journal number in the Journals card. The voucher page shows a posted Journal dated on the period end, referenced to the run, with the narration "Revenue run <no>: <kind> to <date> (<project>)". The same journals are listed under Accounting > Vouchers.
- Back under Revenue Recognition, choose the Contract balances tab. For From and To covering the period, you see per project the Revenue in the period and how much came Out of the opening contract liability, then the Contract liability, Contract asset and Contract acquisition costs rolled forward from Opening to Closing (billed, recognised, capitalised and released in between). See Contract balances.
- Choose the Remaining obligation tab. It shows, per project, the booked price not yet recognised, banded by the financial year of the project's expected possession. See Remaining obligation.
- Choose the Project performance tab. It shows revenue, cost of sales and margin per project for the period and to date, the cost budget against cost incurred, progress, and flags such as No budget cost or an expected loss. See Project performance.
- In the sidebar open Accounting > Reports, choose the Balance sheet tab and set As of to the period end. The contract liability and contract asset appear under their groups, and buyers who have paid ahead of their demands show under 2120 Advances from Customers - Unapplied rather than being netted against receivables. See Balance sheet.
What happens next
- Up to one Journal per project for each kind of movement is posted, in this order: development rights received, financing component, costs moved to inventory, revenue recognised, cost of sales, expected losses provided, brokerage released, completed units. A kind with nothing to post is skipped; a run with nothing at all reads "Nothing changed, so nothing was posted."
- The revenue recognised credits the revenue ledgers and draws down the contract liability; revenue ahead of billing goes to the contract asset (1220). Capitalised brokerage is released to expense in step with the booking's revenue.
- The revenue policy the run used shows Locked on the books' Revenue policy tab; change it from a later date with a new policy.
- Possession dates of a booking whose revenue is recognised are locked on the booking ("Revenue on this booking is recognised; its possession dates stay as posted."), and under a Not allowed cancellation policy the booking can no longer be cancelled.
- The next run starts from this one. To undo it, see Reverse a posted revenue run.
- To draft runs automatically, the Automatic revenue runs card on the Revenue runs tab has Schedule automatic revenue runs, and the seeded rule "Monthly revenue run (system)" can be switched on under Settings > Workflows. Automatic runs are drafts only; posting stays with you.
If something goes wrong
- "A Draft estimate already exists for this opportunity. Edit that draft instead of creating another." in the "New revenue run" dialog: despite the wording, a revenue run draft already exists for these books. Open it from the list and post or delete it. "Run <no> already closed <date>; a new run must end on or after it": choose a later period end. See Revenue run cannot be started, posted or reversed (trouble.accounting.revenue-run-draft-exists).
- "No fiscal year covers that date. Open the next fiscal year under Books first." on prepare or post, or "Period <n> of <FY> is locked" and "That fiscal year is closed." on post: open the year, unlock the period, or choose another period end. See No open period for the date (trouble.accounting.fiscal-year-missing).
- "These books are inactive. Reactivate them under Books to post entries.": reactivate the books on the Books list. See Books inactive (trouble.accounting.books-inactive).
- "<project>: the cost method needs a cost budget (Project > Settings > Budget cost)" under Left out: add a budget on the Budget cost card on the project's Settings tab and click Recompute. See The cost method needs a cost budget (trouble.accounting.cost-budget-missing).
- "These books have no ledger <code>; sync templates": run Sync from templates on Chart of accounts > Component mappings, then Recompute. See Component not mapped (trouble.accounting.component-not-mapped).
- Post run greyed out with "Posting a revenue run needs REVENUE:approve", or no New revenue run button: your role lacks the Approve or Create permission on Revenue Recognition. See No access (trouble.admin.no-access).
Related
Related
- Revenue runsScreen
The revenue runs (period closes) of the chosen books, the dialog that prepares a new draft run, and the scheduled rules that draft runs automatically.
- Revenue runScreen
One period close: what each booking and member offer recognises, the journals and cost moves it posts, the subjects it left out, and the actions to recompute, post, reverse or delete it.
- Revenue policyScreen
The CA's effective-dated choices on how the books recognise sale revenue and the costs that go with it: framework, method, possession trigger, OC rule, cost treatments and judgement areas.
- Contract balancesScreen
The Ind AS 115 contract-balances disclosure per project over a period: contract liability, contract asset and contract acquisition costs rolled forward from the ledger, with the revenue recognised in the period and how much of it came out of the opening liability.
- Remaining obligationScreen
The Ind AS 115 disclosure of revenue still to come from what is already booked: each live booking and member offer's price less what the posted revenue runs have recognised, per project, banded by the financial year of the project's expected possession.
- Project performanceScreen
Revenue, cost of sales and margin per project for a period and to date, the booked price and how much of it is recognised, the cost budget against cost incurred and cost to complete, progress by stages and by cost, revenue by month, and the flags the CA needs to act on.
- VoucherScreen
One voucher with its lines and bill allocations, its reversal links, its history, and the actions to post, reverse, cancel or delete it.
- Balance sheetScreen
Assets against liabilities and equity as of a date, with the year's profit to date carried into equity and a check that the two sides agree.
- Fiscal yearsScreen
The fiscal years of a set of books with their 12 monthly periods: lock or unlock a month, open the next year, and close or reopen a year at year end.
- Budget CostScreen
The project's (or a tower's) estimated total cost, effective-dated, that cost of sales shares across the saleable units and the cost method of over-time revenue recognition measures progress against.
- Booking overviewScreen
A booking's home page: the applicant and unit, parking, dates, money summary, termsheet status and possession, with the buttons to edit the booking, see its history, jump to the opportunity or cancel it.
- Set the revenue policy and prepare the chart for itHow-to
Record the CA's revenue recognition choices for a set of books as an effective-dated policy, set an organization-wide default or a project override where needed, and prepare the chart, cost centres, cost budgets and construction stages the revenue runs read.
- Reverse a posted revenue runHow-to
Undo the latest posted revenue run of a set of books: every journal it posted is mirrored, the run becomes Reversed, and the next run starts again from the run before it.
- Recognise rehab units as non-cash considerationHow-to
For a redevelopment project whose CA treats the flats given to society members as the price of the development rights: switch the policy on, record the agreement date and the fair value of the rights on the project, and let the revenue runs book the rights and the rehab revenue.
- Revenue recognition: policy, point in time vs over time, and revenue runsConcept
Each set of books carries an effective-dated revenue policy (framework, method, possession trigger, cost and brokerage treatments, judgement areas) chosen by the CA; a revenue run is the period close that computes every booking's and member offer's progress under it, recognises the catch-up revenue, cost of sales and brokerage, and posts the journals.
- Contract liability, contract asset and the transaction priceConcept
A booking's transaction price is the sum of its charges treated "With the unit"; while revenue is deferred, demands for those charges are credited to a contract liability (billed ahead of revenue), a revenue run debits it as revenue is recognised, and revenue recognised ahead of billing sits in the contract asset.
- Cost of sales, cost budgets and inventory transferConcept
Each revenue run moves the period's construction, rehab and borrowing cost from the expense ledgers into work-in-progress and land inventory, then charges every booking a share of the project's cost (its budget, else the cost inventoried so far) in step with its revenue progress, so revenue and its cost land in the same period.
- Contract acquisition costs (capitalised brokerage)Concept
Under a revenue policy that capitalises the costs of obtaining a contract, an approved channel-partner commission is parked in Contract Acquisition Costs instead of brokerage expense and released to expense by each revenue run in step with the booking's revenue; possession expected within the practical-expedient months expenses it at once.
- Possession: offer, handover, conveyance and the occupation certificateConcept
Possession of a booked unit is recorded as three dates on the booking (possession offered, handed over, conveyance registered); the occupation certificate on the tower or project is what allows the offer, the handover marks the unit Sold, and the books' revenue policy names which of these dates is the moment sale revenue is recognised.
- Revenue run cannot be started, posted or reversed: a draft exists, the period is out of order, or the status forbidsTroubleshooting
Revenue runs on a set of books form a chain: one draft at a time, each run ending on or after the last posted one, and reversals from the latest run backwards; each action fits one status only.
- Posting refused: no open fiscal year or period for the dateTroubleshooting
Every posting, manual or automatic, needs a fiscal year of the books that covers its date, with the year open and the month's period unlocked; open the next year, unlock the period or reopen the year under Books, or move the document's date.
- "These books are inactive": nothing posts until the books are reactivatedTroubleshooting
Posting a voucher, issuing a demand, recording a payment, starting a run or cancelling a booking is refused because the promoter's books are inactive; what is blocked and how to reactivate them.
- Revenue run leaves a project out: "the cost method needs a cost budget"Troubleshooting
Under the cost-incurred method, and for the Guidance Note cost threshold, a project needs a cost budget in force on the period end; without one the run leaves its bookings out and the reports flag the project.
- Posting stopped: a charge component or standard ledger is missing from these booksTroubleshooting
A demand, payout, commission, cancellation or revenue run could not post because a charge component has no ledger in the promoter's books, or a template ledger or group the posting needs was never copied into them; map the component or sync the templates, then retry.
- "No access" or "You do not have permission": your role lacks a permissionTroubleshooting
Every screen, button and picker is gated by a permission on a module; your role decides which you hold, so a missing one shows as a No access card, a refused action, a greyed-out button with a hover reason, or a picker that explains which permission it needs.