Skip to content

Revenue and WIP

Invoicing tells you what you billed. Recognition tells you what you earned, which is rarely the same month. Finance > Revenue and Finance > WIP and deferred are where the two are reconciled.

Reading these needs a finance capability and the prices lens. Running recognition, posting adjustments and exporting the journal need finance:manage_recognition.

Each budget line carries a recognition method, and Runnit computes what that line should have earned by a given date. A run is what actually posts it: it takes a cutoff, works out the cumulative target for every line, compares it with what has already been posted, and writes only the difference. The cutoff is interpreted in your organisation’s timezone and cannot extend past the period end or today. An older cutoff does not replace a newer applied target.

That difference is the important part. A run never rewrites history, so:

  • running twice posts nothing the second time;
  • a nightly run and a run you start by hand produce one set of entries, not two;
  • a correction that belongs to a closed month posts into the earliest open month, tagged with the month it economically belongs to; and
  • a change order re-bases the target, and the difference appears in the next run rather than restating what was already posted.
MethodEarns
As deliveredThe approved time and expenses, at their frozen value
Percent complete by hoursSold multiplied by hours to date over estimated hours
Percent complete by costSold multiplied by cost to date over estimated cost
Straight lineAn equal amount each month, with a part month prorated by its days
On milestoneThe milestones achieved by the cutoff
On invoiceWhat has been invoiced
ManualA distribution you enter, which must add up to sold exactly

Recognition stops at what was sold, or at the line’s lower cap, unless a posted write-up raises the ceiling. This applies immediately to time approvals, unapprovals, historical catch-up, invoice issue, credits and voids. The history retains each source value and shows any adjustment needed to reach the allowed cumulative amount. Older runs preserve later approved work.

Successive partial credits reduce recognised revenue by the remaining credited share. A voided invoice stays excluded when recognition runs again.

  1. Open Finance > Revenue and choose the billing entity if you have several.
  2. Under Recognition runs, enter the month in Month to run as YYYY-MM.
  3. Select Run recognition. You need finance:manage_recognition.
  4. Review the posted entries and any lines that could not be computed. A run that changes nothing says Nothing to post.

Changing billing entity clears the previous selected run.

The table shows recognised, invoiced, WIP and deferred for the period, grouped by budget, month or service type, with the method badge on each line. Below it, the run history shows each run’s cutoff, status and coverage, and the entries it posted.

Explain this number on any figure opens the whole story: the rows behind it, the frozen rates and exchange rates, the runs that wrote it, the method inputs it was computed from, and what has changed since you last looked.

  • WIP is work you have earned but not yet billed.
  • Deferred is money you have billed but not yet earned.

The WIP page shows balances with ageing buckets, so you can see how long unbilled work has been sitting, along with the monthly movement: opening balance, additions, releases, adjustments and closing balance, which always reconcile. Write-ups, write-downs and write-offs appear as adjustments with their reasons, and drill-through takes you to the budget behind any figure.

A write-down or write-off normally cannot reduce WIP below zero when it is applied. Any excess is suppressed; it does not reduce work earned later. The reporting total and Finance reports use the applied amount. If currencies differ, that amount uses the adjustment’s recorded conversion rather than a current exchange rate. A missing recorded conversion is shown as not valued.

Build journal produces the period’s recognition journal. Validate and download CSV checks the account mappings and starts the CSV download. The journal exports as CSV. Rebuilding an exported journal returns the same journal. Use a compensating journal to correct an export; rebuilding does not create another full posting. The journal leaves Runnit as a CSV, which you post in your ledger.

See what is coming: Forecast, or close the month at Month End.

Ask Ru to explain this workflow, inspect records you can access, or carry out supported steps when you authorise them. Your permissions and approval rules still apply. See Finance with Ru.

Reversing a write-off restores only the amount that reduced WIP. For example, if a write-off requested $150 but only $100 was available, reversing it restores $100. The restored work ages from when it was originally earned. Reporting totals use the same applied amounts.

Historical catch-up cannot post into a closed source month. Reopening requires your normal authority and approval. For a soft-closed month, provide a reason; the change is recorded with that reason. Ru can supply your reason for an authorised catch-up.

Invoice-based recognition counts issued invoices and issued credits. An invoice or credit awaiting approval, or approved but not issued, has no effect yet.