Buying Operations Software in Canada: A Straight Guide
What to ask, what to ignore, and the five things that should take us off your shortlist — including one that rules us out of an entire province, which we would rather say in the first conversation than the fourth.
The exclusions first, because a buyer's guide written by a vendor is a compromised document and the exclusions are the part you can trust. We do not file to the Canada Revenue Agency or to any province. We do not do Canadian payroll. Our documents store a blended tax rate rather than the federal and provincial split. And our interface is English-only, which in Quebec is a legal problem rather than a preference — so if you operate there, we are the wrong choice and this is the paragraph that matters.
What follows is the rest of it: what we do well, the questions worth asking any operations vendor selling into Canada, and the things on vendor pages that are safe to ignore. Structures rather than rates throughout — the provincial arrangements are stable and the percentages have moved, one of them in 2025, and any page printing the full table is telling you its last edit date.
The five exclusions, in full
| What is missing | What that means in practice |
|---|---|
| Quebec, on language | The interface is English-only. In Quebec the language software is provided in is a legal requirement, and a translation layer assembled to win a deal would create an obligation we could not maintain. This is a decline rather than a backlog item. |
| No CRA or provincial integration | Nothing files. No GST/HST return, no provincial return, no return output anywhere in the product. |
| The tax split is not stored | Our engine computes each levy separately and the document keeps the blended rate. In a two-tax province the total is right and neither return can be read off the record. |
| No Canadian payroll engine | No CPP or EI, no T4s, no records of employment, no provincial levies or workers' compensation. Labour cost is attributed to projects and cost centres, which is useful and is not payroll. |
| No Canadian reference customer | Nothing here is a case study. This product was built in Nairobi and its live tax-authority integration is Kenyan. |
On the Quebec answer, since vendors usually hedge it
The hedge sounds like "localisation is on our roadmap" and it is worth pushing on, because the honest question is not whether a vendor can translate an interface — it is whether they can maintain it, in every release, including the error messages, the emails and the exports. We cannot, we are not going to claim we can, and a vendor who says yes without naming who owns that maintenance is describing a project rather than a product.
Where we are a straightforward fit
Not a feature list — a shape of business.
- You are in a single-tax province — federal only, or harmonised — so one rate on a line is structurally correct rather than a compromise.
- Your returns are produced by an accounting system and what you need from an operations system is clean exports rather than a tax engine.
- Your real problem is procurement, approvals, and stock across more than one location, with transfers and counts that need approval trails.
- You run projects or jobs with cost attribution and want budget checks at the point of commitment.
- You buy in US dollars against a Canadian base and want the exchange rate on the document rather than reconstructed from a monthly average.
Where you should rule us out
| If this is true of you | Why we are the wrong choice |
|---|---|
| You operate in Quebec | English-only interface, against a legal language requirement. This is the clearest disqualification on the page. |
| You need the federal and provincial split on the document | It is computed and not stored. You would be reconstructing it from current settings every period, which is fine until something changes and silent when it does. |
| You want your operations system to file | It does not file anything, and the honest route there starts with storing the split rather than with a submission button. |
| You need Canadian payroll in the same system | There is none. Our one statutory payroll engine is Kenyan. |
| A Canadian reference customer is a requirement | We do not have one, and describing similar work elsewhere is not the same thing. |
Six questions to ask every vendor, including us
None of these can be answered from a brochure
On a two-tax invoice, which fields hold each tax separately?
What a good answer sounds like
Two named fields, or a related table with one row per tax.
What a bad answer is telling you
One rate field means the split is not stored, whatever the total looks like. Ours is one rate field.
If I change my tax settings today, what happens to last year's reporting?
What a good answer sounds like
Nothing — historical documents report what they stored.
What a bad answer is telling you
If the answer involves recalculating, your past returns are derived from present settings and drift as those settings move.
Where is the province of supply stored — on the customer or on the sale?
What a good answer sounds like
On the sale, because one customer can take delivery in several provinces.
What a bad answer is telling you
If neither, it is being inferred, and an inference cannot be evidenced under review.
What is my default tax rate right now, and was it chosen or provisioned?
What a good answer sounds like
Somebody can tell you which, from the record.
What a bad answer is telling you
If nobody can distinguish the two, assume provisioned — and if the value is the bare federal rate outside Alberta, check documents rather than settings.
Who maintains the French interface, in every release?
What a good answer sounds like
A named owner and a release process, or a straight no.
What a bad answer is telling you
A roadmap answer to a maintenance question is a no. Ours is a no.
Name a Canadian customer at my scale I can speak to.
What a good answer sounds like
A name, or a straight no.
What a bad answer is telling you
A hedge is a no that has not been said out loud.
Three things worth ignoring
First, per-province rate tables on vendor pages. The rates move, the page does not, and the structures are the durable part. Get the structure from a vendor and the numbers from your accountant. We deliberately do not print the table, which you can read as discipline or as an excuse — either way, check the date on any page that does.
Second, "supports GST/HST" as a line item. It is true of a system with one configurable rate and true of a system that stores both components and reports each separately, and those are very different products. The question is which fields hold what, and it takes one sentence to answer.
Third, any promise about data residency that sounds like a switch. Hosting region is a property of a deployment. A Canada-region deployment is a real thing to buy and to price; a per-organization region toggle does not exist here, and we published otherwise until we checked our own claims and corrected them. If a vendor offers you the toggle, ask which column it is stored in.
What AWRA OpsHub does today
- Per-levy arithmetic against each levy's own base, so a two-tax stack produces a correct total rather than a naive sum.
- Procurement end to end — requests, approvals, orders, receipts, three-way matching, supplier records and prequalification.
- Inventory across locations with transfers, approvals, counts, adjustments and item-level movement history.
- Projects, time and budget control, with checks at the point of commitment.
- Multi-currency with document-level exchange rates, and machine-readable exports in CSV, XLSX and JSON.
What it does not do
- Persistence of the tax split. Computed and discarded — the smallest gap on this page and the first thing we would fix.
- A tax type on the invoice line, so two lines could carry two named taxes.
- A province on the customer or the sale.
- Any CRA or provincial integration, and no return output.
- A Canadian payroll engine, in any part.
- Payment rail integration — Interac, EFT and anything through Payments Canada are absent.
Not ours, by choice
- Quebec. English-only against a legal language requirement, and a translation produced to close a deal would be worse than an honest no.
- We will not tell you which province a supply belongs to. Place-of-supply is your adviser's determination.
- We will not publish a per-province rate table.
- We will not be your filing agent, federally or provincially, even once an integration exists.
- We have no Canadian reference customer.
The Canadian sequence starts unusually small: persist the per-levy breakdown onto the document at the moment of saving, using figures that are already computed. Then a tax type on the line, then a province on the customer and the sale, then a return assembled from the three. A small first step that makes every two-tax invoice decomposable for life is a better thing to buy than a tax module, and we would rather scope it that way. The precedent that market-specific work gets finished here is Kenya — a live tax-authority integration and a maintained statutory payroll engine, both built to specification. A written specification, a timeline and a price agreed before anything starts.
What is not built for Canada today can still be built for you
Anything described above as not built is a statement about what ships in the standard product today — not a limit on what AWRA OpsHub can do in Canada. Kenya's eTIMS integration and its maintained payroll engine exist because Kenyan clients needed them and commissioned them; neither appeared by itself. The same door is open here. If storing the split, not just the total, a bank or mobile money feed, a statutory return format, a rule your own operation needs that the standard one does not have, or a link to a system you already run is what stands between you and a decision, tell us and we will scope it as a build — written spec, timeline and price — before you commit to anything.
The cheapest first build in this corpus, and then three larger ones
Persist the per-levy breakdown onto the document at the moment of saving. The figures are already computed — our engine works out each levy against its own base and returns them — and today they are discarded, leaving a blended rate and one tax type on the record. In a province levying two taxes that means the total is right and the split, which is the only thing either return needs, has to be re-derived from settings that may since have moved. Storing what is already in hand would make every such invoice decomposable for the rest of its life, and it is a fraction of the size of the capability it unlocks. After that: a tax type on the line, a province on the customer and the sale, and a return assembled from the three.
Banks and payments
EFT files and bank statement feeds wired into the Payments Register, so money in and out reconciles against the documents rather than being typed twice.
Certifications and inspections, which is where a Canadian commission usually starts
A trade ticket, a medical or an equipment examination with a date that has to be watched, and a consequence when it passes: an asset that cannot be issued, a crew member who cannot be assigned, a list somebody actually receives. Custom field sets and expiry reporting exist today; making an expiry refuse rather than notify is the small build, and it is the same shape of work as the certificate stop we would do in Guyana. Seasonal resupply planning per location — lead times driven by a window rather than a reorder point — is the other one we would expect to be asked for here.
Payroll and statutory returns
A Canadian payroll engine with CPP and EI contributions, T4 and record-of-employment production and provincial levies computed on live employee records. None of it exists today; labour cost attribution to projects and cost centres does.
Systems you already run
The accounting package, CRM, online store or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed.
How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. No roadmap slide, and no pretending in a demo that something exists when it does not.
Tell us what you need integratedThe one-line version
Single-tax province, tax handled elsewhere, operations as the real problem: a short and straightforward conversation. Quebec, or a need for the split on the record, or payroll in the same system: rule us out, and the five exclusions at the top are the fastest way to get there.
Start with your province and your default rate
Those two facts settle most of whether this is worth a meeting, and both take about a minute to establish.
Read the Canada page