@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.
@@ -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
+ }