Quick start — running a full payroll cycle
A narrative walkthrough of one complete monthly payroll cycle from the staff side. By the end you'll have shipped a client through every stage — from cycle initiation to closed and archived — and you'll know which screen to open at each step. Every section links into the matching how-to runbook for click-by-click detail and into the troubleshooting page that covers the most common stumble at that step.
The story below follows one client end to end. We'll use Walker & Tan Associates Pte Ltd — a hypothetical 35-headcount engineering consultancy on your firm's portfolio with a mid-month cutoff and one joiner, one salary change, and one leaver this cycle. Anchor the steps on whichever client you're actually running; the surfaces are the same.
NOTE
If you're a new staff user finding your way around, start with the dashboard tour first, then come back here. The tour names every sidebar surface this page sends you to.
Cast of characters
| Role | Plays |
|---|---|
| Platform Admin | Set up the client record once — contacts, document rules, export template, auth policy |
| Payroll Executive | Runs the cycle day to day — receives the submission, resolves issues, generates the export, uploads the output |
| Payroll Lead | Approves overrides for blocking issues, manages templates, signs off on edge cases |
| Client submitter | One contact at Walker & Tan who receives the email link and uploads documents |
| Client approver | One contact at Walker & Tan who receives the approval link and signs off |
The submitter and approver can be the same person. For Walker & Tan they aren't — the operations manager submits, the managing director approves.
0. Confirm the client is configured
Before any cycle runs, the client record needs four things in place:
- At least one active contact who can submit intake
- At least one active contact who can approve (can be the same person, but for separation of duties most clients have two)
- An auth policy — typically magic link
- Document rules for joiner, change, and leaver bundles (offer letter, NRIC, bank details, change letters, resignation letters)
- An active export template of kind
UPLOADfor the firm's import workflow
Open Clients in the staff dashboard sidebar, click into Walker & Tan. The Setup health panel on the top right goes green when all of the above are in place. Anything red there will refuse the cycle initiator with a specific error.
→ Setting one of these up from scratch: Create a new payroll client · Add or edit client contacts · Configure document rules per change type · Upload an Infotech import template
1. Initiate the cycle
A cycle starts in one of two ways:
- Automatically — the platform fires at the client's local 09:00 on the day-of-month set on the client record. Walker & Tan are configured for the 18th, so the May-2026 cycle initiates itself at SGT 09:00 on 18 May.
- Manually — open Walker & Tan, click Start cycle, pick the cycle month. Use this when the schedule day is in the future and you need to start now (early month-end, recovery from a missed schedule, or a one-off correction cycle).
Either path produces the same result: a new cycle row at status REQUESTED, the prior month's roster snapshotted as a baseline, a fresh magic link minted per submitter contact, and the monthly request email dispatched.
→ Start a payroll cycle for the click-by-click manual path. → When does each scheduled action fire? for the auto-initiation timing.
TIP
If you start a cycle and the row never appears, see Why isn't my cycle showing?. Most often the client's defaultScheduleDay is in the future, or a contact was deactivated.
What the client sees
Every active contact at Walker & Tan with Can submit intake ticked receives an email:
- Subject: Payroll data request for 2026-05 - Walker & Tan Associates Pte Ltd
- Body: A short note then two buttons — Yes, I have changes and No changes this month
The link inside the email expires in 48 hours. If the client doesn't act, the platform sends a fresh-link reminder on day 2, day 5, and day 7 — the old link is invalidated each time.
→ Verify an email was sent if the client says they didn't receive it. → The client says they didn't receive the email for the diagnostic walkthrough.
2. Client intake
The client clicks one of the two buttons in the email.
Path A — zero-change fast path
Walker & Tan have no movements this month. The submitter clicks No changes this month. The portal auto-submits a zero-item intake with a server-marked declaration that there are no changes from the prior month. The cycle moves REQUESTED → SUBMITTED instantly, and a gold zero changes badge appears on the cycle. There's nothing for the executive to do until step 4.
Path B — changes path
Walker & Tan do have movements. The submitter clicks Yes, I have changes and lands in the intake wizard:
- Cycle moves
REQUESTED → INTAKE_IN_PROGRESSon first portal access. - They upload supporting documents — offer letter and NRIC for the new hire, change letter for the salary increase, resignation letter for the leaver, plus the May attendance file. Each upload triggers OCR.
- OCR extracts fields with confidence scores. High-confidence fields auto-fill the form (the new hire's name and NRIC populate from the offer letter the moment it lands).
- They fill in joiner / change / leaver records, optionally backed by the prior-cycle baseline-roster dropdown.
- They submit. The platform runs blocking validation rules synchronously: attendance present, document requirements met per change type, foreign-leaver IR21 flagged if applicable, NS docs paired, no duplicate receipts.
If validation passes the cycle moves to SUBMITTED. If it fails, the client sees inline errors and stays in INTAKE_IN_PROGRESS until they fix them.
NOTE
The link is single-use for first sign-in. After that the session resumes automatically until the 48-hour expiry — the client can save progress, close the laptop, and come back the next morning without anyone having to reissue anything.
3. Reminders, if the client goes silent
Walker & Tan are usually prompt, but if a client doesn't act:
- Day 2 — daily check fires a fresh-link reminder
- Day 5 — same
- Day 7 — same; this is the last automated nudge before the cycle needs human escalation
You don't trigger any of this. If you want to confirm the reminder fired, the Outbox sidebar entry will show a reminder row with status Dispatched.
→ The magic link expired before the client opened it covers the manual reissue path.
4. Validation — your first ops touch
Once Walker & Tan's intake hits SUBMITTED, switch to your Payroll Executive view and open the cycle from Cycles in the sidebar.
- Validation runs as the first step of Generate export. There is no separate "Run validation" button — the moment you click Generate Export, every blocking rule is re-checked.
- If issues exist, the cycle moves to
ACTION_REQUIREDand the Issues tab shows them. Each issue cites the rule it violates and the affected employee or line.
Common Walker & Tan stumbles: the leaver is a foreign worker but no IR21 is attached, or the salary-change letter is missing the effective date.
→ Validation rules reference — the eight blocking rules and what each one means. → Validation keeps blocking even though the document is uploaded when the client swears they've sent everything.
5. Resolve, escalate, or request more info
Three ways out of ACTION_REQUIRED:
| Path | When to use | Who can do it |
|---|---|---|
| Bounce back to the client | Document genuinely missing — preferred path | Payroll Executive |
| Resolve in-house with reason | One-off explanation that doesn't require client action | Payroll Lead |
| Override | Documentation is genuinely impossible to obtain — logged as a Lead override | Payroll Lead |
For Walker & Tan's missing IR21: click Request info from client, tick the IR21 issue, add a short note ("Need IR21 for the foreign-worker leaver — same one we discussed last week"), pick the recipient, send. The client receives a focused "we need these N items" email with a fresh portal link. Each upload auto-re-validates the cycle. When the last blocker clears, the cycle automatically advances to READY_FOR_INTERNAL_REVIEW and then READY_FOR_EXPORT.
→ Resolve a blocking validation issue → Override a blocking issue — Payroll Lead only → Request more info from a client mid-cycle
6. Generate the Infotech export
Walker & Tan's cycle is now READY_FOR_EXPORT. Click Generate export. One click does four things:
- Re-runs validation. If anything blocking surfaces, it aborts with a toast and opens the Issues tab.
- Renders the Infotech 51-column workbook with employees aggregated per row — joiner, salary change, variable pay, deduction, and leaver lines collapsed onto one record per person.
- Auto-requests client approval — picks the client's first active approver (alphabetical by name), generates the Spade approval report, transitions the cycle to
CLIENT_REVIEW, and emails the approver a magic link. - Opens a preview dialog with a download button for the Infotech workbook.
The cycle moves READY_FOR_EXPORT → EXPORTED → CLIENT_REVIEW in this single click — or stays at EXPORTED if Walker & Tan has no active approver, in which case you'll see an amber warning toast and the manual Request approval button stays available.
The Infotech workbook is then handed to the processor offline. The platform does not push to Infotech automatically — Infotech runs payroll the way it always has.
→ Generate the Infotech export → The Generate Export button is greyed out when the click does nothing. → Approval request didn't auto-fire after Generate Export when step 3 silently skipped.
7. Upload the Infotech output (optional)
Once Infotech finishes processing Walker & Tan's payroll, you can upload its output back into the platform to enrich the approval report with real CPF and SDL figures.
This step is optional. Without it the approval report uses submission items only and the CPF columns remain zero — which is fine for many clients and speeds up the cycle. With it the approval report shows the actual disbursement figures the approver is signing off on.
Open the Outputs tab on the cycle, drag in the Infotech workbook. The parser runs, the approval report regenerates from parsed rows. Status stays at CLIENT_REVIEW because the approval round is already in flight — the portal automatically picks the latest report version.
→ Upload the Infotech output → Cycle is stuck in OUTPUT_IMPORTED if the status doesn't move.
8. Client approval
Walker & Tan's managing director opens the magic link and lands on the approval view:
- One Payroll report download card. They open the Spade-format workbook and see employee rows, sub-totals, and the CPF e-submission summary.
- Three buttons: Approve, Request revision, Raise query.
| If they pick… | Cycle moves to… | Your next step |
|---|---|---|
| Approve | APPROVED | Finalize and close — step 9 |
| Request revision | REVISION_REQUESTED, then INTAKE_IN_PROGRESS on the next portal visit | Round 2 — re-run from step 2; the cycle keeps the same row, the round counter increments |
| Raise query | CLIENT_QUERY_OPEN | Respond inside the cycle UI — the cycle returns to CLIENT_REVIEW once the query is closed |
→ Request client approval for the manual path when auto-request didn't fire. → Handle a revision request for round 2+. → Handle a client query for the query path.
What the approver sees
- Subject: Payroll approval required for 2026-05 - Round 1 - Walker & Tan Associates Pte Ltd
- Body: Notes the round number, lists the cycle month, and surfaces a single Review & approve button.
The approval link expires in 48 hours and refreshes via the same reminder cadence as cycle requests if the approver goes silent.
9. Finalize and close
Walker & Tan's cycle is now APPROVED. Two more clicks close it out:
- Click Finalize → status moves to
FINALIZED. Artifacts are now locked — no further edits to the export, output, or approval report. - Click Close → status moves to
CLOSED. The cycle is sealed and read-only.
The retention purge eventually moves CLOSED → ARCHIVED per the firm's retention policy. You don't trigger this manually — it fires on the 1st of the month at 03:00 UTC.
What you've just done
You've shipped Walker & Tan through 16 status transitions, surfaced and resolved any blocking issues, generated the Infotech import workbook, optionally re-imported its output, gathered approval, and closed the cycle. Every action you took is in the cycle's Audit tab, and globally in the Activity log sidebar entry filtered by cycle.
Where to go next
- Run a real cycle — open Cycles in the sidebar, pick the next client whose schedule day is approaching, and follow this same arc.
- Run the bookkeeping flow — Quick start — bookkeeping.
- Understand the status machine in detail — Payroll cycle states.
- See every email this flow sends — Notifications catalog.
- Predict when the next automated send fires — Timing reference.
Cheat sheet — what to do when X
| If… | Open… | Do… |
|---|---|---|
| The cycle email didn't arrive | Outbox in the sidebar | Check the dispatch status. See Verify an email was sent and The client says they didn't receive the email |
| Validation flags a client mistake | Cycle → Issues tab | Click Request info from client. Don't override unless documentation is genuinely impossible — see Override a blocking issue |
| Generate Export does nothing | Cycle status badge | Cycle is in the wrong state for export — see Generate Export disabled |
| Approval email never arrived | Outbox, then Activity log | Activity log shows whether the approval round was created. If yes, the email failed; if no, the export skipped auto-request because the client has no active approver. Approval not auto-fired |
| The magic link expired | Cycle → Outbox | Reissue from the cycle — see Magic link expired |
Cycle stuck at OUTPUT_IMPORTED | Cycle status badge | The output parsed but no fresh approval round was minted — see Cycle stuck in OUTPUT_IMPORTED |
Client wants to change something after APPROVED | Don't reopen | Handle in next month's cycle as a retro adjustment change |
| You took a wrong action | Activity log | Every state change is logged with the actor — see Recover from a mistake |