Sign in or create a free account to continue.

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.

The five-step revenue model applied to a typical construction contract.
StepQuestionTypical answer for a building contract
1. Identify the contractIs there an enforceable agreement with commercial substance and probable collection?The signed construction contract, plus approved change orders
2. Identify the performance obligationsWhat 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 priceHow 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 priceHow is the price split among obligations?Not needed when there is one obligation
5. Recognize revenue when or as obligations are satisfiedIs 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.

\[\text{Percent complete} = \frac{\text{cost incurred to date}}{\text{estimated total cost}}\]
\[\text{Revenue to date} = \text{percent complete} \times \text{transaction price}\]

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}")
Output
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.

Costs that may distort the cost-to-cost measure of progress.
CostProblemUsual treatment
Uninstalled materialsExpensive equipment delivered to site but not yet installed inflates cost to date without the contractor having done the workExclude 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 inefficiencyCosts from rework or errors were not anticipated in the priceExclude from progress; expense as incurred
Mobilization and set-up costs before work beginsLarge early costs may not represent transfer of work to the ownerOften capitalized as costs to fulfil a contract and amortized, or included if they do depict progress, depending on facts
Costs of obtaining the contractBid costs and sales commissions are not performanceExpense 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
  1. Cost depicting progress = 6,200,000 − 1,100,000 = $5,100,000.
  2. Estimated total cost excluding the units = 18,500,000 − 1,100,000 = $17,400,000.
  3. Price excluding the units at cost = 20,000,000 − 1,100,000 = $18,900,000.
  4. Percent complete = 5,100,000 ÷ 17,400,000 = 29.3 %; revenue on progress = 0.293 × 18,900,000 = $5,539,655.
  5. 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.

How change orders and claims enter the revenue calculation.
Status of changeInclude in transaction price?Include costs in estimated total cost?
Approved scope and priceYes, at the agreed priceYes
Approved scope, price pendingYes, at the amount it is highly probable will not reverse (the constrained estimate)Yes
Disputed or unapproved claimOnly if it is highly probable that a significant reversal will not occur; often nilYes, the costs are real and are included
Owner-directed work in progress with no change documentAssess as an unpriced change or claimYes

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
  1. Most likely outcome: finish between 1 and 15 July; bonus and damages both nil.
  2. Expected value = 15,000,000 + 0.25 × 300,000 − 0.15 × 200,000 = 15,000,000 + 75,000 − 30,000 = $15,045,000.
  3. 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.
  4. 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}")
Output
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.

Percentage of completion compared with completed contract.
FeaturePercentage of completion (over time)Completed contract
When revenue is recognizedAs work progressesWhen the work is substantially complete
Profit patternSpread over the life of the jobAll at the end
LossesRecognized in full when foreseenRecognized in full when foreseen
Balance sheetContract assets and liabilities each periodCosts and billings accumulated until completion
Information to readersShows performance each periodCan hide performance for long periods
AvailabilityIFRS 15 and ASPE (the usual method)ASPE only, in limited cases
Two stepped area charts over three years for the same contract. The percentage-of-completion chart shows gross profit recognized each year in proportion to progress; the completed contract chart shows no profit in years 1 and 2 and all of it in year 3.
The same job reported under percentage of completion and completed contract: total profit is identical, but timing is very different.

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.

  1. 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.

  2. 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.

  3. 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.

  4. How are uninstalled materials treated in the cost-to-cost method?

    Show answer

    Excluded from progress; revenue recognized equal to their cost until installed.

  5. 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.

  6. 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.

  7. What is a cumulative catch-up?

    Show answer

    The effect of a revised estimate on all work to date, recognized in the current period.

  8. When is the completed contract method allowed under ASPE?

    Show answer

    When performance is a single act or progress cannot reasonably be estimated.

  9. 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.

  10. 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.

Take the quiz