@classytic/ca-tax 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/LICENSE +21 -0
- package/README.md +78 -0
- package/dist/forms/index.d.mts +2 -0
- package/dist/forms/index.mjs +2 -0
- package/dist/forms.mjs +7786 -0
- package/dist/gst-hst/index.d.mts +2 -0
- package/dist/gst-hst/index.mjs +2 -0
- package/dist/gst-hst.mjs +675 -0
- package/dist/index.d.mts +622 -0
- package/dist/index.mjs +98 -0
- package/dist/index2.d.mts +182 -0
- package/dist/index3.d.mts +5603 -0
- package/dist/index4.d.mts +32 -0
- package/dist/t2/index.d.mts +3 -0
- package/dist/t2/index.mjs +3 -0
- package/dist/t2.mjs +6176 -0
- package/docs/research-2026-07.md +72 -0
- package/package.json +92 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Canada GST/HST/PST rules research — verified 4 July 2026
|
|
2
|
+
|
|
3
|
+
Web-research pass, 4 Jul 2026; primary sources preferred (canada.ca/CRA,
|
|
4
|
+
Revenu Québec, provincial budgets; Ryan/BDO/MLT Aikins/EY corroboration).
|
|
5
|
+
Provenance record for every value in `src/`.
|
|
6
|
+
|
|
7
|
+
## 1. Rates (CRA "which rate" + NOTICE342 + NS 2026-27 budget + RQ tables)
|
|
8
|
+
|
|
9
|
+
GST 5%. HST: ON 13; NB/NL/PE 15; **NS 15 → 14 effective 1 Apr 2025**
|
|
10
|
+
(NOTICE342; provincial part 10→9; the NS 2026-27 budget, tabled 23 Feb
|
|
11
|
+
2026, maintains 14 — no further cut scheduled). PST: BC 7, SK 6, MB RST 7
|
|
12
|
+
(rate stable since 2019; **BASE extended to cloud/SaaS/PaaS/IaaS/storage/
|
|
13
|
+
hosting effective 1 Jan 2026** — MLT Aikins + BDO). QST 9.975, charged on
|
|
14
|
+
the **GST-exclusive** price (since 1 Jan 2013), administered by RQ.
|
|
15
|
+
No other enacted future rate changes found.
|
|
16
|
+
|
|
17
|
+
## 2. Registration
|
|
18
|
+
|
|
19
|
+
Small supplier: **$30,000** worldwide taxable+zero-rated supplies over
|
|
20
|
+
four consecutive calendar quarters AND per single quarter (immediate loss
|
|
21
|
+
on a one-quarter blowout; one-month grace on the rolling test). PSBs
|
|
22
|
+
$50,000; charities also a $250k gross-revenue test. Unchanged since 1991
|
|
23
|
+
(CRA Memo 2-2). Simplified non-resident digital regime (2021): $30k/12mo,
|
|
24
|
+
simplified registration, **no ITCs**, quarterly; unchanged.
|
|
25
|
+
|
|
26
|
+
## 3. ITC restrictions
|
|
27
|
+
|
|
28
|
+
Meals & entertainment 50% (80% long-haul truckers). Club dues: denied.
|
|
29
|
+
Passenger vehicle (Class 10.1) ITC ceilings: $37k (2024) / $38k (2025) /
|
|
30
|
+
**$39k (2026)** — Finance Canada, Jan 2026. ZEV $61k. Québec large-business
|
|
31
|
+
ITR restrictions fully phased out since 1 Jan 2021; ON/PE RITC recapture
|
|
32
|
+
long gone — no recapture remains anywhere.
|
|
33
|
+
|
|
34
|
+
## 4. Zero-rated vs exempt (RC4022)
|
|
35
|
+
|
|
36
|
+
Zero-rated (0%, ITCs flow): basic groceries, prescription drugs +
|
|
37
|
+
dispensing, medical/assistive devices, feminine hygiene, agriculture &
|
|
38
|
+
fishing products, exports, international transportation. Exempt (no tax,
|
|
39
|
+
NO ITCs): long-term residential rent + used residential housing, most
|
|
40
|
+
health/medical/dental, education (credit courses/tutoring), childcare,
|
|
41
|
+
most financial services, legal aid, most charity/PSB supplies, music
|
|
42
|
+
lessons. **GST holiday (Bill C-78) ran 14 Dec 2024 – 15 Feb 2025 only —
|
|
43
|
+
expired, no successor** (deliberately unmodelled). **First-Time Home
|
|
44
|
+
Buyers' GST Rebate ENACTED** — Bill C-4, Royal Assent 12 Mar 2026: 100%
|
|
45
|
+
GST rebate on new homes ≤ $1M, phasing to nil at $1.5M, retroactive to
|
|
46
|
+
agreements on/after 20 Mar 2025 (housing-module concern; not in 0.1.0).
|
|
47
|
+
|
|
48
|
+
## 5. GST34 (CRA return instructions)
|
|
49
|
+
|
|
50
|
+
Lines confirmed: 101 sales · 103/104→105 collected · 106/107→108 ITCs ·
|
|
51
|
+
109 net tax · 110/111→112 credits · 113 (+205/405 self-assessed → 113C)
|
|
52
|
+
· 114 refund / 115 owing. **E-filing mandatory for periods beginning
|
|
53
|
+
2024+** (except charities/SLFIs); paper penalty $100/$250.
|
|
54
|
+
|
|
55
|
+
## 6. Place of supply (ETA Sch. IX; Memoranda 3-3-2…3-3-6)
|
|
56
|
+
|
|
57
|
+
Goods → province of delivery/making-available (destination governs).
|
|
58
|
+
Services → recipient's address obtained in the ordinary course; no
|
|
59
|
+
address → where performed (fallback highest-rate candidate). IPP → where
|
|
60
|
+
usable + recipient address. Exports → zero-rated, not provincially
|
|
61
|
+
allocated.
|
|
62
|
+
|
|
63
|
+
## Open items / honest flags
|
|
64
|
+
|
|
65
|
+
- **Quick Method deliberately NOT shipped in 0.1.0**: the post-NS-cut
|
|
66
|
+
remittance cells (9.4% services / 4.7% goods in NS) rest on 3+
|
|
67
|
+
secondary sources but could not be verified byte-for-byte against CRA
|
|
68
|
+
RC4058 (fetch-blocked). Ship after RC4058 verification.
|
|
69
|
+
- "Nothing like the GST holiday active now" — absence-of-evidence
|
|
70
|
+
(medium confidence).
|
|
71
|
+
- PE/SK/BC "no changes" — medium-high (all 2026 rate tables show status
|
|
72
|
+
quo).
|
package/package.json
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@classytic/ca-tax",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Canadian corporate tax engine for @classytic/tax-core — federal T2, Alberta AT1 and Québec CO-17 with form definitions traced to the published forms, plus GST/HST/PST/QST with dated provincial regimes.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "Sadman Chowdhury (Github: @siam923)",
|
|
8
|
+
"sideEffects": false,
|
|
9
|
+
"keywords": [
|
|
10
|
+
"canada",
|
|
11
|
+
"cra",
|
|
12
|
+
"t2",
|
|
13
|
+
"at1",
|
|
14
|
+
"co-17",
|
|
15
|
+
"corporate-tax",
|
|
16
|
+
"alberta",
|
|
17
|
+
"quebec",
|
|
18
|
+
"tax",
|
|
19
|
+
"tax-engine",
|
|
20
|
+
"gst",
|
|
21
|
+
"hst",
|
|
22
|
+
"pst",
|
|
23
|
+
"qst",
|
|
24
|
+
"gst34",
|
|
25
|
+
"cca",
|
|
26
|
+
"netfile",
|
|
27
|
+
"classytic"
|
|
28
|
+
],
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"types": "./dist/index.d.mts",
|
|
32
|
+
"default": "./dist/index.mjs"
|
|
33
|
+
},
|
|
34
|
+
"./forms": {
|
|
35
|
+
"types": "./dist/forms/index.d.mts",
|
|
36
|
+
"default": "./dist/forms/index.mjs"
|
|
37
|
+
},
|
|
38
|
+
"./gst-hst": {
|
|
39
|
+
"types": "./dist/gst-hst/index.d.mts",
|
|
40
|
+
"default": "./dist/gst-hst/index.mjs"
|
|
41
|
+
},
|
|
42
|
+
"./t2": {
|
|
43
|
+
"types": "./dist/t2/index.d.mts",
|
|
44
|
+
"default": "./dist/t2/index.mjs"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"dist",
|
|
49
|
+
"README.md",
|
|
50
|
+
"LICENSE",
|
|
51
|
+
"CHANGELOG.md",
|
|
52
|
+
"docs"
|
|
53
|
+
],
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsdown",
|
|
59
|
+
"dev": "tsdown --watch",
|
|
60
|
+
"test": "vitest run",
|
|
61
|
+
"test:watch": "vitest",
|
|
62
|
+
"typecheck": "tsc --noEmit",
|
|
63
|
+
"lint": "biome check src/ tests/",
|
|
64
|
+
"lint:fix": "biome check src/ tests/ --write",
|
|
65
|
+
"check": "biome ci src/ tests/ --diagnostic-level=error",
|
|
66
|
+
"prepublishOnly": "npm run check && npm run build && npm run typecheck && npm test"
|
|
67
|
+
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"@classytic/primitives": ">=0.9.0",
|
|
70
|
+
"@classytic/tax-core": ">=0.1.0"
|
|
71
|
+
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@biomejs/biome": "^2.4.10",
|
|
74
|
+
"@classytic/primitives": "^0.9.0",
|
|
75
|
+
"@classytic/tax-core": "^0.1.0",
|
|
76
|
+
"@types/node": "^25.6.0",
|
|
77
|
+
"tsdown": "^0.22.3",
|
|
78
|
+
"typescript": "^5.9.3",
|
|
79
|
+
"vitest": "^3.2.4"
|
|
80
|
+
},
|
|
81
|
+
"engines": {
|
|
82
|
+
"node": ">=20"
|
|
83
|
+
},
|
|
84
|
+
"repository": {
|
|
85
|
+
"type": "git",
|
|
86
|
+
"url": "git+https://github.com/classytic/ca-tax.git"
|
|
87
|
+
},
|
|
88
|
+
"homepage": "https://github.com/classytic/ca-tax#readme",
|
|
89
|
+
"bugs": {
|
|
90
|
+
"url": "https://github.com/classytic/ca-tax/issues"
|
|
91
|
+
}
|
|
92
|
+
}
|