Skip to main content

gstwatch

The C$30,000 GST/HST threshold has two tests, a 29-day registration clock, and a 6-year memory. gstwatch applies Canada's published small-supplier rules to your quarterly revenue and tells you: are you still a small supplier, when registration takes effect, when you must register by, what filing frequency CRA will assign, and how long to keep records.

Rules verified against Canada.ca, October 2026. Not tax advice — it applies published rules to your numbers and shows its work.

Install

pip install gstwatch

Check the threshold

gstwatch check --quarter 2025-12-31=8000 --quarter 2026-03-31=8000 \
               --quarter 2026-06-30=8000 --quarter 2026-09-30=8000

# or from a CSV: quarter_end,amount
gstwatch check quarters.csv

Both CRA tests are run:

  1. Single quarter — one calendar quarter alone over C$30,000: you must charge GST/HST on the supply that takes you over; effective registration is no later than that supply; register within 29 days. Pass --crossing YYYY-MM-DD if you know the exact supply date (otherwise the quarter end is used and the output says so).
  2. Four-or-fewer consecutive quarters — total over C$30,000: small-supplier status ends at the end of the month following the quarter in which you crossed; collect from the first supply after that; register within 29 days of that effective date.

Exit codes: 0 still a small supplier, 3 registration required (distinct on purpose, so scripts can branch), 2 usage error. --json for automation.

Filing frequency

gstwatch freq 1400000     # -> annual   (assigned: annual <= C$1.5M)
gstwatch freq 7000000     # -> monthly  (quarterly up to C$6M, monthly above)

Record retention

gstwatch records 2026-05-10   # -> keep records until 2032-12-31

Six years from the end of the year the record relates to.

What's modeled — and what isn't

Modeled: the two threshold tests, 29-day registration clock, effective-date rules (single vs rolling), assigned filing bands, 6-year retention.

Not modeled: the detailed supply inclusions/exclusions (exempt supplies, financial services, capital property, goodwill, associates' rules), voluntary-registration date elections and the one-year minimum, deregistration decisions, and filing obligations themselves. The threshold test includes worldwide taxable supplies (including zero-rated) per CRA's description — bring your accountant for the exclusions.

Sources: when to register and start charging · assigned reporting periods · records to keep

License

MIT-style: use it, ship it, no warranty.

Metadata

Release files for gstwatch 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gstwatch 0.1.0
File Size Uploaded Provenance
gstwatch-0.1.0.tar.gz 9.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for gstwatch 0.1.0
File Interpreter ABI Platform
gstwatch-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / gstwatch-0.1.0.tar.gz

Download URL gstwatch-0.1.0.tar.gz
Size 9.3 kB
Tags Source
SHA-256 checksum
How to use checksums
33036b1718ae96006963408e69baaa4e65b8841656b3d3b228ad7c327982238d
BLAKE2b-256 checksum
How to use checksums
f2ddef602dc0036909673a7dc8bf22b03d7163da16b91b56757ed66dbb7c699e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Release files / gstwatch-0.1.0-py3-none-any.whl

Download URL gstwatch-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c287ca42babd7635148845ede6e41d0c4e200c787a75064175a9d485c64aa86
BLAKE2b-256 checksum
How to use checksums
0890244c9436cbccd4377d60788660fb59e5d9a7de26127d85f3f92fc2eb4574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.15

Security for gstwatch 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page