Management reporting for staffing and secondment: KPIs, margin per professional and billable ratio (2026)
The staffing business model earns hours × rate — which calls for a report that steers on billable ratio, margin per professional and the cash gap between paying salaries and collecting invoices.
.png)
Management reporting for staffing and secondment: billable ratio, margin per professional, hours realization, DSO — monthly plus weekly utilization. Finstack automates the figures from EUR 39/month.
Management reporting for staffing and secondment: KPIs, margin per professional and billable ratio
Staffing earns by the hour and pays by the month. The reporting that fits that model, in one place — from KPI set to monthly structure and automation.
TL;DR
The management report of a staffing company steers on four core KPIs: billable ratio (billable hours divided by available hours), margin per professional (rate minus full employment costs), hours realization (invoiced versus written) and DSO. The report follows the seven fixed sections of a good management report, complemented by a weekly utilization view. With multiple entities or labels, consolidation comes on top. Finstack automates the data flow from EUR 39/month.
What makes management reporting for staffing and secondment different?
Management reporting for staffing and secondment differs fundamentally from other business models on one point: virtually all profit is determined by two variables — how many hours are billable and what margin sits on each hour. The revenue model is hours × rate; the cost base consists largely of professionals’ employment costs. There is no inventory and hardly any material: people are the product.
That makes the reporting both simpler and more sensitive. Simpler, because the P&L is straightforward: revenue from hours, employment costs, overhead. More sensitive, because small shifts have large consequences. One professional “on the bench” for a month costs a full monthly salary with no revenue against it. A rate increase of a few euros per hour falls almost entirely into the margin. Because salaries go out monthly while client invoices are typically paid after 30-60 days, the working-capital requirement grows with the business — fast growers in particular run into cash problems.
For Dutch staffing companies there is a sector-specific element on top: the G-account. Clients deposit part of the invoice amount into this blocked account, to cover their hirer’s liability (inlenersaansprakelijkheid). That balance counts as received, but can only be used to pay payroll taxes and VAT to the Dutch Tax Administration — free and blocked cash are two different things, and the report must show them separately. The G-account itself is specifically Dutch; similar retention arrangements exist elsewhere in other forms.
The reporting therefore needs granularity that a standard P&L does not offer. Total revenue and total margin say little; the steering level is the individual professional or placement: who sits where, at what rate, with what employment costs, and how many hours were written and invoiced. The model also demands a higher rhythm than the monthly cycle: utilization changes weekly — an assignment ending, a new placement, a sick employee — and whoever only sees that in the monthly management report reacts structurally late.
The foundation remains the standard structure of a good management report: summary, P&L, balance sheet, cash flow, variance analysis, KPIs and commentary. The rest of this article fills in that structure for staffing: KPI set, the calculations behind utilization and margin, monthly structure, group reporting and ERP automation.
Which KPIs belong in the management report of a staffing company?
The management report of a staffing company runs on five to eight KPIs, with billable ratio and margin per professional at the core. This is the set that makes the difference in practice:
- Billable ratio. Billable hours divided by available hours — the profit lever of the model. Report it per professional, per team and for the organization as a whole, including bench time.
- Headcount and the direct/indirect ratio. Billable FTE versus indirect FTE (staff, sales, management). If the indirect layer grows faster than the number of professionals, the operational leverage leaks away.
- Margin per professional. Rate times billable hours, minus the full employment costs (salary plus employer charges). Shows which placements make money and which only produce “revenue”.
- Average hourly rate versus cost per hour. The spread between what the client pays and what the hour costs. A trend KPI: rate pressure and wage increases show up here first.
- Hours realization. Invoiced hours divided by written hours. The difference — write-offs, corrections, hours not passed on — is silent margin evaporation.
- DSO. How long client invoices remain outstanding. In a model that pays salaries monthly, DSO directly determines how much working capital growth costs.
- Revenue and margin per client. Concentration risk: staffing companies with one or two dominant clients see it here. In practice often a fixed top 10 or top 20 client page — so you can adjust before a contract renewal becomes tense.
- Attrition and inflow. Operational but indispensable: departing professionals mean lost revenue plus recruitment costs, and the pipeline of new people determines the room to grow.
Present every KPI as the main article prescribes: level, a trend of at least twelve months and the comparison against budget. Two to four operational additions — such as the pipeline of client requests or the average placement duration — can complete the financial set, as long as the total stays under eight. And keep the first page limited to those steering metrics: the detail tables per professional belong in the appendix, not in the summary.
How do you calculate billable ratio and hours realization?
Billable ratio is billable hours divided by available hours; hours realization is invoiced hours divided by written hours. The calculations are simple — the discussions arise over the definitions. Fix those once.
Billable ratio. The numerator is clear: hours billable to a client. The denominator is the choice: available hours after deducting leave and public holidays (net) or all contract hours (gross). Net looks better, gross shows the real earning capacity. More important than the choice is consistency — and the agreement on who counts. Include the people temporarily without an assignment too: a billable ratio that only measures placed professionals hides exactly the problem you want to see. In practice, staffing companies therefore also report bench time as its own percentage — unproductive time due to no assignment — next to the billable ratio, so that leave, sickness and genuinely sitting without an assignment stay separated. A worked example: a professional has 152 contract hours in a month, of which 16 are leave; he writes 128 billable hours. Net ratio: 128 / 136 = 94%. Gross: 128 / 152 = 84%.
Hours realization. Written hours are not yet invoiced hours. Between the two sit write-offs (hours the client does not accept), corrections, goodwill hours and administrative leaks — hours that do carry employment costs but produce no revenue. A realization of 97% sounds high, but with fifty professionals that 3% quickly adds up to one and a half FTE of work given away. Report realization per month and per client: structural write-offs at one client are a contract or expectation problem, not an administrative detail.
Both KPIs belong not only in the management report but also in a short weekly utilization view — the staffing equivalent of the cash flash from the main article: who sits where, who becomes available, which assignments are ending. That weekly rhythm prevents bench time from only becoming visible at month-end close.
How do you monitor margin per professional?
The margin per professional is the rate times the billable hours, minus that person’s full employment costs — and “full” is the key word here. Whoever only sets gross salary against the rate structurally overestimates the margin: on top of gross salary come employer charges (social contributions, pension, holiday pay — as a rule of thumb roughly a 25-35% surcharge), plus direct costs such as a lease car, training and certifications.
A worked example. A professional with a rate of EUR 85 per hour writes 130 billable hours: EUR 11,050 in revenue. His gross salary is EUR 5,200; with 30% employer charges he costs EUR 6,760, plus EUR 600 in lease and training budget: EUR 7,360. Margin: EUR 3,690 per month, or 33%. If his utilization drops to 100 hours, EUR 1,140 remains — 13%. The same salary, the same person, a margin three quarters lower: exactly why margin per professional is the KPI, and not the organization’s average margin.
Two setup choices determine whether this figure stays usable. First: do not smooth bench time away. Hours without an assignment should remain visible as costs of the organization — whoever spreads them over the billable hours of colleagues makes good placements look artificially worse and hides the real problem. Second: keep overhead (office, staff, sales) out of the margin per person. Those costs belong at organization level, in a separate line of the P&L; allocated at individual level they pollute every comparison between professionals.
In the management report this works as a layered table: margin per professional in the appendix, per team or discipline in the KPI block, and the outliers — placements below an agreed margin threshold — named in the commentary, with an action attached: renegotiate the rate, replace, or part ways.
How do you structure the management report for staffing?
The management report for staffing follows the seven fixed sections from the main article on the good management report — each filled in for staffing:
- Summary. One page with the billable-ratio trend chart, margin development and the three messages of the month — say a top assignment ending or rising DSO at a large client.
- Profit and loss statement. Revenue, employment costs and overhead, split per team, label or discipline — the steering level. Show year-to-date and the same month last year next to the month, present one-offs separately as adjustments to EBITDA, split direct employment costs from bonuses, and give wage-cost subsidies (such as the Dutch WBSO) their own line — with gross margin excluding and including subsidies.
- Balance sheet. Receivables dominate; show an ageing analysis, the largest outstanding items, the G-account balance separate from free cash, plus two sector-specific items: revenue to be invoiced (written, not yet invoiced hours) and payroll taxes and social contributions payable — often the largest current liability in this payroll-intensive model.
- Cash flow. The monthly gap between salary payments and client receipts, plus the expected cash position — with free cash and G-account separate. The critical overview, especially during growth.
- Variance analysis. Utilization, rate and employment costs versus budget and last year: was the deviation an hours, price or calendar effect? Correct for the number of working days: a month with two working days fewer already depresses revenue by some 10% without anything going wrong.
- KPIs. The set from this article as trends: billable ratio, margin per professional, spread, realization, DSO, client concentration, attrition.
- Commentary. The story: why utilization moved, which placements sit below the margin threshold and what follows, how the pipeline looks.
For delivery, the norm from the main article applies: within 5-10 working days after month-end, with a month-end close so previously reported figures stop shifting through late bookings. The hours cycle helps: hours are written and approved weekly, so the revenue side of the close can be finalised early — the remaining delay sits in purchase and overhead invoices — absorbed by a soft close.
Alongside runs the weekly utilization view from the previous section: steer weekly on people and assignments, decide monthly on figures.
Multiple entities or labels: how do you report at group level?
Staffing groups are rarely a single entity. The common pattern: a holding with operating companies per label, discipline or region, and often a separate payroll entity that has the professionals on its payroll and lends hours on to the operating companies. For reporting, that means two levels at once: the consolidated group picture for management and investors, and the figures per entity for steering per label.
The internal charges make that harder than it looks. The payroll entity invoices the operating companies internally, the holding charges management fees, and sometimes one label lends a professional to another. All those intercompany flows are revenue in one entity and costs in another — at group level they must cancel out, otherwise group revenue double-counts internal hours and no margin KPI is right anymore. Netting them out manually in Excel is error-prone and costs time every month; how elimination and consolidation work structurally is covered in consolidation for SME CFOs and the deep-dive on multi-entity consolidation.
Finstack automates this for groups of 1 to 50 entities: every entity connects through its own accounting package, charts of accounts are mapped to one group chart, and the engine recognizes intercompany relations automatically — including the charges between payroll entity and operating companies — without having to set up separate ledger accounts for them. The result: a consolidated P&L and balance sheet next to the figures per entity, with every line clickable through to the source booking.
For the management report this means the KPI set from this article runs on both levels: utilization and margin per label and for the group as a whole, without double counting — and without the month-end close having to wait for the merging.
How do you automate reporting from your ERP?
The figures for the staffing report come from two systems: the accounting package (revenue, costs, receivables) and the time-tracking system (written and invoiced hours, utilization). The automation gain sits mainly on the accounting side — and it can be made directly.
Dutch staffing companies typically run on AFAS (strong in HR and payroll, widely used in the sector), Exact Online or Twinfield. Finstack connects all these packages directly via API, read-only and at transaction level: the actuals refresh automatically every day, with a manual refresh at any moment — for example right before the reporting deadline. With multiple entities, the consolidation from the previous section runs along automatically, and normalizations are booked as adjustment entries in the consolidation layer — outside the entities’ own administrations.
Reporting then happens wherever the team wants to work. The Finstack dashboards show revenue, margin, receivables and the consolidated figures in real time, clickable through to the source transaction. Whoever builds the management report in their own Excel or Google Sheets model — for example to place hours and utilization data from the time-tracking system next to the financial figures — uses the 2-way integration: the financial actuals refresh in the existing model in one click, without copy-paste. You can also share dashboards and reports with stakeholders such as management, investors and the accountant, by giving them access to Finstack, with access rights set per user.
The effect on the rhythm: the financial side of the management report is ready on day one instead of after days of collecting, and the time shifts to what counts — the analysis of utilization, margin and pipeline. Finstack starts from EUR 39 per month for the first entity: live in 5 minutes, set up within a day.
Do you have a payroll entity lending hours to operating companies? You do not need separate intercompany accounts for that — Finstack recognizes the IC relations automatically, on your existing ledger setup, and eliminates the internal charges in the group report.
Explore Finstack.
Free trial for 14 days.
Access to all features. No credit card required.
The 3 most common mistakes in staffing reports
Three patterns we see again and again at staffing companies. Each costs margin or cash; each is preventable with the right setup.
Steering on total margin instead of margin per professional
A healthy average margin can hide loss-making placements for months: the top performers subsidise the rest. Whoever only reports the organization average sees rate pressure and skewed placements only when the total margin drops — and by then it is too late to adjust per placement. Report the margin per professional, with a threshold below which action is mandatory.
Keeping bench time out of the billable ratio
A billable ratio that only counts placed professionals sits structurally at 95%+ and hides exactly what hurts: the people without an assignment, who still cost a salary every month. Count everyone in the denominator and make bench time visible as a separate line in the P&L and the commentary — then the organization’s real profit lever becomes steerable.
Growing without watching DSO
Every new placement means paying months of salary before the first client payment arrives. A staffing company growing fast with a DSO of 60 days is effectively pre-financing two monthly salaries per professional — and can be profitable yet still run into cash problems. Put DSO and the expected cash development in the management report as standard, and watch payment terms with every new client.
Frequently asked questions
Can't find your question? Let us know
Which KPIs matter in staffing and secondment?
The core: billable ratio (billable hours divided by available hours), margin per professional (rate minus full employment costs), average hourly rate versus cost per hour, hours realization (invoiced versus written), DSO, headcount (direct versus indirect), revenue and margin concentration per client, and attrition. Report per professional and per team, as trends next to budget.
How do you calculate the billable ratio in staffing?
Billable ratio is billable hours divided by available hours. Choose deliberately between net (after deducting leave and public holidays) or gross (all contract hours), and stick to that definition. Also count professionals without an assignment in the denominator — otherwise the KPI hides exactly the bench time you want to see.
How do you calculate margin per professional?
Rate times billable hours, minus the full employment costs: gross salary plus employer charges (as a rule of thumb roughly a 25-35% surcharge) plus direct costs such as lease and training. Keep overhead out and do not smooth bench time away against colleagues’ billable hours. Report per person, with a margin threshold below which action follows.
Why is DSO so important in staffing?
Salaries go out monthly, while client invoices are typically paid after 30-60 days. Every new placement therefore costs cash before anything comes in — the working-capital requirement grows with the organization. A growing staffing company with rising DSO can be profitable and still run into liquidity problems; watch DSO monthly.
How do you handle the Dutch G-account in the management report?
In the Netherlands, clients deposit part of the invoice amount into the blocked G-account, to cover hirer’s liability. That balance can only be used for payroll taxes and VAT owed to the Dutch Tax Administration. Show the G-account balance separately from free cash on the balance sheet and in the cash flow statement, and include both in the liquidity forecast.
How do you report with multiple entities or labels in a staffing group?
On two levels: consolidated for the group picture and per entity for steering per label. Internal charges — such as the payroll entity lending hours to operating companies and the holding’s management fees — must be eliminated, otherwise group revenue double-counts. Finstack detects and eliminates those intercompany flows automatically.
Which accounting packages does Finstack connect for staffing companies?
Finstack connects the packages common in the sector — AFAS, Exact Online and Twinfield — plus, among others, Odoo, Xero, QuickBooks and MS Dynamics 365 BC. Direct API connection, read-only, at transaction level, with daily sync and manual refresh. From EUR 39 per month, live in 5 minutes, set up within a day.

CFO turned Founder - Finstack
Sources and provenance
- Finstack — Reporting & insights (dashboards, Excel/Sheets sync): finstack.io/solutions/reporting-insights
- Finstack — Integrations with AFAS, Exact, Twinfield and other packages: finstack.io/solutions/integrations
- Finstack Help Center — Sources & connections (sync frequency, security): help.finstack.io
- Finstack — Pricing (from EUR 39/month): finstack.io/pricing
- Business.gov.nl — Liability for payroll tax and VAT for temporary staff (G-account): business.gov.nl
- Belastingdienst (Dutch Tax Administration) — G-account: request, use and unblock: belastingdienst.nl
Last reviewed: 25 July 2026 · Next review: October 2026





.png)