Home Office Calculator
An in-app home-office work paper under Tax: enter floor-area or time-based inputs to derive a business-use %, fill a per-category expense table, and Cashbook keeps one journal per financial year up to date. The GST treatment branches on the client's entity type + registration — genuinely different maths, so each is its own prototype, not one with a toggle. Start with the primary (GST-registered sole trader); it also holds the empty, locked, imported-warning and remove-claim states.
Year rail + live workpaper
The full feature: financial-year rail, live-computing category table (Amount × % → Home office · GST · Net), account column, and the Dr/Cr journal strip. Click FY2027 (empty + imported warning), FY2025 (locked), edit the method, export, or remove the claim.
Open prototype → Variant · not registeredNot registered for GST
No GST claim — the deduction is the GST-inclusive business-use amount. GST and Net columns are gone; the journal posts no GST line.
Open prototype → Variant · companyCompany (no GST)
Entity type = Company. Reimbursed running costs are income-tax only — GST forced off on every row, journal posts no GST lines. Mortgage interest omitted.
Open prototype → State · entity unsetEntity-type gate
Existing / imported cashbooks start with no entity type. The calculator blocks with a "set the entity type" gate → Settings, because the GST branch can't be chosen without it.
Open prototype →Manual journals, with the home office journal
In Xero the home office claim is a manual journal, so users look here first. The list shows the home office journal as a read-only system row — house icon, tinted row, a Home office · system badge, and a menu with only View.
Open prototype → Screen · manual journal detailHome office journal (read-only)
The journal detail page for the FY2027 claim: the real Dr/Cr lines, a system-journal banner, and Edit in Home Office in place of Edit, Void, Delete and Reverse.
Open prototype →Concept comparison board
The three explored directions (single-page · wizard · year-rail) and why C was chosen.
Open board →Why several prototypes?
Prototypes contain only what we want built — no demo-only toggles. When a feature's maths differ by
a known condition (here, entity type + GST registration), each state is its own prototype, so the
dev team sees exactly how many screens exist. See PROTOTYPE.md.