A self-serve tax year-end rollover wizard that gave payroll businesses control over one of the most critical moments in their calendar — replacing a forced, one-size-fits-all process with a flexible, guided experience. 100% of customers self-served with no critical errors.
.timeline
2 years (piloted year 1, full rollout year 2)
.year
2025
.tools
Figma, Jira, Intercom, Confluence, Miro
.role
Product Lead
Every payroll system in the UK has to complete a tax year-end update before the new tax year begins — updating calculation thresholds, refreshing tax codes, and implementing new legislation from government budget announcements. Before this feature existed, Finity handled that process centrally: the development team would roll over every customer's instance on a single designated weekend, and every customer had to accept whatever date we chose to distribute P60s to their workers. It was inflexible, it removed customer autonomy at one of the most important moments in the payroll calendar, and it generated a wave of support queries every year — customers asking to reopen old tax years or push forward new ones because our timeline didn't match theirs.
I designed a two-step year-end wizard that put the process in the customer's hands. Customers now navigate a guided flow at the end of their final payroll run — completing around 20 background operations through just two visible steps. They choose when to roll over, when to distribute P60s, and whether to send them immediately or schedule for a later date. This year, 100% of customers completed the rollover themselves with no critical errors. Two minor edge cases occurred but were caught by pre-processing check gates before any data damage or HMRC deadline impact occurred.
This was fundamentally a story about Finity maturing as a SaaS product. For years, year-end was something we did to our customers rather than with them — a centralised, dev-team-executed process on a date we set. It worked, but it was a holdover from an earlier era of the product. As our customer base grew and diversified, the cracks showed. Payroll businesses run on different cycles. Some customers needed to close the old tax year early; others needed more time. A fixed rollover date served no one particularly well and created support overhead every year without fail.
The wizard concept was straightforward but the design challenge was real — year-end is technically complex, and the risk of a customer making a mistake mid-process carries serious consequences: incorrect tax code uplifts, missed P60 deadlines, HMRC submission errors. The UX had to be simple enough to build confidence, while the architecture had to be robust enough to prevent errors from becoming permanent.
I designed the flow around three principles. First, conditional entry — the wizard only becomes available once the final payroll of the tax year has been successfully run, removing the possibility of customers triggering year-end prematurely. Second, plain language — the onboarding step explains in non-technical language exactly what the process does in the background, so customers understand what they're authorising before they proceed. Third, meaningful feedback — the confirmation screen gives real-time visibility of P60 distribution status, showing how many have been sent and how many remain, and confirms the number of employees whose tax codes were uplifted.
Before full rollout I ran a pilot with four customers, gathered their feedback, and iterated before opening it to the full customer base. For our longest-standing customers — those who'd been with the business five or six years and were used to being notified of a fixed rollover date — I reached out personally to explain the change. For the broader base, we used a layered communications approach: Intercom product tours, release notes, newsletters, and direct email.
The result was a clean year-end. 100% self-served. Two minor edge cases both caught before they caused lasting damage. No critical errors. The support queue that used to spike every April was quiet.
What I'd do differently: I'd instrument the wizard earlier to capture time-on-step data. Knowing where customers paused or hesitated in the flow would have given us faster signal on which parts of the plain-language explanation needed further simplification.
Every problem worth solving has a human at the centre of it.