Skip to content

Who We Help · Roofing · Tax Services

Roofing contractor tax: the return is won or lost at year-end cutoff

A roofing company’s T2 is decided in the last two weeks of the fiscal year: which half-finished jobs count as income, which deposits are still unearned, and which pallets of shingles in the yard are inventory rather than an expense. All three questions have exact answers. We close roofing year-ends so the answers are schedules, not arguments — and so you are not paying tax on a roof you have not finished.

By the AnalytIQ Accounting team · Last reviewed: August 12, 2026

Roofer installing shingles on a steep residential roof

Jobs that straddle year-end: what counts as income now

Income follows the work, not the cash. A deposit taken in December for a tear-off starting in January is not income yet; a job finished in December but invoiced in January is. Multi-week commercial jobs in progress at year-end need a work-in-progress position — the value of work performed to date comes into income even if the progress billing has not gone out. Most roofing WIP disputes are really bookkeeping gaps: no job costing, so nobody can say what stage any roof was at on the last day of the year.

Status at year-endTax treatment
Deposit received, work not startedNot income yet; the unearned amount can support a reserve until the work is done
Job partly completeWork performed to date is income; job costing sets the number
Job complete, not yet invoicedIncome this year — invoicing in January does not defer it
Statutory holdback outstanding on a commercial jobStays out of income until it legally becomes receivable

Shingles in the yard are inventory, not a deduction

The December materials buy is the most common self-inflicted wound in roofing tax. Bundles, underlayment, ice-and-water shield, and coil nails still on hand at year-end are inventory — valued at the lower of cost and market and sitting on the balance sheet, not the expense line. Stocking up before a supplier price increase can be a smart business move, but it does not create a deduction until the material goes on a roof. We take a real count at year-end, because an inventory figure invented at tax time is the first thing a CRA reviewer recalculates.

The same logic runs in your favour on wasted material: damaged bundles, mis-ordered colour lots, and tear-off overruns written off at year-end are deductible once they are actually scrapped and documented. Material cost has been volatile enough — our cross-border guide for roofing contractors covers how US shingle and steel tariffs feed that number — that a defensible count both ways is worth real money.

Holdbacks and T5018s on the commercial side

Commercial and new-build work brings the Construction Act with it: the 10% the GC retains from your draws is excluded from income until the lien period ends and the amount becomes legally receivable, and the HST on a separately identified holdback is deferred with it. Track holdback receivables in their own account per contract, or the deferral disappears into ordinary receivables and you pay a year early.

Roofing is squarely construction, so payments to your subcontractors — the second crew you bring in for a big tear-off, the flat-roof specialist — belong on T5018 slips, due within six months of your reporting period, reported with GST/HST included. We also confirm each sub's GST/HST number is live before ITCs are claimed, and we keep the sub-versus-employee line honest: a crew that works only for you, on your trucks and your ladders, is a payroll file waiting to be reassessed.

A T2 shaped for a seasonal trade

Pick a fiscal year-end that lands after the fall rush — late November or December for most roofing companies — so the year closes when the last big installs are done and the WIP list is short. The T2 is due six months later and the balance owing two to three months after year-end, which places both in the slow season when there is time to plan rather than react.

Two quieter issues round out the roofing file. A reserve set aside for future workmanship warranty claims is not deductible — the repair is deducted in the year a crew actually goes back up the ladder, so warranty exposure is a pricing problem, not a tax shelter. And insurance-restoration work follows the same income rule as everything else: the job is income as the work is performed, whether the adjuster, the insurer, or the homeowner pays, and a supplement approval that drags into January does not move the original scope into next year.

Inside the year, the planning levers are ordinary but effective: instalments sized from the actual booking calendar once tax payable passes $3,000, equipment purchases timed so cranes, trailers, and compressors are available for use before the year closes, and a salary-dividend mix that smooths a paycheque out of a business that earns eight months of the year. The small business deduction holds the first $500,000 of active profit to 12.2% combined in Ontario — retained through winter, that is what carries payroll to April.

Common questions.

I bought a trailer-load of shingles in December. Can I deduct it this year?

Only what is installed by year-end. Material still on hand is inventory at the lower of cost and market, and it becomes a deduction as it goes onto roofs. A year-end count is what makes the number defensible.

A job was finished December 28 but I invoiced January 5. Which year is it taxed in?

The year the work was completed. Income follows the work performed, so delaying the invoice does not defer the tax — though a statutory holdback on that job stays out of income until it legally becomes receivable.

Do roofing companies file T5018 slips for subcontractors?

Yes. Roofing is a construction activity, so if it is your primary source of business income you report subcontractor payments, GST/HST included, on T5018 slips due within six months of your chosen reporting period.

Related reading

A year-end that matches the last nail, not the calendar.

Book a consultation and get a plain answer on exactly what applies to you.

Client Reviews

Get a free quote

Request a free quote.

Tell us a little about your business and our team will respond within one business day.

Contact details

How can we help?

Type of enquiry select all that apply

Project information