CON-320 · Lesson 4 of 12 · 32 min
Revenue recognition on construction contracts
When should a contractor record revenue on a job that takes eighteen months to build? Not when it signs the contract, because no work has been done; not only when the building is handed over, because that would show nothing for a year and a half and then a large jump. The accounting standards require most construction contractors to recognize revenue as the work is performed, in proportion to progress. This lesson explains how the standards reach that answer, how progress is measured, how changes, claims and penalties are handled, and why a job that is expected to lose money must show its whole loss as soon as the loss is foreseen.
Three frameworks matter in Canada. Publicly accountable enterprises use IFRS 15, Revenue from Contracts with Customers. Private enterprises can choose IFRS or ASPE; under ASPE, Section 3400 Revenue applies. Kestrel, as a private company, uses ASPE. Because many lenders and sureties are familiar with IFRS concepts, and because ASPE's own guidance on long-term contracts is brief, this lesson explains the IFRS 15 model and then shows how ASPE differs.
The five-step model
IFRS 15 sets out five steps for recognizing revenue. Applied to a construction contract, they look like this.
| Step | Question | Typical answer for a building contract |
|---|---|---|
| 1. Identify the contract | Is there an enforceable agreement with commercial substance and probable collection? | The signed construction contract, plus approved change orders |
| 2. Identify the performance obligations | What distinct goods or services has the contractor promised? | Usually one obligation: the completed building, because the contractor integrates all the work into one combined output |
| 3. Determine the transaction price | How much does the contractor expect to be entitled to? | The contract price, adjusted for approved changes and for variable amounts such as incentives, penalties and claims, subject to a constraint |
| 4. Allocate the price | How is the price split among obligations? | Not needed when there is one obligation |
| 5. Recognize revenue when or as obligations are satisfied | Is the obligation satisfied over time or at a point in time? | Over time, because the owner controls the building as it is constructed on its land; revenue follows a measure of progress |
Step 2 deserves a comment. A building contract includes many tasks: excavation, concrete, framing, mechanical and electrical systems. These are not separate performance obligations because the contractor's promise is to combine them into a single building; the owner is buying the building, not a list of activities. Contracts that include genuinely separate promises, such as a design-build contract with a long-term maintenance service, or a contract to build two unrelated structures, may have more than one obligation, with the price allocated between them.
Why construction revenue is recognized over time
Revenue is recognized over time if any one of three criteria is met. The customer receives and consumes the benefit as the work is performed (common for services); the contractor's work creates or enhances an asset that the customer controls as it is created; or the work creates an asset with no alternative use to the contractor and the contractor has an enforceable right to payment for work completed to date. Most construction on an owner's land meets the second criterion, because the owner controls the land and everything built on it. Specialized fabrication, such as custom steel or precast for a particular project, often meets the third.
Speculative building is different. A developer that builds condominiums or houses for sale, without a buyer who controls the work as it proceeds, usually recognizes revenue when each unit is delivered. Some jurisdictions have interpreted condominium presale contracts in different ways, so developers need specialist advice; this course deals with contractors building for owners.
Measuring progress: input and output methods
Once revenue is to be recognized over time, the contractor needs a measure of progress that faithfully depicts its performance. The standards allow output methods, based on the value delivered to the customer (surveys of work performed, milestones reached, units produced), and input methods, based on the contractor's efforts (costs incurred, labour hours, machine hours). Most contractors use the cost-to-cost input method because cost data is available monthly from the job cost ledger and ties directly to the estimate.
Revenue for the current period is the revenue to date less revenue recognized in earlier periods. Because the estimated total cost changes as the job proceeds, the percent complete and revenue to date change too; the effect of a change in estimate is recognized in the period of the change, not by restating earlier periods. That is a cumulative catch-up, and it is the mechanism by which profit fade, discussed in Lesson 5, appears in the statements.
# Cost-to-cost revenue on a contract spanning three fiscal years (illustrative)
price = 12_000_000
periods = [ # (label, cost to date, estimated total cost)
("Year 1", 4_350_000, 10_900_000),
("Year 2", 9_600_000, 11_150_000),
("Year 3", 11_200_000, 11_200_000),
]
prev_rev = prev_cost = 0
for label, ctd, etc in periods:
pct = ctd / etc
rev_to_date = pct * price
rev = rev_to_date - prev_rev
cost = ctd - prev_cost
print(f"{label}: {pct:6.1%} complete, revenue {rev:>11,.0f}, "
f"cost {cost:>11,.0f}, gross profit {rev - cost:>9,.0f}")
prev_rev, prev_cost = rev_to_date, ctd
print(f"Total gross profit {price - 11_200_000:,.0f}")Year 1: 39.9% complete, revenue 4,788,991, cost 4,350,000, gross profit 438,991 Year 2: 86.1% complete, revenue 5,542,848, cost 5,250,000, gross profit 292,848 Year 3: 100.0% complete, revenue 1,668,161, cost 1,600,000, gross profit 68,161 Total gross profit 800,000
In year 1 the job was expected to earn $1.1 million and showed a gross profit in proportion. In year 2 the estimated total cost rose by $250,000, so the year's profit is lower: the catch-up takes the effect of the higher estimate on all the work done so far in year 2. Year 3 completes the job at the final estimate. The total gross profit over the three years is fixed by the final result; revenue recognition only decides which period shows it.
Costs that do not depict progress
The cost-to-cost method assumes that each dollar of cost represents the same amount of progress. Some costs break that link, and the standards require them to be excluded from the measure of progress or adjusted.
| Cost | Problem | Usual treatment |
|---|---|---|
| Uninstalled materials | Expensive equipment delivered to site but not yet installed inflates cost to date without the contractor having done the work | Exclude from the measure of progress; recognize revenue only equal to the cost of the materials (no margin) until installed, if the criteria are met |
| Wasted materials and inefficiency | Costs from rework or errors were not anticipated in the price | Exclude from progress; expense as incurred |
| Mobilization and set-up costs before work begins | Large early costs may not represent transfer of work to the owner | Often capitalized as costs to fulfil a contract and amortized, or included if they do depict progress, depending on facts |
| Costs of obtaining the contract | Bid costs and sales commissions are not performance | Expense bid costs; capitalize incremental costs of obtaining the contract only in limited cases |
Worked problem
Uninstalled equipment
On a $20,000,000 contract with an estimated total cost of $18,500,000, Kestrel has incurred $6,200,000, including $1,100,000 for rooftop air handling units delivered to site in the last week of the month but not yet installed. The units were procured from a third party and Kestrel is not involved in their design. How much revenue should be recognized to date?
Show solution
- Cost depicting progress = 6,200,000 − 1,100,000 = $5,100,000.
- Estimated total cost excluding the units = 18,500,000 − 1,100,000 = $17,400,000.
- Price excluding the units at cost = 20,000,000 − 1,100,000 = $18,900,000.
- Percent complete = 5,100,000 ÷ 17,400,000 = 29.3 %; revenue on progress = 0.293 × 18,900,000 = $5,539,655.
- Add revenue equal to the cost of the uninstalled units: 5,539,655 + 1,100,000 = $6,639,655.
Answer: Revenue to date is about $6.64 million, not the $6.70 million that a simple 6.2 ÷ 18.5 calculation would give. The difference, about $64,000, is margin on the air handlers that has not yet been earned because they are not installed.
Change orders and contract modifications
Construction contracts change constantly. Under the standards, a change order is a contract modification. When it is approved for both scope and price, it is added to the transaction price and the estimated cost, and it usually forms part of the single existing performance obligation, so the change is accounted for prospectively with a cumulative catch-up. When the scope is approved but the price is not yet agreed, the contractor may include its estimate of the price as variable consideration, subject to the constraint described below. When the change is still only claimed, it is treated as a claim.
| Status of change | Include in transaction price? | Include costs in estimated total cost? |
|---|---|---|
| Approved scope and price | Yes, at the agreed price | Yes |
| Approved scope, price pending | Yes, at the amount it is highly probable will not reverse (the constrained estimate) | Yes |
| Disputed or unapproved claim | Only if it is highly probable that a significant reversal will not occur; often nil | Yes, the costs are real and are included |
| Owner-directed work in progress with no change document | Assess as an unpriced change or claim | Yes |
The asymmetry in the last two rows is important: the costs of disputed work go into the estimate immediately, but the revenue goes in only when its recovery is highly probable. That conservatism protects readers from contractors who book optimistic claims as revenue, a common feature of past contractor failures.
Variable consideration and the constraint
Contract prices often include amounts that depend on future events: incentive bonuses for early completion, liquidated damages for late completion, award fees, claims and unpriced changes. These are variable consideration. The contractor estimates them using either the expected value (probability-weighted) or the most likely amount, whichever better predicts the outcome, and then constrains the estimate: it includes variable consideration only to the extent that it is highly probable, in IFRS 15's words, or probable, in ASC 606's, that a significant reversal of cumulative revenue will not occur when the uncertainty is resolved.
Worked problem
An early-completion bonus and liquidated damages
A $15,000,000 contract pays a bonus of $300,000 if substantial completion is achieved by 30 June, and imposes liquidated damages of $10,000 per day after 15 July. At 40 % complete, the schedule shows a likely finish in early July. The project team assesses: 25 % chance of earning the bonus, 60 % chance of finishing between 1 and 15 July (no bonus, no damages), 15 % chance of finishing about 20 days late. What transaction price should be used?
Show solution
- Most likely outcome: finish between 1 and 15 July; bonus and damages both nil.
- Expected value = 15,000,000 + 0.25 × 300,000 − 0.15 × 200,000 = 15,000,000 + 75,000 − 30,000 = $15,045,000.
- Constraint: including the $75,000 of bonus value could easily reverse, since the bonus is unlikely. Damages reduce the price and are included when likely.
- A reasonable approach: use the contract price of $15,000,000 with no bonus, and reassess each month; include expected damages if late completion becomes likely.
Answer: The transaction price stays at $15,000,000. The bonus is excluded because it is not highly probable; liquidated damages would be deducted if the schedule showed late completion was likely.
Loss contracts
If a contract is expected to lose money, the full expected loss must be recognized as soon as it becomes evident, not spread over the remaining work. Under IFRS, this follows IAS 37's treatment of onerous contracts. Under US GAAP, ASC 605-35 continues to require a provision for the entire anticipated loss in the period it is identified. ASPE practice follows the same principle. The effect is that a loss job hits the income statement hard in the month the loss is foreseen, and then shows zero gross profit for the rest of its life.
price, etc_new = 8_000_000, 8_400_000 # job now expected to lose 400,000
ctd = 3_150_000
pct = ctd / etc_new
rev_to_date = pct * price
gp_to_date_without_provision = rev_to_date - ctd
provision = (etc_new - price) + gp_to_date_without_provision
print(f"Percent complete {pct:.1%}")
print(f"Revenue to date {rev_to_date:,.0f}; cost to date {ctd:,}")
print(f"Gross loss to date before provision {gp_to_date_without_provision:,.0f}")
print(f"Additional provision for remaining loss {provision:,.0f}")
print(f"Total loss recognized now {gp_to_date_without_provision - provision:,.0f}")Percent complete 37.5% Revenue to date 3,000,000; cost to date 3,150,000 Gross loss to date before provision -150,000 Additional provision for remaining loss 250,000 Total loss recognized now -400,000
At 37.5 % complete the job has recognized only part of its loss through percentage of completion. A provision for the rest brings the total recognized loss to the full $400,000 now. If the firm had previously recognized profit on this job, the reversal of that profit is added to the hit. On a WIP schedule, the provision usually appears as an addition to contract liabilities or a separate accrued loss.
Combining and segmenting contracts
Occasionally, separate contracts with the same customer must be combined, for example when they are negotiated as a package with a single commercial objective, or when the price of one depends on the other. Conversely, a single contract with genuinely distinct obligations is split. Combining matters because it can prevent a contractor from showing profit on a profitable phase while deferring the loss on a related phase. Most building contracts do not raise this issue, but design-build-operate contracts, framework agreements and phased contracts may.
ASPE and the completed contract method
Section 3400 of ASPE permits either the percentage-of-completion method or the completed contract method for contracts for services, choosing the one that relates revenue to the work accomplished. The completed contract method, which recognizes revenue only when the work is substantially complete, is appropriate only when performance consists of a single act or when the contractor cannot reasonably estimate the extent of progress. Most construction contractors therefore use percentage of completion, and sureties generally expect it. Because ASPE's guidance is brief, many private contractors and their accountants look to IFRS 15 concepts for matters such as uninstalled materials and variable consideration.
| Feature | Percentage of completion (over time) | Completed contract |
|---|---|---|
| When revenue is recognized | As work progresses | When the work is substantially complete |
| Profit pattern | Spread over the life of the job | All at the end |
| Losses | Recognized in full when foreseen | Recognized in full when foreseen |
| Balance sheet | Contract assets and liabilities each period | Costs and billings accumulated until completion |
| Information to readers | Shows performance each period | Can hide performance for long periods |
| Availability | IFRS 15 and ASPE (the usual method) | ASPE only, in limited cases |
Disclosures that readers rely on
The standards require contractors to disclose how revenue is recognized, the significant judgements involved, contract balances and their changes, and the transaction price allocated to remaining performance obligations, which is close to the industry's idea of backlog. For sureties and lenders, the key judgement is the estimated total cost of each job, because it drives percent complete and therefore revenue and profit. That is why they ask for the WIP schedule in Lesson 5 and compare it with completed contract results.
Common mistakes
MistakeRecognizing revenue when billed.
InsteadBilling follows the payment schedule; revenue follows progress. Use a measure of progress, usually cost-to-cost.
MistakeIncluding uninstalled materials in cost-to-cost progress with full margin.
InsteadExclude them from the measure of progress and recognize revenue only at cost until they are installed.
MistakeBooking claims and unpriced changes at the amount the contractor hopes to recover.
InsteadInclude them only to the extent a significant reversal is highly probable not to occur; include the related costs immediately.
MistakeSpreading an expected loss over the remaining work.
InsteadRecognize the whole expected loss as soon as it is foreseen.
MistakeRestating earlier periods when the estimated total cost changes.
InsteadTake the effect in the current period as a cumulative catch-up.
MistakeAssuming the completed contract method is a free choice.
InsteadUnder ASPE it is allowed only for single-act contracts or when progress cannot be estimated; most contractors must use percentage of completion.
Summary and key terms
- Revenue on construction contracts follows a five-step model; most building contracts have one performance obligation.
- Construction on an owner's land is usually recognized over time because the owner controls the work as it is built.
- The cost-to-cost method measures progress as cost to date divided by estimated total cost; changes in estimates are taken as a cumulative catch-up.
- Uninstalled materials, waste and some set-up costs must be excluded from or adjusted in the measure of progress.
- Approved changes enter the price; unpriced changes, claims, incentives and penalties are variable consideration subject to a constraint.
- Expected losses on a contract are recognized in full as soon as they are foreseen.
- ASPE allows completed contract only in limited cases; percentage of completion is the norm.
- Performance obligation
- A promise to transfer a distinct good or service to the customer.
- Transaction price
- The amount of consideration a contractor expects to be entitled to for the work.
- Over time
- Recognition of revenue progressively as a performance obligation is satisfied.
- Cost-to-cost method
- An input method measuring progress as cost incurred divided by estimated total cost.
- Cumulative catch-up
- Recognizing the effect of a change in estimate in the current period for all work to date.
- Variable consideration
- Parts of the price that depend on future events, such as bonuses, penalties and claims.
- Constraint
- The limit on including variable consideration until a significant revenue reversal is unlikely.
- Contract modification
- An approved change in scope or price, such as a change order.
- Loss provision
- A charge recognizing the full expected loss on a contract when it becomes evident.
- Completed contract method
- Recognizing all revenue and profit when the work is substantially complete.
Practice problems
Work each problem on paper first, then reveal the answer to check.
Why is a typical building contract a single performance obligation?
Show answer
The contractor integrates all tasks into one combined output, the building, which is what the owner is buying.
A $9,000,000 contract has cost to date of $3,600,000 and estimated total cost of $8,000,000. What is revenue to date?
Show answer
45 % × 9,000,000 = $4,050,000.
Revenue to date was $2,400,000 last year and is $5,100,000 this year. What revenue is recognized this year?
Show answer
$2,700,000.
How are uninstalled materials treated in the cost-to-cost method?
Show answer
Excluded from progress; revenue recognized equal to their cost until installed.
Scope is approved but price is not. How is the change treated?
Show answer
Costs included in estimated total cost; the estimated price included as variable consideration subject to the constraint.
A job priced at $5,000,000 is now expected to cost $5,300,000. What loss must be recognized in total now?
Show answer
$300,000, plus reversal of any profit previously recognized.
What is a cumulative catch-up?
Show answer
The effect of a revised estimate on all work to date, recognized in the current period.
When is the completed contract method allowed under ASPE?
Show answer
When performance is a single act or progress cannot reasonably be estimated.
Why are disputed claims usually excluded from revenue while their costs are included?
Show answer
Recovery is uncertain and including it risks a significant reversal; the costs have already been incurred.
Name an output method of measuring progress.
Show answer
Surveys of work performed, milestones reached or units produced.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.