Skip to content

Cadence

Compliance calendar and obligations

Tier: Motion ยท Requirement module: Compliance Calendar ยท Status: ๐ŸŸก Designed

Purpose

Cadence knows who owes what, when. It materialises an obligation for every combination of licence, return template, and reporting period, computes the due date from the working-day calendar, drives reminders, flags late filing, and arms the penalty workflow.

An obligation is the spine of the platform. A submission exists to satisfy one; a review decides one; a breach is recorded against one.

Scope

Capability Status Notes
Return obligations by licence class ๐ŸŸก Materialised from Registry ร— Return Studio
Due-date calculator ๐ŸŸก Period end + notice days, then calendar adjustment
Holiday and weekend adjustment ๐ŸŸก Configurable calendar per jurisdiction; next or previous working day
Reminder schedule โฌœ Configurable offsets before due, on due, after due
Overdue escalation ๐ŸŸก Late flag, supervisor notification, risk driver into Prism
Extension requests โฌœ Firm requests, supervisor grants; the granted date supersedes and is sealed
Penalty calculation hooks โฌœ Produces a recommendation for Docket, never an automatic charge
Calendar export โฌœ iCal feed per firm and per supervisor

Due-date arithmetic

Stated explicitly because it is the figure most likely to be challenged.

period end               2026-06-30   (from the template's frequency and the period)
+ notice days                    45   (template dueDatePolicy.noticeDays)
= raw due date           2026-08-14
calendar check           ZW_PUBLIC_HOLIDAYS
  is it a working day?   yes
= due date               2026-08-14

extension granted?       none
= effective due date     2026-08-14
overdue when            now > effective due date AND no accepted submission

Every step is stored, not just the answer. When a firm disputes lateness, the supervisor shows the arithmetic including which calendar was applied and whether an extension existed.

Obligation states

FORECAST โ”€โ”€โ–บ OPEN โ”€โ”€โ–บ SUBMITTED โ”€โ”€โ–บ UNDER_REVIEW โ”€โ”€โ–บ ACCEPTED
   โ”‚           โ”‚                          โ”‚
   โ”‚           โ””โ”€โ”€โ–บ OVERDUE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
   โ”‚                  โ”‚                   โ””โ”€โ”€โ–บ REJECTED โ”€โ”€โ–บ OPEN (resubmission)
   โ”‚                  โ””โ”€โ”€โ–บ ESCALATED โ”€โ”€โ–บ Docket
   โ””โ”€โ”€โ–บ WAIVED (extension to a later period, or licence surrendered)

FORECAST obligations exist before their period opens so the firm's calendar shows what is coming. They become OPEN when the period closes and the return can actually be prepared.

Owns

  • Obligation instances and their states
  • Computed due dates and the arithmetic behind them
  • Working-day calendars and adjustment policy
  • Reminder schedules and dispatch records
  • Extension requests and grants

Does not own

  • Templates or notice periods โ€” Return Studio
  • Licence categories โ€” Registry
  • Submissions โ€” Strata
  • Penalties โ€” Cadence recommends, Docket decides

Open questions

  • Event-driven returns. R08 STR logs and R29 change notifications have no period and no due date; they are triggered by an event at the firm. These need an obligation model that is open until closed rather than due on a date, or a second obligation kind. Leaning toward a second kind rather than bending the first.
  • Retrospective calendar changes. A public holiday gazetted after obligations were materialised must shift due dates already computed. Mechanically fine; the question is whether a firm already flagged late becomes retroactively compliant. Policy, and it must be labelled.