Earned revenue is how much of the contract you’ve actually earned, regardless of what you’ve billed or collected. Under the cost-to-cost method, it’s percent complete times the current contract value (original contract plus approved change orders, and unapproved changes only when they meet the accounting criteria for inclusion).
Why it matters
Earned revenue is what goes on the income statement for contractors that recognize revenue over time under ASC 606. Billing is a separate thing. The gap between earned revenue and billings becomes over billing (a liability) or under billing (an asset). If you report billed revenue instead of earned revenue, your profit swings with your pay app strategy rather than your actual progress.
Worked example
Illustrative: Riverside Medical Center.
- Contract value: $49.3M
- Estimated total cost: $43.68M; cost to date: $31.7M
- Percent complete: $31.7M / $43.68M = 72.6%
- Earned revenue: 72.6% times $49.3M = $35.78M
Revenue recognized this month equals earned revenue to date minus earned revenue through last month. If last month’s earned revenue was $33.5M, this month’s recognized revenue is $2.28M, which won’t exactly match Pay App #9’s $2.31M billing. That’s normal.
Common mistakes
- Using billed to date as revenue.
- Including unapproved change orders in contract value before they’re probable and estimable.
- Holding contract value constant while updating cost, or the reverse.
How os.construction handles it
We’re building earned revenue to calculate from live contract value, approved changes and forecast cost, so the WIP and income statement start from the same numbers.