AWRA OpsHub Search
Canada · North America

A Canadian sale can carry two taxes owed to two governments. Our invoice line has one column for tax.

Federal GST is 5% and that is the only rate on this page, because it is the only one that is the same everywhere. On top of it, some provinces levy their own sales tax separately, some merge theirs with the federal one into a single harmonised tax, and one province levies nothing of its own — so the tax on a line is two numbers, one merged number, or one federal number, depending on where the supply lands. That distinction is not cosmetic: where the two are separate they are owed to two different governments, filed on two different returns, and only one of them is generally recoverable by a registered buyer. Our invoice line has a single tax rate column with no tax type beside it, and a document stores one rate. So the total can be right while the split — the only thing either return actually needs — is not on the record.

The arithmetic is not the problem

Where the split goes, and why the total being right is not enough

The arithmetic is not the problem. Our tax engine computes each levy against its own base and returns the per-levy breakdown alongside a blended effective rate — built for Tunisia, where two levies compound and a naive sum is short by a measurable amount. So the total on a British Columbia invoice can be exactly right. What happens next is the problem: the document stores the blended rate and one tax type, and the breakdown is not written anywhere. It exists in memory during the calculation and then it is gone.

That is fine until something needs the components rather than the total, and two things always do. A federal return needs the federal figure alone; a provincial return needs the provincial figure alone. Reconstructing them means re-deriving from the organization's current settings — which is correct only if nothing has changed since, and rates and registrations are precisely the things that change. A document that records a total it cannot decompose is a document that is auditable today and not next year. The honest recommendation for a two-tax province is the same shape as our recommendation elsewhere: let the system that has to produce both returns own the tax figures, and let this one own the operational record they refer to.

Structures, deliberately without rates

Three structures, and what our document can hold

Structures, deliberately without rates: the arrangements are stable and the percentages have moved, including a provincial reduction in 2025, so a page that printed the table would be wrong sooner than it would be useful. Ask your accountant for the numbers and ask your software for the structure. The right column is a fact about our own schema on 5 August 2026.

Federal GST only

Alberta and the three territories

One tax, one government, one return. The 5% federal rate applies and nothing sits on top of it.

This is the case our schema fits exactly, and it is also the case our config assumes for the whole country.

Our document can express this

Harmonised — HST

Ontario and the Atlantic provinces

The federal and provincial components are merged into one tax, administered federally, filed on one return.

One rate on the line is structurally correct here. The problem is a different one: our config holds Canada as the 5% federal rate, so an organization here is provisioned at 5% and nothing revisits it. See below.

Our document can express this

GST plus a separate provincial tax

British Columbia, Saskatchewan, Manitoba and Quebec

Two taxes at once, two authorities, two returns. The federal component is generally recoverable by a registered buyer and the provincial one generally is not, which is why the split matters more than the total.

This is the finding. Our organization settings can hold both levies separately — that work was done for Tunisia — but the document stores a single blended rate and a single tax type. The two components are computed and then dropped.

Total right, split lost

A second finding, about our own configuration

A federal rate is not a national rate

Our country tax profile holds Canada as GST at 5%, federal only, with a note beside it saying provincial taxes are separate. That row is correct — 5% is the federal rate and it is right on its own terms. The trouble is what a one-row-per-country model does with it. An organization switching tax on has its default provisioned from that row, and the provisioning routine returns early forever once a default exists. So an Ontario business, where the harmonised rate is materially higher, is set up at 5% and nothing ever revisits the question.

We are stating this rather than quietly correcting the row, because there is no correct single number to replace it with. Five per cent is right in Alberta, wrong in Ontario, and incomplete in Vancouver, and any value we typed would be wrong in most of the country. The defect is the shape of the data, not the value in it — the same conclusion this file reached about the United States and Brazil, arrived at from a different direction. If you are a Canadian organization on our product today, check what your default rate says before you trust an invoice total.

What this costs in practice

Four things that go wrong while the total stays correct

One line, two tax authorities

In four provinces a single sale creates two obligations to two governments. Software that models tax as one number per line can produce the right total and cannot produce either return.

Recoverability differs between the two halves

The federal component is generally an input credit for a registered buyer and the provincial component generally is not. A blended figure has already thrown away the distinction that decides which is which.

Which province a supply belongs to is a determination

Place-of-supply rules decide it, and they turn on facts about delivery, the customer and the kind of supply. It is not a lookup on an address, and no operations system settles it for you.

Your default rate may have been set from the federal rate alone

A configuration model with one rate per country will provision the federal figure and stop. It is not obviously wrong on screen, and it is wrong in most of the country.

Scope, in three parts rather than two

What runs today, what we would build, and where we stop on purpose

Three columns, because "no" means two entirely different things and one list hides which is which. If you operate in Quebec, read the right-hand column first — the answer there is a boundary, and it is the one that should change your shortlist.

Scope in Canada, starting with the split we do not keep

Real today

  • Per-levy arithmetic, each levy against its own base, with the breakdown produced during calculation. This is the correct foundation and the reason the totals are right.
  • A tax rate on every sales line — invoices, quotations and POS lines — so a harmonised or federal-only province is expressed correctly.
  • Procurement end to end — requests, approvals, orders, receipts, three-way matching, supplier records and prequalification.
  • Inventory across locations with transfers, approvals, counts, adjustments and movement history per item.
  • Multi-currency with document-level exchange rates, with the Canadian dollar handled as an ordinary two-decimal base currency.
  • Machine-readable exports in CSV, XLSX and JSON, which is the practical handoff to whatever produces your returns.

Not built yet — and commissionable

  • The per-levy breakdown is not stored on the document. It is computed and discarded; the document keeps a blended rate and one tax type. For a two-tax province this is the gap that matters, and it is the smallest of the items on this list to fix — the numbers already exist at the moment of saving.
  • No tax type on the invoice line. A line carries a rate and no indication of which tax produced it, so even two lines could not carry two named taxes today.
  • No provincial jurisdiction on the customer or the sale. There is no province field. A region field exists on our rate table and is not used to select a rate, so the plumbing is half present and connected to nothing.
  • No CRA or provincial integration. No GST/HST return, no provincial return, no filing of any kind. Kenya's eTIMS transmission is a live tax-authority integration we built and maintain, so the shape of this work is known; none of it is Canadian work.
  • No Canadian payroll engine. No CPP or EI calculation, no T4 or ROE production, no provincial health levies or workers' compensation. Labour cost is attributed to projects and cost centres and that is all.
  • No Canadian payment rail integration. Interac, EFT and anything through Payments Canada are absent. Payments are recorded here and moved by your bank.

What we would decline, and would rather say now

  • Quebec is a boundary and not a backlog, and it is a language boundary rather than a tax one. The interface is English-only. In Quebec the language in which software is provided to staff and customers is a legal requirement rather than a preference, and a translation layer produced to win a deal would be worse than an honest no. If you operate in Quebec, this is a reason to choose something else, and we would rather say it in the first conversation than the fourth.
  • We will not tell you which province a supply belongs to. Place-of-supply determination turns on facts about delivery and the nature of the supply, and it is your adviser's judgement. We can hold the evidence; the conclusion is theirs.
  • We will not be your filing agent for federal or provincial returns, even with an integration built. The obligation is yours and software should make it answerable rather than absorb it.
  • We will not publish a per-province rate table. The rates move, a stale table on a vendor page is worse than no table, and the structures are the durable part — which is why the section above names arrangements and not percentages.
  • We have no Canadian reference customer. Nothing here is a case study, and if a Canadian reference matters to your decision, that is the most important sentence on the page.

The Canadian work has an unusually clear first step, and it is small. Persist the per-levy breakdown onto the document at the moment of saving — the figures are already computed, and storing them would make every two-tax invoice decomposable for the rest of its life. After that: a tax type on the line, a province on the customer and the sale, and a return assembled from the three. This is a case where the useful piece of work is a fraction of the size of the capability it unlocks, and we would rather scope that honestly than quote for a tax module. The precedent is real: eTIMS transmission and a maintained statutory payroll engine were both built to specification for one market and are part of the product now. Written specification, timeline and price agreed before anything starts, and no dates on a public page.

A note on the 5% figure, because a careful reader will spot the tension. Our country profile holds Canada as federal GST at 5% and we are not changing it, even though it will be the wrong default for most Canadian organizations. There is no single number that is right — 5% is correct in Alberta, understates Ontario, and is only half the story in Vancouver — so replacing it would move the error rather than remove it. The fix is a data model that can hold a province, which is on the commissionable list. Until then this paragraph is the mitigation, and if you are running our product in Canada today, check your default rate.

Operations in Canada

The operational problem in Canada is distance and season. Neither of them is a tax question.

The sections above are about a tax column, because that is the one place our schema does not fit this country. It is not where the work is. A Canadian operation of any size runs sites the road reaches for part of the year, equipment inspected under a provincial regime rather than a federal one, and trades whose certification expires on a date nobody is watching. None of that has a rate in it, and all of it is what the product was built for.

Inventory

Resupply windows, not reorder points

A site served by a winter road or a barge season cannot be restocked when the bin runs low — it has to be restocked before the window closes. Replenishment suggestions run off consumption against a lead time you set per location, so the order is triggered by the calendar you are actually working to.

Assets

Equipment inspected under whichever province it is standing in

Workplace safety and workers' compensation are provincial, so the same excavator is governed by a different regime depending on where it is parked. The asset register holds a named custodian, a location, a movement history and a verification rhythm — the record is the same shape whichever regime is asking, and the interval is yours to set.

HR records

Tickets and certifications with an expiry someone can see

Trade certification, licences and medicals are the operational constraint on a Canadian crew, and they are usually tracked as a laminated card in a truck. Custom fields on the employee record turn an expiry into a field you can filter and report on before it lapses rather than after.

Offline operations

Sites where the signal is the constraint

Counts, receipts, custody changes and job time captured with no connection and synced when one returns. This was built for East African connectivity and it transfers without modification to a camp north of sixty — the problem is identical and so is the answer.

Projects

Jobs that cross provinces and cost centres

Labour and purchases attributed to a job at the point of commitment, with a budget check before the spend rather than a variance report after it. Where a job spans provinces, the attribution is to the job and the cost centre, which is the split your project manager argues about.

Procurement

When lead times are long, the approval queue is the risk

Requisition, threshold approval, RFQ, quotation comparison, purchase order, receipt and three-way match, with the document and the decision on the order. A stalled approval that costs a week elsewhere costs a season here, so the queue is visible and it escalates.

Two qualifications, because this section would be worth less without them. Provincial overtime and break rules are not modelled — we record hours, shifts and leave and attribute labour cost, and the rule that turns those hours into an entitlement belongs to a payroll system, which for Canada is not ours. And the language boundary in the right-hand column above applies to every card in this section: the interface is English-only, so if your crews work in French, none of the above changes that answer.

Before you buy anything

Three checks that work on any vendor, including us

Find out whether your invoices are decomposable

Take a two-tax invoice from last year and try to recover the federal figure alone from what is stored on it, without reference to today's settings. If you cannot, your returns are being reconstructed rather than reported, and that is a different risk from the one people usually audit for.

Check what your default rate actually says

Not what the system should have configured — what the field contains. A model that provisions one rate per country will have written the federal figure, and it looks perfectly plausible on screen.

Decide who owns the two returns before you shortlist

Usually the accounting system, because it is the one that has to file both. Settling it first turns a long argument about tax features into a short one about which figures need to be exported and in what shape.

Questions we are asked here

Plain answers, including the one about Quebec

Can you handle GST and PST on the same invoice?

The total, yes. The split, no — and the difference is the subject of this page. Our engine computes each levy against its own base and produces a breakdown, then the document stores a single blended rate and one tax type, so the components are not on the record afterwards. On the roadmap, and commissionable now, and it is the cheapest item we have on any market page: the numbers already exist at the moment of saving and the work is persisting them plus a tax type on the line. Kenya is the precedent that we finish this kind of work. Specification, timeline and price agreed first.

Can AWRA file a GST/HST return?

No. There is no CRA integration, no provincial integration and no return output anywhere in the product. On the roadmap, and commissionable now, and the order matters: store the split, add a tax type to the line, add a province to the customer and the sale, then assemble a return. Building the return first would produce a figure with nothing behind it. Kenya's eTIMS transmission is a live tax-authority integration we built and maintain, so this is a known shape of project rather than an experiment.

We operate in Quebec. Is that a problem?

Yes, and it is a language problem rather than a tax one. A boundary rather than a backlog. Our interface is English-only, and in Quebec the language in which software is provided to staff and customers is a legal requirement rather than a preference. A translation layer assembled to win a deal would create an obligation we could not maintain, so we would decline rather than take it on. If Quebec is part of your operation, we are the wrong choice, and we would rather be the vendor that told you in week one.

Why is our default tax rate 5% when we are in Ontario?

Because our country tax profile holds Canada as the federal rate, and the provisioning routine writes a default once and then never revisits it. The row is not wrong — 5% is the federal rate — but a federal rate is not a national rate, and a model with one row per country cannot express the difference. On the roadmap, and commissionable now as part of the province work. In the meantime, this is worth checking rather than assuming: the figure looks entirely plausible on screen, which is what makes it worth checking.

Will you tell us which province a sale belongs to?

A boundary rather than a backlog. No, and a commissioned build would not change it. Place-of-supply rules turn on where delivery happens, who the customer is and what kind of supply it is, and applying them is your adviser's judgement rather than a lookup on an address. What we can do is hold the operational facts — where goods moved, who received them, what the document said — in a form your adviser can work from, which is the useful half and the half we would stand behind.

Do you handle Canadian payroll?

No. On the roadmap, and commissionable now. No CPP or EI calculation, no T4s, no records of employment, no provincial health levies and no workers' compensation. What exists is labour cost attributed to projects and cost centres, which is genuinely useful for job margins and is not payroll. We maintain one statutory payroll engine, for Kenya, and that experience is why we would price this rather than estimate it.

We would not use this for tax at all. Is there anything left?

Most of it, and this is worth saying plainly because the page above does not. AWRA OpsHub is an operations system — stock across locations, procurement with approvals that refuse, asset registers with named custodians, project cost, field capture that works with no signal, helpdesk queues with SLA clocks — and the tax profile is one setting inside it rather than the point of it. In Alberta or Ontario, where the tax on a line is a single number, there is no schema problem to work around at all: the sections above are about the four provinces where there are two taxes, and even there the arithmetic is right and it is the stored split that is missing. If your accounting system files your returns and you are buying an operations layer, none of what this page spends its length on is your problem. Read the operations section rather than the structures table, and bring us the depot or the crew you are trying to get visibility over.

What are the actual rates in each province?

We deliberately do not publish them, and the reason is a general one worth stating. The provincial arrangements are stable and the percentages are not — one province reduced its harmonised rate in 2025 — so a rate table on a vendor page is a thing that becomes quietly wrong and gets quoted anyway. The durable facts are the three structures above: federal only, harmonised, or federal plus a separate provincial tax. Get the structure from us and the numbers from your accountant, and if a vendor page gives you both, check when it was last edited.

Next step

The Canadian conversation starts with one question: can you decompose last year's invoices?

If your province levies one tax, we fit straightforwardly. If it levies two, the useful piece of work is small and specific — store the split at the point of saving — and we would rather scope that than sell you a tax module.