Deadline rules and test pack
Every rule below is checked against these test cases in our automated test suite. This page re-runs the same cases with the same engine each time it loads: 40 of 40 pass. Cases are calculated as at 11 Oct 2026 unless stated.
Last verified: 11 October 2026
Compliance Tracker is reminder-based only. It does not connect to, submit to or verify anything with CIPC or SARS, and you remain responsible for your filings.
CIPC annual return (30 SA business days after anniversary)
The annual return is due within 30 business days after the company’s registration anniversary. Weekends and SA public holidays are not business days. Beneficial Ownership is due on the same date, and the annual return is shown as Blocked while the company’s Beneficial Ownership status is outdated.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| anniv 1 Sep 2026 (Heritage Day skipped) -> 14 Oct 2026 | Registered 1 Sep 2019; from 11 Oct 2026 | 14 Oct 2026 | 14 Oct 2026 | Pass |
| anniv 15 Mar 2027 (Human Rights obs., Easter, Freedom Day skipped) -> 30 Apr 2027 | Registered 15 Mar 2015 | 30 Apr 2027 | 30 Apr 2027 | Pass |
| next cycle after 14 Oct 2026 -> 14 Oct 2027 | Previous due 14 Oct 2026 | 14 Oct 2027 | 14 Oct 2027 | Pass |
| BO due same as AR | Beneficial Ownership, registered 1 Sep 2019 | 14 Oct 2026 | 14 Oct 2026 | Pass |
| 29 Feb registration -> 28 Feb anniversary in non-leap year | Registered 29 Feb 2016 (anniversary) | 28 Feb 2027 | 28 Feb 2027 | Pass |
Provisional tax (from financial year-end)
1st period: end of the 6th month of the financial year. 2nd period: the financial year-end. A due date on a weekend or public holiday moves to the previous business day. Only for provisional taxpayers.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| Feb YE: P1 = 31 Aug | Feb year-end, 1st period | 31 Aug 2027 | 31 Aug 2027 | Pass |
| Feb YE: P2 raw period end = 28 Feb 2027 | Feb year-end, 2nd period (period end) | 28 Feb 2027 | 28 Feb 2027 | Pass |
| Feb YE: P2 due 28 Feb 2027 is a Sunday -> previous business day 26 Feb 2027 | Feb year-end, 2nd period | 26 Feb 2027 | 26 Feb 2027 | Pass |
| Feb YE leap year: P2 = 29 Feb 2028 | Feb year-end, from 1 Mar 2027 | 29 Feb 2028 | 29 Feb 2028 | Pass |
| Jun YE: P1 = 31 Dec 2026 | Jun year-end, 1st period | 31 Dec 2026 | 31 Dec 2026 | Pass |
| Jun YE: P2 = 30 Jun 2027 | Jun year-end, 2nd period | 30 Jun 2027 | 30 Jun 2027 | Pass |
| Dec YE: P1 = 30 Jun 2027 | Dec year-end, 1st period | 30 Jun 2027 | 30 Jun 2027 | Pass |
| Dec YE: P2 = 31 Dec 2026 | Dec year-end, 2nd period | 31 Dec 2026 | 31 Dec 2026 | Pass |
| not a provisional taxpayer -> no events | Feb year-end, not a provisional taxpayer | Not generated | Not generated | Pass |
B-BBEE (exactly 12 months, no grace)
A B-BBEE certificate or affidavit expires exactly 12 months after its issue date, with no grace period. A 29 February issue date expires on 28 February.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| issued 30 Sep 2025 -> expires 30 Sep 2026 | Issued 30 Sep 2025 | 30 Sept 2026 | 30 Sept 2026 | Pass |
| issued 30 Sep 2025 -> overdue today | Issued 30 Sep 2025; status on 11 Oct 2026 | Overdue | Overdue | Pass |
| issued 29 Feb 2024 -> 28 Feb 2025 | Issued 29 Feb 2024 | 28 Feb 2025 | 28 Feb 2025 | Pass |
| issued 15 Mar 2026 -> 15 Mar 2027 | Issued 15 Mar 2026 | 15 Mar 2027 | 15 Mar 2027 | Pass |
EMP501 (settings-driven, employers only)
Interim and annual EMP501 reconciliation dates come from editable platform settings (defaults 31 October and 31 May), so they can follow each year’s SARS filing season. Only for employers.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| interim 31 Oct 2026 | Employer, default settings | 31 Oct 2026 | 31 Oct 2026 | Pass |
| annual 31 May 2027 | Employer, default settings | 31 May 2027 | 31 May 2027 | Pass |
| custom settings respected | Employer, interim set to 15 Nov | 15 Nov 2026 | 15 Nov 2026 | Pass |
| non-employer -> none | Not an employer | Not generated | Not generated | Pass |
VAT categories
Category A: two-month periods ending in odd months. Category B: two-month periods ending in even months. Category C: monthly. eFiling returns are due on the last business day of the following month; manual returns on the 25th, moved to the previous business day when needed.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| Cat B (even months), eFiling: Sep–Oct 2026 -> 30 Nov 2026 | Category B, eFiling | 30 Nov 2026 | 30 Nov 2026 | Pass |
| Cat A (odd months), eFiling: Aug–Sep 2026 -> 30 Oct 2026 (31 Oct is Saturday) | Category A, eFiling | 30 Oct 2026 | 30 Oct 2026 | Pass |
| Cat C monthly, eFiling: Sep 2026 -> 30 Oct 2026 | Category C, eFiling | 30 Oct 2026 | 30 Oct 2026 | Pass |
| Cat C monthly, manual: 25 Oct 2026 is Sunday -> 23 Oct 2026 | Category C, manual | 23 Oct 2026 | 23 Oct 2026 | Pass |
| Cat A Dec–Jan period starts 1 Dec 2026 | Category A, from 31 Jan 2027 (period start) | 01 Dec 2026 | 01 Dec 2026 | Pass |
| Cat A Dec–Jan period -> 26 Feb 2027 | Category A, from 31 Jan 2027 | 26 Feb 2027 | 26 Feb 2027 | Pass |
| Cat B next cycle after 30 Nov 2026 -> Nov–Dec period due 29 Jan 2027 | Category B, previous due 30 Nov 2026 | 29 Jan 2027 | 29 Jan 2027 | Pass |
| not VAT registered -> none | Category A captured, not VAT registered | Not generated | Not generated | Pass |
TCS expiry (manual)
The Tax Compliance Status expiry is the date you capture. It does not recur automatically – capture the new expiry once a new TCS PIN is issued.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| uses captured date | Expiry captured as 15 Dec 2026 | 15 Dec 2026 | 15 Dec 2026 | Pass |
| no auto recurrence | Next cycle after 15 Dec 2026 | None | None | Pass |
Status and reminders
Overdue once the due date has passed; Due soon within 14 days; otherwise On track; Filed once marked filed. Email reminders go out 42, 14 and 3 days before each due date by default.
| Test case | Inputs | Expected | Actual | Result |
|---|---|---|---|---|
| past due -> overdue | Due 10 Oct 2026, today 11 Oct 2026 | Overdue | Overdue | Pass |
| 14 days -> due soon | Due 25 Oct 2026 | Due soon | Due soon | Pass |
| 15 days -> on track | Due 26 Oct 2026 | On track | On track | Pass |
| filed -> filed | Due 10 Oct 2026, marked filed | Filed | Filed | Pass |
| 42-day reminder | Due 22 Nov 2026 | 42 days before | 42 days before | Pass |
| 14-day reminder | Due 25 Oct 2026 | 14 days before | 14 days before | Pass |
| 3-day reminder | Due 14 Oct 2026 | 3 days before | 3 days before | Pass |
| no reminder on other days | Due 15 Oct 2026 | None | None | Pass |
SA public holidays used (2026–2027)
Business-day rules skip weekends and these public holidays.
- New Year's Day01 Jan 2026
- Human Rights Day21 Mar 2026
- Good Friday03 Apr 2026
- Family Day06 Apr 2026
- Freedom Day27 Apr 2026
- Workers' Day01 May 2026
- Youth Day16 Jun 2026
- National Women's Day09 Aug 2026
- National Women's Day (observed)10 Aug 2026
- Heritage Day24 Sept 2026
- Day of Reconciliation16 Dec 2026
- Christmas Day25 Dec 2026
- Day of Goodwill26 Dec 2026
- New Year's Day01 Jan 2027
- Human Rights Day21 Mar 2027
- Human Rights Day (observed)22 Mar 2027
- Good Friday26 Mar 2027
- Family Day29 Mar 2027
- Freedom Day27 Apr 2027
- Workers' Day01 May 2027
- Youth Day16 Jun 2027
- National Women's Day09 Aug 2027
- Heritage Day24 Sept 2027
- Day of Reconciliation16 Dec 2027
- Christmas Day25 Dec 2027
- Day of Goodwill26 Dec 2027
- Day of Goodwill (observed)27 Dec 2027
- New Year's Day01 Jan 2028
- Human Rights Day21 Mar 2028
- Good Friday14 Apr 2028
- Family Day17 Apr 2028
- Freedom Day27 Apr 2028
- Workers' Day01 May 2028
- Youth Day16 Jun 2028
- National Women's Day09 Aug 2028
- Heritage Day24 Sept 2028
- Heritage Day (observed)25 Sept 2028
- Day of Reconciliation16 Dec 2028
- Christmas Day25 Dec 2028
- Day of Goodwill26 Dec 2028
See it with sample data in the live demo.