Unify the accounting period model to the Year of Assessment (FY ≡ 31-Mar YA; stub grandfathered)
Why¶
The owner wants the app's period model unified around the Year of Assessment (1 Apr–31 Mar) instead of a separate "company FY". For ERL the accounting reference date moves to 31 Mar (the stub period aligns it), so going forward the company FY is the YA — and the employer's return (IR56M / IR56B), profits tax, and the WPP all key to it. Unifying removes the FY-vs-YA divergence that otherwise complicates close-gating (e.g. T-047 phase 4 needs "the YA's months are closed"). Surfaced out of the T-047 IR56M design discussion (2026-06-22).
The stub is the one exception¶
ERL's stub periods don't map to a single Apr–Mar YA: P1 = 2024-09-03 → 2025-12-31 (16 months) spans YA 2024/25 (partial) + YA 2025/26 (partial); the stub = 2026-01-01 → 2026-03-31 completes YA 2025/26. Their WPP / profits-tax stay on those company accounting periods (that's the statutory filing period). So the unification is "the 31-Mar year is the single period from YA 2026/27 onward; P1 + the stub are grandfathered."
Scope (cross-cutting — accounting core)¶
Key the period model on the YA across: the per-month close + roll-up (lib/periodClose), the WPP
(T-043), profits tax, the global period selector / Fiscal-Year config (T-058), and the
entityCalendar. Provide a YA-window view ("all months 1 Apr–31 Mar closed") that T-047 phase 4
gates on. Handle the stub as a labelled exception (its WPP / profits-tax per the company period).
Notes¶
- Big, cross-cutting change to the accounting core — sequence carefully; preview-first.
- T-047 doesn't block on this — it can use a YA-window view now and inherit the native YA when this lands.
Decision log¶
2026-06-22 — task opened (FY→YA unification, owner-agreed)¶
- ✅ Attestation (EOP Local Assistance): read
AGENTS.md; checked the board by scope — no existing task covers the period-model unification (T-058 is the period UX, T-043 the WPP audit; neither restructures FY→YA), so opened T-085. - Source: EOP Local Assistance · session 63c32698-0f80-464c-a668-f352be2c148e (local Claude Code)
- Proposed by: the owner. Approved by: the owner.
- Why this scope / routing: the company FY and the YA coincide once the accounting reference date = 31 Mar, so a single YA-keyed period model is simpler + aligns IR56M / profits-tax / WPP; the stub is grandfathered because its statutory accounting periods genuinely don't map to one YA.
- Evidence — owner, 2026-06-22 (verbatim):
"instead of closing a FY, maybe it's better to re-design and unify the web app to close a YA instead, since FY is very much depended on YA anyways bookkeeping wise?"
"full unification (FY to YA is appropriate for materials in the WPP too, right?)"
…with the stub agreed as a one-time grandfathered exception ("ok on 2").