Skip to content
Vert

· 6 min read

Returns at Month-End: Booking the Refund Liability Under AASB 15

Shopify records a return on the day it is refunded, not the day of the sale. How to estimate returns still to come, book the refund liability and return asset, and true it up each month.

Every brand with a returns window closes each month with some sales that have not finished happening. The parcel has shipped, the revenue is in the ledger, and some of those customers will send the goods back in the next few weeks. Your Shopify reports will not show those returns until they are processed, so the month you close looks a little better than it really was.

For most of the year the effect is small and roughly evens out. In a peak month it does not. Black Friday sales land in November and many of the returns land in December. This guide covers what the accounting standard asks for, how to estimate the number, and the two-line journal that keeps it right at each month-end.

Why the ledger runs ahead of returns

Shopify's finances report documentation defines sales reversals as "the value of goods returned by a customer", and records them as a negative number on the date the return was processed. Net sales for a return fall on the refund date, not the original order date.

That is the right way for a sales report to behave, and it is what flows through your payouts and into Xero. But it means October's revenue includes sales that will be reversed in November, and nothing in the October numbers reflects that.

What AASB 15 says

AASB 15 deals with this in paragraph 55 and in paragraphs B20 to B27 on sales with a right of return. Paragraph 55 says an entity shall recognise a refund liability if it receives consideration from a customer and expects to refund some or all of it. The liability is measured at the consideration the entity does not expect to be entitled to, and it is updated at the end of each reporting period.

Paragraph B21 sets out three things to recognise when goods are sold with a right of return:

  • revenue for the transferred products in the amount of consideration the entity expects to be entitled to, so no revenue for products expected to come back;
  • a refund liability for the amount expected to be refunded;
  • an asset, with a matching adjustment to cost of sales, for the right to recover the products from customers.

Paragraph B25 measures that asset at the former carrying amount of the inventory less the expected costs of recovering it, including any fall in the value of the returned goods. The asset is presented separately from the refund liability, not netted against it.

Two exclusions matter for e-commerce. Under B26, an exchange for the same type, quality, condition and price, such as a different size or colour, is not a return. Under B27, a faulty product swapped for a working one is assessed under the warranty guidance instead.

Pitcher Partners works through an example based on Example 22 in IFRS 15: 100 items sold at $100 with a cost of $60 each, three expected back. Revenue is $9,700, the refund liability $300, cost of sales $5,820 and the return asset $180.

Estimating the number

The estimate is variable consideration, so the constraint applies. Under paragraph 56, revenue is included only to the extent it is highly probable that a significant reversal will not occur. The Pitcher Partners example notes the estimate was supportable because the return period was short (30 days) and the company had relevant experience.

For a Shopify brand, that experience is in your own order history. A practical way to build it:

  1. Take several past months of sales and, for each, the returns later processed against those orders.
  2. Work out what share of each month's sales came back in total, and what share came back after month-end.
  3. Check the pattern by product category if return rates differ widely, for example apparel against consumables.
  4. Use the after-month-end share as your rate, applied to the sales still inside the returns window at the close.

The second step is the one people skip. Returns processed before month-end are already in your sales reversals. The liability is only for the returns still to come.

If you are launching a new range with no history, the constraint points towards a more cautious estimate until the data exists.

A worked example

A brand sells $400,000 of goods in October, excluding GST, with a 30-day returns window. Its history shows about 6% of sales are returned for refund, and about half of those returns are processed after the month of sale. Cost of goods is 40% of the selling price. The brand expects to pay return shipping and to write off some returned stock, which it estimates at $600 for this batch.

  • Expected returns after 31 October
    Working
    $400,000 × 3%
    Amount
    $12,000
  • Carrying amount of those goods
    Working
    $12,000 × 40%
    Amount
    $4,800
  • Less expected recovery costs
    Working
    Estimate
    Amount
    ($600)
  • Right to recover returned goods
    Working
    $4,800 − $600
    Amount
    $4,200

The journal at 31 October, if this is the first time the balance is booked:

  • Sales returns (contra-revenue)
    Debit
    $12,000
    Credit
  • Refund liability
    Debit
    Credit
    $12,000
  • Right to recover returned goods
    Debit
    $4,200
    Credit
  • Cost of sales
    Debit
    Credit
    $4,200

Revenue falls by $12,000 and cost of sales by $4,200, so October's gross profit falls by $7,800. That $7,800 is the margin on sales the brand does not expect to keep, plus the $600 it expects to spend getting the goods back.

Truing up each month

You do not need to match individual refunds against the liability. The actual refunds keep flowing through Shopify, your payouts and your clearing account as they do now. At each month-end you recalculate the balance the liability should be, and post the difference.

Say November sales are $900,000 at the same rate. The required liability is $27,000 and the asset $10,800 less expected recovery costs. With $12,000 already on the balance sheet, the November journal is a $15,000 increase to the liability, and the asset moves the same way. When December's sales fall back and November's returns are processed, the December true-up releases part of the balance back to revenue.

This is the effect worth seeing in your peak months. Without the liability, November carries all of its revenue and December carries November's refunds. With it, each month shows the sales it expects to keep.

GST and the provision

The refund liability is an estimate of refunds that have not happened yet. GST adjustments follow actual returns and refunds: as Tax Window's summary of the GST adjustment rules puts it, you include the adjustment "in the BAS period when it becomes known, not when the original transaction occurred." Code the provision journal so it carries no GST and does not flow to your activity statement, and let the GST on real refunds come through your sales data as it does now. Confirm the coding with your tax agent.

If a return is refunded as store credit rather than cash, the obligation moves into your store credit or gift card balance. We covered that liability in Shopify gift cards at month-end.

Bringing it into your close

Whether you book this monthly or only at half-year and year-end is a materiality judgement for you and your accountant. For a brand with a meaningful returns rate and a seasonal peak, a monthly true-up is a short addition to the checklist:

  1. Refresh the return rate from recent order history.
  2. Apply it to the sales still inside the returns window.
  3. Calculate the required liability and the asset, net of recovery costs.
  4. Post the difference from last month, with the working attached.
  5. Review the balance against the returns that actually arrived since the last close.

The last step is the control. If the liability you booked at 31 October was $12,000 and November processed $19,000 of returns against October orders, the rate needs updating before you close November.

Every figure in that checklist comes from data you already hold: orders, refunds and inventory cost. The estimate only holds up if the refunds underneath it are booked correctly, which is the payout work Vert does: each payout decomposed into sales, fees and refunds, proven to the cent. If that would help your close, join the pilot.

All posts

Agents that radically accelerate your close

Vert reconciles accounts, drafts the journals and explains every variance — with your approval and a complete audit trail.