9:41
Update available
A newer version of onWard is ready.
Refresh
Reviewing saved period
{{ reviewLabel }}{{ reviewLegacySuffix }}
Save changes
Back to current
{{ greeting }} · {{ todayStr }}
{{ nameDisplay }}
{{ employmentLabel }} {{ configNameDisplay }}
{{ workplaceDisplay }}
oW {{ initials }}
{{ paydayChip }}
Pay Period
{{ periodRange }}
Projected net pay
{{ pay.netStr }}
{{ totalShifts }} shifts
Cutoff
{{ cutoffStr }}
Pay day
{{ payDayStr }}
{{ wk.title }} {{ wk.range }}
{{ d.name }}
{{ d.dateNum }}
{{ d.label }} TODAY {{ d.otBadge }} $SN IC PRE
{{ d.time }}
Copy shifts from last saved period
{{ clearLabel }}
Adjustments
Steward / union hours
Paid out at straight time{{ unionHoursNote }}
hrs
Sick time
Paid out at straight time{{ sickHoursNote }}
hrs
Extra pay / retro
One-off addition to gross
$
Pay Summary
{{ periodRange }}
{{ pay.netCardLabel }}
{{ pay.netStr }}
Gross {{ pay.grossStr }} | Deductions {{ pay.dedStr }}
Earnings
{{ r.label }}
{{ r.detail }}
{{ r.amt }}
{{ sr.label }}
{{ sr.detail }}
{{ sr.amt }}
GROSS PAY {{ pay.grossStr }}
Deductions
{{ r.label }} {{ r.pct }}
{{ r.amt }}
NET PAY {{ pay.netStr }}
View pay stub
Email, share, save or export a PDF
Banked Overtime
Current balance
{{ bankBalanceStr }} hrs
Bankable this period
{{ bankableStr }} hrs OT
Bank from this period
These OT hours bank instead of paying out
hrs
Pay out from bank
{{ payoutHint }}
hrs
Save this pay period
Make sure this period is accurate before saving — it's added to your year-to-date totals.
Year to date · {{ ytd.year }}{{ ytd.count }} periods
GROSS
{{ ytd.gross }}
NET
{{ ytd.net }}
TAX
{{ ytd.tax }}
TOTAL HOURS
{{ ytd.totalHours }}
OT HOURS
{{ ytd.otHours }}
Net Pay Trend
{{ b.net }}
{{ b.label }}
Average net · {{ trendAvg }} per period
Net Pay Trend
{{ trendEmptyMsg }}
Saved Periods Tap to review
Save changes to this period
{{ h.range }}
Paid {{ h.payDate }} · {{ h.hours }} hrs
{{ h.net }}
Paycheque Check
{{ periodRange }}
Step 1 · Your earnings
Total earnings on your stub
Before deductions · onWard estimates {{ compare.grossEstStr }}
{{ curSym }}
{{ compare.earnNote }}
{{ r.label }} {{ r.amt }}
Step 2 · Dial in your deductions · preview only
Enter each line from your stub, then drag to match. Nothing changes until you lock it in.
{{ d.label }}
{{ curSym }}
{{ d.ratePct }}%
onWard: {{ d.appAmt }}
{{ d.diffLabel }}
Match
{{ compare.matchAllLabel }}
This is a preview. Locking in will overwrite your tax, pension, CPP & EI rates in Settings and change all future estimates.
Lock in to Settings
Reset
{{ compare.netLabel }}
{{ compare.netStr }}
Your stub
{{ compare.actualNetStr }}
Clear entered amounts
Calibrating sets your deduction rates in Settings so future pay estimates match your real stub. Always confirm against your official statement.
Team
Share your team's setup
Keep your whole team accurate
Share your pay setup with a coworker — they scan your code and their app calculates exactly like yours. Set up once by someone who knows the contract, used right by everyone.
Your setup
Setup name
A coworker scans this with their phone camera — onWard opens and offers to add your setup. Or send them the link.
Copy code
Share link
Add a coworker's setup
Point your phone camera at a coworker's QR code — onWard opens and asks you to add their setup. Nothing to type.
Got a code or link from a coworker? Paste it here:
{{ team.impErr }}
{{ team.impName }}
{{ p.k }} {{ p.v }}
{{ team.applyLabel }}
A setup carries rates, differentials and shift rules only — never names, schedules or pay. Nothing leaves your phone except the code you choose to send.
Pay
Pay Stub
Save, print or send
PAY STATEMENT
{{ emp.name }}
ID {{ emp.id }} · {{ employmentLabel }}
{{ workplaceDisplay }}
oW
Pay period
{{ periodRange }}
Pay date
{{ payDateStr }}
EARNINGS
{{ r.label }} {{ r.qty }}
{{ r.amt }}
Gross pay {{ pay.grossStr }}
DEDUCTIONS
{{ r.label }} {{ r.pct }}
{{ r.amt }}
Total deductions {{ pay.dedStr }}
NET PAY {{ pay.netStr }}
Email
Share
PDF
Save .txt
This is a computer-generated pay stub. Please retain for your records.
Settings
Rates & contract parameters
Your details
Name
Employee ID
Workplace
Employment type
Full-time
Part-time
Casual
{{ employmentHint }}
Regular premium
$/hr on all straight hours · FT & PT only (not casual)
Specialty unit premium
OR/PAR · ER · ICU/CCU · $/hr on straight hours · regular staff
Period start
Pay date
{{ g.title }}
{{ g.note }}
{{ f.label }}
{{ f.hint }}
{{ f.prefix }} {{ f.suffix }}
Other deductions
{{ otherDed.sym }}
%
Union dues, benefits, parking, etc. Name a line to switch it on. The percentage line gets a slider in Compare so you can dial it in.
Income Tax
Flat rate
Tax brackets
Income is annualized (×26 pay periods) and taxed band by band; your stub shows the blended effective rate. Edit the bands to match your province.
Annual income up to
Rate %
$ over previous · top rate
%
Income tax rate
%
Shift Names
{{ r.def }}
Rename shift types to match your unit. The pay rules for each stay the same.
Shift Times
{{ r.label }}
to
Clock times shown on each shift in your schedule. Paid hours per shift are set in Base & Hours above.
Preferences
Appearance
Light
Dark
Tap & success sounds
{{ soundHint }}
Vibration / haptics
{{ hapticHint }}
Currency symbol
{{ c.sym }}
Backup & Data
Download backup file
Copy backup to clipboard
Restore from backup file
{{ saveBtnLabel }}
You have unsaved changes — tap Save to apply them.
Help & How-to
Guide to shifts, overtime, saving & more
Support & Feedback
Enjoying onWard?
If you find the calculator helpful, a quick rating really helps. Questions and feedback are always welcome.
Tap a star to rate & send feedback
Questions
Buy me a coffee
Reset everything to defaults
onWard v3.9 · Paycheque calculator by David Eisner · 2026
{{ toast }}
{{ modal.title }}
{{ modal.body }}
{{ modal.cancelLabel }}
{{ modal.confirmLabel }}
{{ infoPop.title }}
{{ infoPop.sub }}
{{ it.head }}
{{ it.text }}
{{ infoPop.btnLabel }}
How to use onWard
{{ h.title }}
{{ h.body }}
onWard v3.9 · Paycheque calculator by David Eisner
{{ t.label }}
{{ sheetDay.full }} {{ sheetDay.dateLong }}
{{ o.label }}
{{ o.time }}
Hours worked
{{ hoursUI.hint }}
+
Reset to standard {{ hoursUI.standard }} hrs
{{ customTimesUI.ctTitle }}
{{ customTimesUI.ctSub }}
Start
End
{{ customTimesUI.splitText }}
Adjustments
{{ ch.label }}
OT hours · {{ otUI.title }}
{{ otUI.hint }}
+
{{ sheetMealHint }}
{{ sheetStatPkHint }}
Casual: working a day off is paid as a normal shift. Pick the shift type you worked — overtime only applies past {{ thresholdStr }} hrs that day.
In charge for the {{ sheetOtHrs }}h OT?
Yes, OT too
Precepting the {{ sheetOtHrs }}h OT?
Yes, OT too
Called in on a day off? If you accepted within 24 hours’ notice, turn on Short notice to add the premium.
Short-notice on the {{ sheetOtHrs }}h OT?
Yes, OT too
Apply to whole week
Done
onWard
Your paycheque, recalculated.
Paycheque calculator by David Eisner
Version 3.9 · Copyright 2026