Your portal
Your pay, your leave and what is waiting on you.
Your payslips
P60 availableYour leave
Waiting on you
3 itemsYour details
Overview
What is happening across the organisation.
Waiting on somebody
7 pendingHeadcount by department
142 peopleJoining and leaving
This month
Latest announcements
Employees
One record per person, carrying its own history.
Employees
142 people| Employee | Role | Department | Manager | Contract | Started | Status |
|---|---|---|---|---|---|---|
| Milan Horvat | Production planner | Operations | Petra Simic | Permanent full time | 14 Mar 2022 | Active |
| Elin Sandberg | Warehouse supervisor | Warehouse | Petra Simic | Permanent full time | 02 Sep 2019 | Active |
| Aida Mensah | Account manager | Sales | Jonas Weber | Permanent full time | 11 Jan 2024 | Active |
| Tomas Brandt | Maintenance technician | Operations | Petra Simic | Permanent full time | 19 Jun 2021 | On leave |
| Ruben Castilho | Picker | Warehouse | Elin Sandberg | Permanent part time | 08 Apr 2025 | Active |
| Lena Mor | Financial analyst | Finance | Jonas Weber | Permanent full time | 15 Sep 2026 | Probation |
| Andre Lourenco | Sales executive | Sales | Jonas Weber | Permanent full time | 03 Feb 2023 | Notice period |
Users and roles
Accounts, scope and two-factor.
Users and roles
142 accounts| Person | Role | Scope | Two-factor | Status | Last active | |
|---|---|---|---|---|---|---|
| Jonas Weber | jonas.weber@example.com | Admin | Everything | On | Active | Online |
| Alexandra Dahl | alexandra.dahl@example.com | HR | All employees | On | Active | 20 minutes ago |
| Petra Simic | petra.simic@example.com | Manager | Operations, 48 people | On | Active | 2 hours ago |
| Elin Sandberg | elin.sandberg@example.com | Manager | Warehouse, 31 people | Off | Active | Yesterday |
| Milan Horvat | milan.horvat@example.com | Employee | Themselves | Off | Active | Today |
| Andre Lourenco | andre.lourenco@example.com | Employee | Themselves | Off | Notice period | 3 days ago |
What each role can do
Attendance
Who is in, who is remote and who is away.
Today
| Employee | Department | In | Out | Hours | Location | Status |
|---|---|---|---|---|---|---|
| Milan Horvat | Operations | 08:02 | - | 6.4 | Rotterdam | On site |
| Elin Sandberg | Warehouse | 06:00 | 14:30 | 8.5 | Rotterdam | Complete |
| Aida Mensah | Sales | 09:11 | - | 5.2 | Remote | Remote |
| Ruben Castilho | Warehouse | 13:58 | - | 0.5 | Rotterdam | On site |
| Tomas Brandt | Operations | - | - | - | - | Sick leave |
| Marta Kowalski | Sales | 08:44 | - | 5.7 | Remote | Remote |
Leave
Requests, approvals, balances and carry-over.
Requests
| Employee | Type | From | To | Days | Approver | Status |
|---|---|---|---|---|---|---|
| Elin Sandberg | Work from home | 09 Sep | 09 Sep | 1 | Petra Simic | Pending |
| Aida Mensah | Annual | 22 Sep | 24 Sep | 3 | Jonas Weber | Pending |
| Tomas Brandt | Sick | 01 Sep | 02 Sep | 2 | Petra Simic | Recorded |
| Milan Horvat | Annual | 12 Oct | 16 Oct | 5 | Petra Simic | Approved |
| Marta Kowalski | Parental | 01 Oct | 31 Dec | 65 | Alexandra Dahl | Approved |
| Ruben Castilho | Unpaid | 15 Sep | 19 Sep | 5 | Elin Sandberg | Rejected |
Documents
Contracts, right to work, certificates and expiries.
Needs attention
3 blocking| Document | Employee | Type | Uploaded | Expires | Visibility | Status |
|---|---|---|---|---|---|---|
| Employment contract | Milan Horvat | Contract | 14 Mar 2022 | - | HR and employee | Signed |
| Right to work | Ruben Castilho | Right to work | 08 Apr 2025 | 23 Sep 2026 | HR only | Expiring |
| P60 2025 to 2026 | Milan Horvat | P60 | 06 Apr 2026 | - | Employee | Issued |
| First aid certificate | Elin Sandberg | Certificate | 11 Feb 2025 | 11 Feb 2028 | HR and manager | Valid |
| Employment contract | Viktor Halla | Contract | 21 Aug 2026 | - | HR and employee | Unsigned |
Announcements
Posted to a live audience, with read counts.
Published
4 liveAn announcement that requires acknowledgement tracks it per person and chases the ones outstanding. Without that it is a noticeboard, not a record.
Payroll
The run, the variance check and every line behind it.
Variance check
3 unexplainedSeptember run
| Employee | Gross | Tax | Pension | Other | Net | Change | Status |
|---|---|---|---|---|---|---|---|
| Milan Horvat | $5,420 | $986 | $271 | $, | $4,163 | -6.2% | Ready |
| Elin Sandberg | $4,880 | $871 | $244 | $40 | $3,725 | +0.0% | Ready |
| Aida Mensah | $6,140 | $1,192 | $307 | $60 | $4,581 | +2.1% | Ready |
| Ruben Castilho | $2,640 | $382 | $132 | $, | $2,126 | +38.0% | Ready |
| Marta Kowalski | $0 | $0 | $0 | $0 | $0 | -100% | Held |
| Lena Mor | $2,910 | $498 | $146 | $, | $2,266 | New | Ready |
Policies
Versioned, with acknowledgement against the version.
Policies
| Policy | Category | Version | Effective | Acknowledgement | Owner | Next review |
|---|---|---|---|---|---|---|
| Code of conduct | Conduct | 2.0 | 01 Jun 2024 | Required | Alexandra Dahl | Jun 2027 |
| Leave policy | People | 1.2 | 01 Jan 2026 | Required | Alexandra Dahl | Jan 2027 |
| Work from home policy | People | 1.0 | 15 Mar 2025 | Not required | Alexandra Dahl | Mar 2027 |
| IT security and acceptable use | IT | 3.1 | 01 May 2025 | Required | Jonas Weber | May 2027 |
| Expense reimbursement | Finance | 1.1 | 01 Sep 2024 | Not required | Jonas Weber | Sep 2026 |
| Health insurance and benefits | Benefits | 1.3 | 01 Aug 2025 | Not required | Alexandra Dahl | Aug 2027 |
Benefits
Plans, providers, cost and who is enrolled.
Benefit plans
| Plan | Category | Provider | Employer cost | Employee cost | Enrolled | Status |
|---|---|---|---|---|---|---|
| Health insurance | Health | Northlake Health | $250 pm | $40 pm | 128 | Active |
| Dental and vision | Health | Northlake Health | $60 pm | $10 pm | 96 | Active |
| Pension match | Financial | Meridian Pensions | 5% of salary | Matched to 5% | 138 | Active |
| Meal allowance | Perks | Internal | $100 pm | $0 | 142 | Active |
| Wellness stipend | Wellness | Internal | $50 pm | $0 | 84 | Active |
| Cycle to work | Perks | Portside Cycles | Salary sacrifice | Varies | 0 | In negotiation |
Tools and links
Shortcuts to the systems you already run.
People
Finance
IT
General
These are links out to the systems you already run. Pretending an HR portal replaces them is how internal tools end up with three half-built copies of everything.
Joining and leaving
Onboarding and offboarding as checklists.
Lena Mor · starts 15 September
6 of 11Andre Lourenco · leaves 30 September
2 of 9Offboarding is a checklist for the same reason onboarding is. The two tasks people forget are the equipment and disabling the accounts, and both are on it.
Requests
HR and IT questions, with an honest age.
Requests
| Subject | Raised by | Category | Priority | Age | Owner | Status |
|---|---|---|---|---|---|---|
| Payslip does not match my new contract | Ruben Castilho | Payroll | High | 4 days | Payroll | In progress |
| Leave balance looks wrong after parental leave | Marta Kowalski | Leave | Medium | 2 days | People team | Open |
| Access card not working at the side door | Elin Sandberg | IT access | Low | 1 day | IT | Open |
| Request a copy of my 2025 P60 | Milan Horvat | Documents | Low | 6 hours | Payroll | Resolved |
| Add my partner to the health plan | Aida Mensah | Benefits | Medium | 3 days | People team | In progress |
Notifications
What needs doing, with a link to do it.
Today
This week
Each notification names the thing to do and links to it. A count with no link is a source of anxiety rather than a prompt.
Reports
Headcount, attendance, leave, payroll, turnover.
Headcount
12 monthsAbsence by reason
Last 12 monthsAnnual leave is excluded because counting it as absence makes the number meaningless.
By department
| Department | Headcount | Joined | Left | Turnover | Absence | Payroll cost |
|---|---|---|---|---|---|---|
| Operations | 48 | 3 | 2 | 4.2% | 3.1% | $2.41M |
| Warehouse | 31 | 6 | 5 | 16.1% | 4.4% | $1.18M |
| Sales | 24 | 2 | 3 | 12.5% | 1.9% | $1.64M |
| Engineering | 18 | 1 | 1 | 5.6% | 1.2% | $1.42M |
| Finance | 11 | 1 | 0 | 0.0% | 2.0% | $0.48M |
| People | 6 | 0 | 0 | 0.0% | 2.4% | $0.18M |
Audit log
Every pay and personnel change, append only.
Audit log
Seven-year retention| When | Who | Area | What changed | Detail |
|---|---|---|---|---|
| Today, 09:41 | Alexandra Dahl | Payroll | Variance explained | Ruben Castilho, contract change 3 days to 5 |
| Today, 08:12 | Petra Simic | Leave | Approved | Milan Horvat, 5 days from 12 October |
| Yesterday | Alexandra Dahl | Employee record | Contract change | Ruben Castilho, part time to full time from 1 September |
| 2 days ago | Jonas Weber | Users | Role changed | Elin Sandberg promoted to Manager, warehouse scope |
| Last week | Alexandra Dahl | Documents | Uploaded | Viktor Halla employment contract, unsigned |
Settings
Pay day, leave year, rules, elements and integrations.
Organisation
Rules
Pay elements
Integrations
The variance threshold and the fit note rule are yours. Ours are a starting point, and this app does not calculate statutory tax for any jurisdiction: it holds what your payroll bureau or tax engine returns.
September pay run
What is about to be paid, and what changed since last month.
Four people are being paid more than 30% different from last month and none of the four has a change on file that explains it.
Variances
4 unexplained| Person | August | September | Change | Change on file | Verdict |
|---|---|---|---|---|---|
| Aksel Berg | $3,240 | $5,180 | +60% | None | Investigate |
| Rui Almeida | $2,980 | $1,420 | −52% | None | Investigate |
| Elin Sandberg | $3,110 | $4,240 | +36% | None | Investigate |
| Lucia Marchetti | $4,200 | $5,900 | +40% | Promotion, 1 Sep | Explained |
| Kian Boyle | $2,840 | $1,120 | −61% | None | Investigate |
A variance check does not find fraud. It finds the timesheet that was entered twice and the leave that was taken and never recorded, which between them account for almost every payroll correction anybody ever makes.
Aksel Berg, September
One payslip: every line and where it came from.
Payslip lines
$5,180.00| Line | Source | August | September | Change | Note |
|---|---|---|---|---|---|
| Basic pay | Contract | $2,600.00 | $2,600.00 | - | Unchanged |
| Overtime | Timesheets | $640.00 | $2,580.00 | +$1,940 | 68 hours |
| Shift allowance | Roster | $180.00 | $180.00 | - | Unchanged |
| Deductions | Statutory | −$180.00 | −$180.00 | - | Unchanged |
| Net | - | $3,240.00 | $5,180.00 | +$1,940 | All overtime |
Where the overtime came from
What it means
Year end
What has to be right before the year closes.
Year end
2 late| Item | Required by | Status | Owner | Risk if missed |
|---|---|---|---|---|
| Payroll reconciled to the ledger | 31 Oct | 2 months behind | Piotr Zawadzki | Restated accounts |
| 18 prior-month corrections closed | 30 Nov | Open | Payroll | Wrong annual totals |
| 22 incomplete employee records | 30 Nov | Open | People | Filing rejected |
| Benefit values confirmed | 15 Dec | Not started | People | Employee tax wrong |
| Leaver payments checked | 31 Dec | Not started | Payroll | Underpayment claims |
Reconciliation two months behind is not a year-end task, it is a monthly task that stopped. Catching up in December means checking five months of movements at the busiest point of the year.
Reports: activity
Volume and throughput, by owner and by pay group.
By payroll officer
This quarter| Payroll officer | Open | Closed | Median days | Overdue |
|---|---|---|---|---|
| Piotr Zawadzki | 284 | 2 | 0 | 1 |
| Anneke Bakker | 96 | 4 | 1 | 3 |
| Ilona Petrescu | 18 | 1 | 0 | 0 |
| Malin Ohlsson | 14 | 0 | 0 | 0 |
| Unallocated | 22 | 11 | 3 | 18 |
By pay group
This quarterVolume over time
12 weeksGross pay per month in thousands. The line is almost flat, which is what makes the four individual variances worth looking at rather than the total.
Reports: performance
Against target, with the gap named.
Against target by pay group
100 is the targetErrors follow variable pay, not headcount. The hourly group is a quarter of the people and three quarters of the corrections.
What moved
Rule-derivedReports: exceptions
What breached, what is late and what nobody owns.
Exceptions
4 open| Item | Person or scope | Amount | Problem | Owner |
|---|---|---|---|---|
| 68 hours overtime | Aksel Berg | +$1,940 | 19 consecutive days, night shift | Site manager |
| Pay down 61% | Kian Boyle | −$1,720 | Unpaid leave never recorded | Payroll |
| Reconciliation | All companies | - | 2 months behind | Finance |
| 22 records | Unallocated | - | Incomplete, filing will reject | Nobody |
| 18 corrections | Prior months | $4,120 | Open, affect annual totals | Payroll |
A variance check does not find fraud. It finds the timesheet entered twice and the leave that was taken and never recorded, and between them those account for almost every correction anybody makes.
Roles
What each role is scoped to and what it may approve.
Recent changes
Why custom roles exist
- The person who prepares a run never approves it, and both are named on it
- A run with unexplained variances can be approved, with a reason, by two people
- A manager approves overtime and cannot see what anybody is paid
- The system administrator configures payroll and can see no individual amount
Roles
5 roles| Role | Type | People | Scope | Can approve to | Status |
|---|---|---|---|---|---|
| Administrator | Built in | 1 | Configuration, no pay data | Cannot approve | Active |
| Payroll manager | Built in | 1 | All pay groups | Approves a run | Active |
| Payroll officer | Built in | 3 | Assigned pay groups | Prepares a run | Active |
| Finance | Built in | 3 | Totals and ledger | Second approval | Active |
| Manager | Built in | 18 | Own team, no amounts | Approves overtime | Active |
Permissions
Every capability against every role, as enforced.
What each role can do
10 capabilities| Capability | Administrator | Payroll manager | Payroll officer | Finance | Manager |
|---|---|---|---|---|---|
| See individual pay | No | Yes | Own groups | Totals only | No |
| Prepare a run | No | Yes | Yes | No | No |
| Approve a run | No | Yes | No | Yes | No |
| Approve a run you prepared | No | No | No | No | No |
| Approve with unexplained variances | No | With a reason | No | With a reason | No |
| Change a pay rate | No | Yes | No | No | No |
| Approve overtime | No | Yes | No | No | Yes |
| Raise a correction | No | Yes | Yes | No | No |
| Delete a payslip | No | No | No | No | No |
| Read the audit log | Yes | Yes | Own groups | Yes | No |
Nobody approves a run they prepared, and the system administrator can see no individual amount. Payroll is the one system where the people who run it should have the least access to what is in it.
Integrations
Connected systems and their sync history.
Connected
4 connectedWhat breaks without them
- Without time and attendance the variance check has nothing to explain a change with, and every variance becomes a phone call
- Without people records a leaver is paid one more month
- Without tax filing the submission is a file somebody uploads by hand each month
- Pay still goes out; every error is found afterwards by the person underpaid
Sync history
Last 24 hours| When | Source | Records | Result |
|---|---|---|---|
| Monthly | Time and attendance | 34,200 hours | 4 variances |
| Monthly | Accounting | $1.84m | 2 months behind |
| Monthly | Banking | 412 payments | Ready |
| Daily | People records | 412 people | 22 incomplete |
Import and export
Bulk load and extract, with per-row validation.
Import
Validated before anything is written. A file with one bad row imports the rest and tells you which line failed and why.
Export
Recent imports and exports
Last 30 days| When | What | Rows | Result | By |
|---|---|---|---|---|
| 1 Sep 06:00 | Import | 412 | Complete | Piotr Zawadzki |
| 1 Sep 18:00 | Export | 412 | Complete | Ilona Petrescu |
| 1 Aug 06:00 | Import | 410 | 406 loaded, 4 incomplete | Piotr Zawadzki |