REVENUE — SPECIFIC CONSIDERATIONS
Study Notes: IFRS 15, Lecture 2
This lecture is a set of 'special situations' that sit on top of the 5-step IFRS 15 model you already know.
Nothing here replaces the 5 steps — each topic just tells you how to handle a tricky twist that can
show up at Step 1 (contract), Step 2 (identifying who's obligated), Step 3 (transaction price), Step 4
(allocation), or Step 5 (timing of recognition). I've grouped everything by WHERE it fits in the 5 steps,
solved every example fully, and finished off the one your slides left open (Braai4life).
1. Contract Costs — Costs Around the Contract, Not Costs OF the Contract
Before you even get to the 5-step model,
ask: are there costs relating to landing or performing this contract that need special accounting? IFRS
15 splits these into 2 buckets.
A. Costs TO OBTAIN a contract (incremental costs)
● Capitalise incremental costs of obtaining a contract IF they're expected to be recovered.
● 'Incremental' = costs that would have been AVOIDED if the contract had not been won (e.g. a sales
commission).
● Expense immediately any cost that would have been incurred either way (e.g. a salesperson's
basic salary — you pay that whether or not the deal closes).
B. Costs TO FULFIL a contract
● Step 1: first check if another standard already covers it (IAS 2 Inventories, IAS 16 PPE, IAS 38
Intangible Assets, etc.). If yes — use THAT standard, not IFRS 15.
● Only if no other standard applies, capitalise the cost under IFRS 15 if ALL 3 of the following hold
[IFRS 15.95]:
○ Relates directly to the contract;
○ Generates or enhances resources that will be used to satisfy performance obligations (POs) in
future; and
○ Is expected to be recovered.
● Subsequent measurement: amortise the resulting asset systematically, consistent with the
transfer of goods/services to the customer (it's subject to impairment testing too, though that's
not examined at Acc4 level).
● Abnormal costs (wastage, rework, etc.) are always expensed as incurred — never capitalised.
Worked Example — Data-backup service contract
An entity signs a 3-year contract to safeguard an offsite backup of a customer's data, incurring these
costs to fulfil it:
Cost item Amount (R)
Commission paid to employee for securing the contract 10 000
Set-up costs (design & testing) 50 000
New server 200 000
Software purchased & integrated with customer's systems 100 000
TOTAL 360 000
✅ SOLUTION — Classifying each cost
Commission (R10 000) → IFRS 15, incremental cost of OBTAINING the contract → capitalise and
amortise over the 3-year period (this cost would have been avoided if the deal hadn't closed).
Set-up costs (R50 000) → IFRS 15, cost to FULFIL the contract (relates directly, builds a resource
used to satisfy the PO, recoverable) → capitalise and amortise over 3 years.
New server (R200 000) → this is a physical asset covered by another standard → apply IAS 16:
capitalise and depreciate over its USEFUL LIFE (not necessarily 3 years — the server might last
longer).
Software (R100 000) → an intangible asset covered by another standard → apply IAS 38: capitalise
and amortise over its useful life.
The lesson: don't dump every contract-related cost into one IFRS 15 bucket. Ask 'is there a more
specific standard for this type of asset?' FIRST.
2. Principal vs Agent (Step 2 — Identifying Performance Obligations)
This test asks a question that must be answered BEFORE goods/services (G/S) transfer to the
customer: who actually controls the G/S right up until that point? Your answer changes how much
revenue you're allowed to recognise.
Principal Agent
Role Provides the G/S itself Arranges for another party to
provide the G/S (the 'middle
man')
Revenue GROSS (full sales value) NET (only the commission/fee
recognised earned)
Indicators you're the PRINCIPAL [IFRS 15.B37-B37A]
● Primary responsibility for fulfilling the promise (e.g. handling complaints/quality issues yourself).
● Inventory risk — you hold the risk before/after the customer's order, or on return.
● Discretion in establishing prices for the G/S.
If most of these point to 'no' and you simply earn a set commission, you're most likely an AGENT.
Worked Example 1 — AirHotel (online marketplace)
AirHotel operates an online booking marketplace; it owns none of the listed properties and doesn't
host anything. It takes a 10% margin/broker fee per booking. Complaints get logged with AirHotel, but
the HOST is ultimately responsible for any refund.
Does AirHotel have: Principal indicator Agent indicator
Primary responsibility for the G/S? No
Inventory risk? Not really
Discretion in setting prices? Not clear
Only earns a predetermined commission? Yes
✅ SOLUTION — AirHotel conclusion
AirHotel is an AGENT.
Accounting: measure revenue at the NET amount — i.e. only the 10% commission/fee, not the full
value of each booking.
Worked Example 2 — BigMart (retailer)
A manufacturer sells goods to BigMart for R80/unit. BigMart has the right to RETURN defective units
to the manufacturer, sets its own price (sells at R100, a 25% margin it chooses itself), takes payment
directly from customers, and handles any repair/replacement of defective goods itself.
Does BigMart have: Principal indicator Agent indicator
Primary responsibility for G/S? Yes
Inventory risk? Yes
Discretion in establishing prices? Yes
✅ SOLUTION — BigMart conclusion
BigMart is a PRINCIPAL.
Accounting: BigMart recognises the full R100 GROSS as its own revenue (and R80 as cost of sales)
— it isn't just passing a middle-man fee through.
3. Warranties (Step 2, IFRS 15.B28-B33)
Two different animals here — the test is simple: did the customer have a CHOICE to buy this
warranty, or does it come standard with every unit sold?
Type What it is Separate How measured
PO?
1. Assurance-type Standard promise the product NO IAS 37 — as a
works as intended — comes with provision
every sale, no customer choice
2. Service-type An extra warranty the customer YES — Revenue
chooses & pays extra for (e.g. distinct PO recognised over
extended cover) time as the
warranty
service is
provided
Why does 'choice' matter so much? Because a PO only exists where the customer is buying something
distinct and separately identifiable — a standard, non-optional guarantee is just part of making sure
the ORIGINAL sale was a fair-value exchange, not a second promise.
Warranty Example 1 — Zoo (Pty) Ltd (assurance-type)
Zoo sells 1 000 printers at R2 000 each (cost R1 500 each), each with a standard 1-year warranty. Zoo
expects 5% of printers to be returned for repair during the warranty period, at an average repair cost
of R500 each.
✅ SOLUTION — Zoo — journal entries
Dr Bank 2 000 000 / Cr Revenue 2 000 000 (1 000 printers × R2 000)
Dr Cost of sales 1 500 000 / Cr Inventory 1 500 000
Dr Warranty expense (P/L) 25 000 / Cr Warranty provision 25 000
(R500 expected repair cost × 50 printers expected to need repair, i.e. 5% of 1 000) — this is a
straightforward IAS 37 provision for the most likely cost outcome, no separate revenue is
deferred.
Warranty Example 2 — Intel Connection (Pty) Ltd (service-type)
Intel Connection sells 100 laptops at R2 000 each. 5 customers additionally CHOOSE to pay R300 each
for an extended 3-year warranty at the point of sale.
✅ SOLUTION — Intel Connection — treatment
There are now 2 performance obligations: (1) sale of the laptop, and (2) providing the warranty
service.
The customer benefits from the warranty as the service is provided over the 3 years — so this is
revenue recognised OVER TIME (refer to Step 5's over-time criteria).
On day 1: record the R300 × 5 = R1 500 received as a LIABILITY (deferred revenue), not immediate
revenue.
Recognise it as revenue over the 3 years using an appropriate input or output method, disclosed
separately as a distinct type of revenue: 'Warranty services'.
4. Options for Additional Goods — Customer Loyalty Programmes (Step 2 & 4, IFRS
15.B39-B43)
Think Pick n Pay Smart Shopper, eBucks, airline miles. The company isn't just selling today's basket of
goods — it may also be selling the CUSTOMER'S RIGHT to a future discount.
● This becomes an extra performance obligation ONLY IF the option gives the customer a
MATERIAL RIGHT — i.e. a discount/benefit they wouldn't get without this transaction.
● If it IS material, the customer is, in substance, paying for that future right in advance, on the date
of the original sale.
How to split the transaction price
● Allocate part of the transaction price to the points/credits based on their relative STAND-ALONE
SELLING PRICE.
● Estimate that stand-alone value using the discount the customer would get by exercising the
option, adjusted for: (1) any discount available WITHOUT needing the points, and (2) the
likelihood the points actually get redeemed.
Worked Example — Value Ltd Loyalty Points
Value Ltd gives 1 loyalty point per R10 spent; each point = R1 discount on future purchases. In the
period, customers buy R100 000 of goods and earn 10 000 points. Value Ltd expects 9 500 of these
points will eventually be redeemed, and estimates the stand-alone value of the points at R0.95/point
(i.e. R9 500 total) based on that redemption likelihood. The points ARE a material right (customer
wouldn't get this without buying today), so they're a separate PO. By the end of the first period, 4 500
of the 9 500 expected points have been redeemed.
✅ SOLUTION — Value Ltd — allocation & journals
Step 1 — allocate the R100 000 transaction price between the product and the points, based on
relative stand-alone selling price:
Product: R100 000 × (R100 000 ÷ R109 500) = R91 324
Points: R100 000 × (R9 500 ÷ R109 500) = R8 676
Initial journal: Dr Receivable 100 000 / Cr Revenue 91 324 / Cr Loyalty liability 8 676
After year 1 — recognise revenue for the PROPORTION of points actually redeemed so far (4 500
out of the 9 500 total expected):
Dr Loyalty liability 4 110 [8 676 × (4 500 ÷ 9 500)] / Cr Revenue 4 110
The remaining R4 566 of loyalty liability stays deferred until more points are redeemed (or expire).
5. Significant Financing Component (Step 3 — Determining the Transaction Price)
Objective: adjust the promised consideration for the time value of money (TVM) so revenue reflects
the CASH price the customer would have paid on the date the G/S actually transferred — not the
inflated instalment total.
● Arises when payment timing and the transfer of G/S happen at meaningfully different times (e.g.
instalment sale agreements).
● NOT a separate performance obligation — it's treated as a form of VARIABLE CONSIDERATION
adjustment.
● The test: is there a SIGNIFICANT benefit of financing to either the customer or the entity?
● Practical expedient: you don't need to test/adjust for this if payment is expected within 1 year of
transfer.
What to weigh up when assessing significance
● The difference (if any) between the promised consideration and the CASH selling price of the same
G/S; and
● The combined effect of (a) how long between payment and transfer of G/S, and (b) prevailing
market interest rates.
● Discount rate used: the rate that would apply to a separate financing transaction between this
entity and this customer at contract inception (i.e. a market-related rate for that customer's credit
risk) — not necessarily the entity's own borrowing rate.
Worked Example 1 — Mr. Gadget (Pty) Ltd (customer pays LATE — entity finances the customer)
Mr. Gadget sells 100 tablets at the start of the year for a cash price of R4 200/tablet, but structures
payment as R200/month over 24 months. The market interest rate for similar agreements is 12% p.a.
✅ SOLUTION — Mr Gadget — solution
Step 1 — find the PV of the payment stream: PMT = 200, N = 24, i = 12%/12 per month, FV = 0 →
Comp PV = 4 248.67
The total nominal consideration (200 × 24 = R4 800) is significantly more than the cash/stand-
alone selling price (R4 200) — confirms a significant financing component exists.
Initial journal: Dr Receivable 4 248.67 / Cr Revenue 4 248.67 (revenue is recorded at the
DISCOUNTED cash-equivalent price, not the full R4 800)
After year 1 (illustrative, first instalments received): Dr Bank 2 400 / Cr Receivable 1 997.66 / Cr
Finance Revenue 402.34 — the difference between cash collected and receivable settled is
unwound as finance income over the credit period.
Worked Example 2 — Bridge construction (customer pays LATE, but transfer happens LATER too)
An entity starts building a bridge on 1 Jan 2019. The bridge takes 2 years to build and control transfers
to the customer only at completion (31 Dec 2020). Payment terms: R2 000 000 on transfer of legal title
at the end of the project, plus R1 000 000 after a further 2 years of use. Market rate for the entity is
10%; for the customer it's 15% (use simple interest for ease, 1x per year).
✅ SOLUTION — Bridge — journal entries
2020 (revenue is recognised only once CONTROL transfers, i.e. at completion):
Dr Contract debtor (SFP) 826 446 / Dr Cash (SFP) 2 000 000 / Cr Revenue (P&L) 2 826 446
(Revenue = R2 million cash received on transfer + PV of the deferred R1 million, discounted at 10%
for 2 years with no interim payment)
2021: Dr Contract debtor 82 647 / Cr Finance income 82 647 (10% × R826 446 PV carrying amount
for the year)
2022: Dr Contract debtor 90 909 / Cr Finance income 90 909 (10% × the new R909 091 carrying
amount)
Dr Cash 1 000 000 / Cr Contract debtor 1 000 000 (final contractual payment settles the debtor)
Note: the entity's OWN discount rate (10%) is used here because it's the entity providing credit to
the customer (a receivable) — you use the rate that would apply to a financing transaction
between these two specific parties.
The flip side — when the CUSTOMER finances the ENTITY
Sometimes the customer pays in advance (a deposit) and the entity only transfers the G/S later. In
substance, the customer is financing the entity — so the entity incurs (not earns) notional finance
costs on the advance, which are recognised to profit or loss. When control eventually transfers:
Revenue = cash consideration received + finance costs recognised on the advance.
6. Sale With Right of Return (Step 3 — Variable Consideration)
A very common retail scenario: the customer can return goods for a full/partial refund, a credit note,
or an exchange. IFRS 15 wants you to recognise revenue only for what you genuinely expect to keep as
a sale.
● Revenue — recognise only to the extent of the products you expect will NOT be returned (i.e.
after applying the variable-consideration constraint).
● A refund liability — for the amount you expect to have to refund.
● An asset (with a corresponding reduction to cost of sales) — for your right to recover the returned
goods.
● The obligation to simply 'stand ready' to accept returns is NOT itself a separate performance
obligation.
Worked Example — Cotton Inc.
Cotton Inc. sells 100 dresses in October at R250 each (cost R200 each). It expects 15 dresses will be
returned for a full refund under its ordinary change-of-mind returns policy (the dresses are not
defective).
✅ SOLUTION — Cotton Inc. — journals
On recognising the sale (85 dresses expected to be kept, 15 expected to be returned):
Dr Bank 25 000 / Cr Revenue 21 250 (85 × R250) / Cr Refund liability 3 750 (15 × R250)
Recording cost of sale / inventory movement — two equivalent approaches:
Approach 1: Dr Cost of sales 17 000 (85 × R200) / Dr Right-of-return asset 3 000 (15 × R200) / Cr
Inventory 20 000 (100 × R200)
Approach 2: Dr Cost of sales 20 000 / Cr Inventory 20 000, then Dr Right-of-return asset 3 000 / Cr
Cost of sales 3 000 (same net result)
7. Allocation of a Discount (Step 4 — Allocating the Transaction Price)
Logic: Sum of all stand-alone selling prices − Transaction price = the discount. The default rule is to
spread that discount PROPORTIONALLY across every performance obligation in the contract.
Exception — allocating the discount to specific PO's only
You may allocate the ENTIRE discount to just one/some PO's if there's OBSERVABLE EVIDENCE it
belongs there. All 3 criteria below must be met [IFRS 15.82]:
● The entity regularly sells each item on a stand-alone basis;
● The entity also regularly sells some of those items together as a bundle, at a discount; and
● The discount on that regular bundle is substantially the SAME as the discount in this specific
contract.
Apply this specific-allocation rule BEFORE resorting to the residual approach for estimating any stand-
alone selling prices you don't directly observe.
Worked Example — Products A, B & C
Product Stand-alone selling price (R)
A 40
B 55
C 45
Total 140
The entity regularly sells B & C together for R60. It now contracts to sell A, B and C together for R100 (a
R40 discount vs the R140 sum of stand-alone prices), with each PO satisfied at a different point in time.
✅ SOLUTION — Allocating the R40 discount
Because the entity regularly sells B+C together for R60 (vs R100 stand-alone for the two combined)
and A always at its full R40 stand-alone price, there's observable evidence the ENTIRE discount
relates to B and C only — not to A.
Split the R60 allocated to B+C proportionally between them:
Product B: R55 ÷ R100 × R60 = R33
Product C: R45 ÷ R100 × R60 = R27
Final allocation: Product A = R40 (full price, no discount) | Product B = R33 | Product C = R27 |
Total = R100 ✓
8. Bill-and-Hold Arrangements (Step 5 — Timing of Recognition, IFRS 15.B79-B81)
A bill-and-hold contract is where the entity bills the customer, but the customer chooses to only take
physical possession of the asset on a later date. The core question: has CONTROL actually transferred
yet, even though the goods are still sitting in the seller's warehouse?
Start from the normal control indicators (par 38) for point-in-time transfer, then ALSO check all 4 of
these additional requirements [par B81] before you may recognise revenue early:
● 1. Substantive reason — the reason for holding the goods must be substantive (e.g. the customer
specifically requested it), not just a convenient excuse to book revenue early.
● 2. Separately identified — the product must be identified separately as belonging to that specific
customer.
● 3. Ready for physical transfer — the product must currently be ready to be physically handed
over — right now, not 'ready in a few weeks'.
● 4. No ability to redirect — the entity cannot have the practical ability to use the product itself or
direct it to a different customer.
If even one of these fails, control has NOT transferred — no revenue yet, no matter how firm the sale
agreement looks.
Worked Example — Braai4life (finishing off the slide's open question)
Braai4life (31 March year-end) ran a lockdown marketing campaign: pay online before 31 March 2020
to lock in a discounted price of R2 000/Weber braai. Terms: delivery only happens after the hard
lockdown ends (estimated end of April); Braai4life may not sell these units to anyone else unless the
customer cancels. By 31 March 2020, 1 520 units had been sold under the campaign.
✅ SOLUTION — Working through the 4 criteria
1. Substantive reason? YES — a nationwide lockdown genuinely prevents delivery; this isn't an
artificial excuse.
2. Separately identified as the customer's? Likely YES if Braai4life has allocated/ring-fenced specific
units against each paid order.
3. Ready for physical transfer RIGHT NOW? This is the sticking point — the goods cannot physically
be delivered at all during lockdown, and delivery is only 'estimated' for end of April. If the units
aren't currently packaged/positioned for immediate handover the moment restrictions allow, this
criterion is NOT clearly met at 31 March.
4. No ability to redirect elsewhere? YES — Braai4life has given up the right to sell to anyone else
unless the customer cancels.
CONCLUSION: Because criterion 3 is doubtful at year-end (the goods are not demonstrably ready
for immediate physical transfer — delivery is dependent on an uncertain future event, the lifting
of lockdown), Braai4life should NOT yet recognise revenue for the 1 520 units at 31 March 2020.
Instead, recognise a contract liability (deferred revenue) for cash received, and only recognise
revenue once the braais are actually ready for and transferred to customers (expected end of
April, in the NEXT financial year).
9. Pulling It All Together — Where Each Topic Sits in the 5-Step Model
Use this map to instantly know which 'lens' to apply when a new fact pattern appears in a question:
Step Topic(s) from this lecture Core question
Before Step Contract costs Should this cost be capitalised
1 (obtain/fulfil) or expensed, and under
which standard?
Step 2 Principal vs Agent; Is there a genuinely separate promise
Warranties; Loyalty points here, and who controls the G/S before
transfer?
Step 3 Significant financing Does the AMOUNT of consideration need
component; Sale with right of adjusting for time value of money or
return expected returns?
Step 4 Allocation of a discount How do we split the (adjusted) transaction
price across multiple PO's?
Step 5 Bill-and-hold arrangements Has control actually transferred yet, so
revenue may be recognised?
The one habit that solves most exam questions here
● Read the scenario and ask: 'Is this a cost question, a WHO question (principal/agent), a HOW
MUCH question (financing/returns/discount), or a WHEN question (bill-and-hold, warranties over
time)?'
● Once you know which of the 4 buckets you're in, the specific tests above tell you exactly what to
check.
● Always finish by asking: does another IFRS standard already deal with this more specifically than
IFRS 15 (e.g. IAS 2, IAS 16, IAS 37, IAS 38)? If yes, defer to it.