At year end, the single document a trades contractor is most likely to hand their bookkeeper late, or not at all, is the T5018. The payments are scattered across jobs, the totals sit in a different system than the invoices, and half the subcontractor business numbers were never written down. The filing itself is simple. Assembling the data is the part that eats a weekend.
This guide is for the contractor getting that data ready, and for the bookkeeper who actually files it. It covers what the CRA needs, the two numbers contractors most often get wrong, and how to export a clean T5018 dataset from Markup so the person filing can work from one sheet instead of a shoebox. For the underlying rule (who files, the deadline, the penalties), see the full T5018 filing guide and the T5018 glossary entry.
What the CRA actually needs per subcontractor
A T5018 filing is a T5018 Summary (one per reporting period) plus one T5018 slip per subcontractor you paid more than $500 during the period. Each slip carries a short list of fields, and three of them are where data gets lost:
- The subcontractor’s legal name and address. Not the name on the side of their truck, the legal name of the person or corporation you paid.
- Their SIN or Business Number. An individual gives a SIN; an incorporated sub gives a 9-digit BN (usually the RT or RC root). You cannot complete a slip without it, and chasing it down in July is far harder than asking on the first invoice.
- Box 22, total contract payments. This is the gross amount including GST/HST, even though the $500 reporting threshold is measured without tax. Accounting software set to report net amounts is the most common reason a slip is filed for the wrong figure.
Get those three right and the rest of the slip is administrative.
The two numbers contractors get wrong
The first is the threshold versus the reported amount. You owe a slip once base payments to a sub cross $500 for the period, before tax. But the number you write in Box 22 is the gross figure, tax included. So a sub paid $480 plus HST is over the reporting line on gross but under it on base, and the answer is: no slip required, because the $500 test is on the pre-tax base. A sub paid $700 plus 13% HST needs a slip showing $791 in Box 22.
The second is per-sub, per-period totalling. The threshold is cumulative across every job, not per invoice. Three $200 payments to the same drywaller is $600, and that needs a slip even though no single payment came close. This is exactly the arithmetic that breaks down when payments live in job folders instead of one running ledger per subcontractor.
How Markup assembles the dataset
Markup keeps a running year-to-date total per subcontractor across all jobs, in the period that matches the contractor’s fiscal year end (calendar-year by default). When a sub crosses $400 it shows a “near limit” flag, and at $500 it flags “File T5018”, so nothing is a surprise at year end.
From that data Markup produces two outputs, both already filtered to the subs over the $500 base threshold for the period:
- A T5018 CSV with three columns: the subcontractor name, their business number, and the total contract payments for Box 22 (gross, including GST/HST). One row per reportable sub, highest paid first. The file is named for the period year, for example t5018-2025.csv.
- A T5018 worksheet PDF: a summary page (payer details, slip count, total reported) followed by one prep slip per sub, each showing the recipient block, payer block, and the Box 22 amount.
Both are preparation documents. They put the right names against the right gross totals so whoever files is not re-deriving the numbers by hand. Markup does not transmit anything to the CRA, by design, which is the next section.
Exporting it, or inviting your bookkeeper directly
There are two ways to get the data to the person filing.
Download and send. Export the CSV (or the worksheet PDF) and email it to your bookkeeper. They open one file with every reportable sub, the business numbers, and the gross totals already calculated.
Invite them to a read-only seat. A Plus contractor can invite their accountant or bookkeeper to a read-only view of their account. From there the accountant sees invoices, expenses, subcontractor payments, and the T5018 page directly, and can pick the reporting year (the current period and the two prior). For a sub on a non-calendar fiscal year, the period scopes to their fiscal year end automatically, so a June year-end client shows July-to-June, not January-to-December. The accountant can download the same CSV and PDF without the contractor in the loop. They cannot edit anything, and they never see billing or Stripe data.
From the export to a filed return
The CSV and worksheet are the inputs; the actual filing happens on the CRA’s side. Two routes, depending on slip count:
- 5 or fewer slips:key them into the CRA’s free Web Forms application, using the export as your source sheet, or mail paper slips. Either is acceptable at this volume.
- 6 or more slips: electronic filing is mandatory. Import the figures into payroll or tax software that produces the CRA XML, then submit through Internet File Transfer. The Markup CSV is built to make that keying or import step fast, not to replace the software that generates the XML.
For calendar-year filers the deadline is June 30; for a non-calendar fiscal year it is six months after the year end. You can check your exact date on the CRA deadline calendar.
What Markup does not do
Markup is the tracking and prep layer, not a transmitter. It does not file the T5018 with the CRA, it does not validate business numbers against CRA records, and it does not decide whether a given payment is a T5018 (construction service) or a T4A (non-construction service). Those calls stay with the contractor and their accountant. The worksheet PDF says as much on its face: confirm the amounts against your own records before filing.
That separation is deliberate. The expensive part of the T5018 is having clean, period-correct, per-sub totals with the business numbers attached. The submission itself takes minutes once that exists.
Year-end handoff checklist
Whether you file yourself or hand it to a bookkeeper, this is the order of operations:
This article is for general information only and does not constitute tax or legal advice. T5018 rules are set by the Canada Revenue Agency. For advice specific to your situation, consult a CPA or tax professional licensed in your province.