Canada · Free chart of accounts template

Ontario Construction Chart of Accounts for QuickBooks (Free)

Free QuickBooks Online chart of accounts for Ontario contractors: holdbacks, subcontractor accounts and HST coding, with import CSV.

By ExpenseFlow team
· 6 July 2026

Free download · no email required

CSV listing each account with its default QuickBooks code and the alternatives crews actually hit. Import file below.

Download chart of accounts (CSV)

Ontario construction bookkeeping has three habits that a stock QuickBooks chart does not anticipate: money retained on both sides of every progress billing, a subcontractor base that mixes registered firms with small suppliers, and job costs that need labour, materials, and equipment kept apart. This chart handles all three, mapped to QuickBooks Online’s Ontario tax codes.

The construction-specific structure

  • Holdbacks receivable and holdbacks payable track the Construction Act retention separately from ordinary AR and AP. They code Out of scope: the retained slice is not settled consideration yet, and the HST on it generally becomes payable when the holdback releases, a timing detail that only stays visible if holdbacks have their own accounts.
  • Subcontractor labour sits in cost of sales with HST ON as the default. The alternative case matters as much: small suppliers under the registration threshold bill without tax, and their invoices carry no credit for you. Registered or not is the first question for every new sub, both for input tax credits and because CRA’s T5018 regime reports subcontractor payments annually.
  • Materials and equipment and tool rentals get their own direct-cost accounts at HST ON with full ITCs, keeping quoting categories and books aligned.
  • Safety gear and PPE is claimable at 13%, while permits and inspection fees code Out of scope because municipal charges are not supplies.

Everything a general Ontario business needs is still underneath: the meals account with its 50% ITC note for crew lunches, exempt insurance carrying Ontario’s separate 8% RST as an unrecoverable cost, payroll and source deductions out of scope.

Away jobs and the province question

GST/HST follows where construction work is physically performed. A Windsor contractor working a Detroit-adjacent Ontario site charges 13%; the same crew on a Manitoba job is charging under Manitoba’s rules for that contract, and materials delivered there carry that province’s taxes. QuickBooks ships every province’s codes in its built-in list, so an away job means enabling the right code once under Taxes, not improvising. The readable file marks revenue, materials, and travel as the accounts where this shows up.

Setup order that avoids rework

  1. Turn on sales tax in QuickBooks first so HST ON, Z, E, and Out of scope exist.
  2. Import the account file (Settings, Import data, Chart of accounts) and map the four columns.
  3. Walk the readable CSV with whoever codes bills; the subcontractor and holdback notes are the ones that prevent expensive habits.
  4. Reconcile holdback balances to contract terms monthly, and total the subcontractor account when T5018 season arrives.

For job costing, lean on QuickBooks projects rather than multiplying accounts. Assign each progress invoice, sub bill, and materials purchase to its project and the profitability report assembles itself, while this chart stays the stable tax layer underneath. Progress invoicing deserves the same discipline: bill from the contract schedule, let the holdback percentage reduce the receivable into its dedicated account, and the books will match what the site superintendent believes was billed, which is the reconciliation that actually matters in construction.

Site spending produces paper at a pace office businesses never see: lumber yard bills, fuel, tool rentals, sub invoices. Dext keeps repeat merchants coded consistently. ExpenseFlow reads each document, applies HST ON or the no-tax treatment based on the actual supplier and supply, respects the away-province cases, and posts the coded bill into QuickBooks against these accounts. Hubdoc stores the source documents against the entries for the audit trail.

Running Xero on site instead? The same structure with Xero’s rate names and import format is at Ontario construction chart of accounts for Xero. The code list itself is the Ontario QuickBooks sales tax reference.

Questions, answered

Common questions

Where do holdbacks live in this chart?

In two dedicated accounts: an other-current-asset for holdbacks your customers retain from your billings, and an other-current-liability for amounts you retain from subcontractors. Ontario's Construction Act makes retention routine on progress billings, and burying it in accounts receivable hides both your real cash position and the HST timing on releases.

What code goes on a subcontractor bill in QuickBooks?

HST ON when the sub is GST/HST-registered, which puts the 13% back in your pocket as an input tax credit. Out of scope territory does not apply here; a bill from an unregistered small supplier simply has no tax on it, so the line codes with no HST and there is no credit to claim. The account note reminds you to verify registration for new subs.

Does this help with CRA's T5018 filings?

It sets up the bookkeeping half. T5018 slips report total payments to construction subcontractors, so keeping every sub payment in the dedicated subcontractor labour account means the annual totals fall out of one report instead of a year-end hunt across categories.

The import file has no tax codes. Where do they come from?

QuickBooks' chart import only carries number, name, type, and detail type; sales tax codes are chosen per transaction from the codes QBO provisions for your province. The readable CSV in this download is the mapping: default code for each account plus the alternatives, which is what your team codes against.

Keep exploring

Stop filling in spreadsheets by hand

A template is a starting point. ExpenseFlow captures receipts, reads the tax automatically, and posts the cleaned record to Xero or QuickBooks Online, so the log keeps itself.

Start free trial