Leave, Payslips and Who Is In Today: HR for Small Teams
You have 24 people, two of them contractors, and no HR department. Leave requests come in as "hey, can I take next Thursday off?" in a direct message. Payslips go out as PDFs by email, and every few months someone asks for the March one again. On Monday morning you open the standup and only then discover that three people are away. None of this is a crisis, but it costs you attention every single week, and it gets worse with every hire.
Why leave requests in chat break down
Chat is fine for the ask. It is terrible for everything that follows. The approval lives in one thread, the calendar entry (if anyone made one) lives somewhere else, and the balance lives in a spreadsheet nobody updates until December. When a second person asks for the same week, the manager has to remember the first request. When the project lead plans a release, they do not know who is out.
Three specific failures show up in teams of 10 to 50:
- No record. "You approved it in March" versus "I do not remember that" is an argument nobody wins.
- No balance. Someone takes 27 days on a 25-day allowance, and nobody notices until the year-end reconciliation, when the fix is awkward for everyone.
- No visibility. The people who needed to know (the delivery lead, the person covering support) were not in the thread.
A self-service system fixes this not by adding process, but by moving the same request to a place where the balance check, the approval and the calendar update happen in one action.
Balances and approval rules that fit a small company
You do not need a policy engine. You need four rules that are enforced every time.
| Rule | What it prevents | Example |
|---|---|---|
| Balance visible before the request | Overdrawn leave discovered in December | Anna sees 25 allowed, 11 used, 3 pending, 11 available |
| No self-approval | Team leads approving their own two-week absence | A lead's request routes to the founder or a peer lead |
| Half days | Whole days burned for a dentist visit | An afternoon off costs 0.5 day; the morning shows as working |
| Leave types with their own rules | Sick days counted against holiday | Sick leave has no balance but needs a note after 3 days |
The approver should see the same screen the employee saw: the balance, the dates, and who else on the same project is away in that window. That last item prevents most conflicts. If two of the four people on the Nordic project ask for the same week, the approver sees it before saying yes to the second one.
Keep the approval chain short. One approver, one backup for when that person is away, done. Companies of this size that build three-level approval flows end up approving in chat again because the flow is too slow.
Payslips employees can open themselves
Every payslip emailed is a payslip that will be requested again: for a mortgage, a visa, a rental contract, a tax return. Storing payslips in the employee's own profile means they open the March slip themselves at 22:00 on a Sunday without writing to anyone.
The rules are simple. Each person sees only their own payslips. The finance role sees all of them. Nobody edits a published payslip; a correction is a new document. If the payroll run posts its cost to the ledger, the payslip and the ledger entry should reference each other, so the salary total on the P&L can be traced back to individual payslips when someone asks.
For contractors the equivalent is the monthly statement: hours, rate, amount, and the bill they submitted. Same principle, different document.
A presence board that answers "who is in today"
The question a manager asks most often is not "how many leave days does Anna have" but "is Anna here today". A presence board answers that for the whole team at a glance: working, on leave, sick, day off, public holiday, and for each absence, why and until when.
Two details separate a useful board from a pretty one.
First, weekends and public holidays are marked as days off, not left blank. A blank Saturday looks like missing data; a marked one tells the support rota who is actually available. Public holidays differ by country, which matters when your designer sits in Lisbon and your backend team in Kyiv.
Second, days off that come from a schedule rather than from leave. Someone who worked the Saturday deployment gets Monday off. That is not annual leave and should not touch the balance, but it absolutely needs to appear on the board, or the delivery lead will be waiting for them in the standup.
Doing all of this from a phone
Most HR actions happen away from a desk. Someone wakes up sick and wants to report it in 20 seconds. A lead is at a client site and needs to see who is in tomorrow. A contractor logs hours on the train home. A mobile app that covers leave requests, payslips, time logging and the presence board removes the "I will do it when I am back at my laptop" delay, which is where most missing data comes from. The TridentERP mobile app covers these, along with the company dashboard and reports for the people who need them.
Worked example: Monday morning, 24 people
It is 08:50 on a Monday. The board for the week shows:
- 18 people working, 2 of them remote from another country.
- 3 on annual leave: Anna (returns Thursday), Marko (all week), Olena (Monday only, a half day in the afternoon).
- 1 sick: Piotr, reported on Sunday evening from the phone app, expected back Wednesday.
- 2 on a day off: Denys and Iryna, who ran the Saturday release. Their day off is compensatory, so their leave balances are untouched.
What the manager sees: Marko and Anna are both on the Nordic project, and Piotr is out too, so that project runs with two of its five people this week. The board shows it before the standup, not after. The manager moves one internal task, tells the client that the demo slips to Thursday, and is done by 09:05.
What the manager does not do: message six people to ask where they are, open a spreadsheet to check Marko's balance, or discover at 11:00 that the support rota has a hole because Iryna is off.
How logged time ties to project cost
HR data and project finance usually live in two different systems, which is why project margin reports in small companies are always a month late. When leave, presence and time logging live together with the ledger, the numbers line up on their own.
Take Denys, a senior developer on a monthly salary of EUR 4,000, with employer costs bringing him to EUR 4,800. In August he logged 128 hours on the Nordic project and 32 hours on an internal tool, plus 8 hours of leave. His cost splits by logged hours: 80 percent to the Nordic project (EUR 3,840) and 20 percent to internal work (EUR 960). At a bill rate of EUR 55 per hour, the 128 Nordic hours produce EUR 7,040 of revenue against EUR 3,840 of cost.
Contractors follow the same path. Iryna bills 120 hours at EUR 30, so EUR 3,600 of cost, and the client is billed for those hours at EUR 45, so EUR 5,400. The outstaffing margin is visible per person, per month, with no spreadsheet. The same logged hours feed the client invoice, and a guard prevents the same hours from being billed twice on two invoices.
Leave affects the picture too: a week of holiday in a fixed-price milestone month is cost with no revenue, which is exactly what you want to see in the project P&L now rather than find out at the end of the quarter. TridentERP handles this by posting payroll cost to the ledger split per project by hours, so the project P&L is live rather than reconstructed.
FAQ
Do contractors need to be in the HR system?
Their hours do, because project cost depends on them. Leave balances and payslips usually do not apply; a presence entry and a monthly statement are enough.
What about people in different countries with different holidays?
Assign a holiday calendar per person or per location. The board then marks each person's own public holidays, and leave requests skip them when counting days.
Can a manager still approve leave from chat?
The conversation can happen anywhere. The approval itself should be one tap in the system so the balance, the calendar and the board update together.
What to do next
- Write your four leave rules on one page: allowance, who approves whom, half days, and how sick leave is recorded.
- Load current balances for everyone and have each person confirm their own number. Disputes are cheaper now than in December.
- Put the presence board on a screen or a pinned link and use it in the Monday standup for two weeks.
- Move payslips into the system so people stop asking for them, starting with the current month.
- Connect logged hours to project cost and compare one project's margin with what your spreadsheet says. If the two differ, you have found either an error or a missing rate card.