Procurement asks: “how much does it cost to hire a developer?” The agency quotes one number. That number hides three things: stack, seniority and margin. In 2026 the gap between a React mid and a SAP Fiori consultant is not 10 percent. It is two markets, two time-to-fill curves and two empty-seat risks.
Below is a map of IT body leasing rates in Poland as of September 2026: what the specialist invoices on B2B, what the client pays, how much margin eats, and when a permanent hire is actually cheaper. This is not a Commoditech price list and not a quote. The bands are market ranges. A rate for a named profile comes after a brief, not after an article.
The sentence missing from every rate card
Client rate = specialist B2B rate × (1 + margin). In a transparent model the margin is 10–25%. In a black-box model it is 35–60%. If the vendor will not split the invoice, you are not comparing rates. You are comparing mark-ups.
1. What you actually buy in an hourly rate
In body leasing (IT contracting / staff augmentation) the client is not buying “a developer for X zloty”. They are buying an hour of a screened contractor, plus delivery ops, plus vendor risk. A T&M invoice has three layers:
- Specialist rate — what the engineer invoices on B2B (net + VAT). That is the number in No Fluff Jobs ads and the Hays IT Contracting report.
- Vendor margin — technical screening, timesheets, NDA, IP, replacement, hardware, unused bench. Our policy is public: 10–25%, depending on how rare the profile is and how long the contract runs. The higher the specialist rate, the lower the percentage.
- Risk buffer — a contract shorter than 3 months, on-site Warsaw, on-call, clearance, a niche stack. This is not a hidden margin. It is the premium for someone else holding a bench.
The conversion we use with CFOs: 160 hours a month on a full-time contract (21 days × ~7.6 h). Senior Java at 200 PLN/h is 32k PLN net/month on the client invoice — before VAT.
How agencies bury 40–60% inside one all-inclusive rate, and where the IP chain breaks, is in our guide to body leasing contracts.
2. Why frontend is cheap and SAP is not
Bands do not come from a “national average developer salary”. They come from how many CVs an ad attracts and how many interview rounds a candidate will sit through.
In early September 2026 JobHunt.pl aggregated 21,211 active IT roles. There were seven times more senior ads than junior ads. No Fluff Jobs, Q1 2026: about 60% of roles targeting seniors, about 5% juniors. ERP dethroned Architecture as the best-paid specialism: 28.5–33.5k PLN B2B for SAP/ERP, 27–32k for architects.
From a recruiter’s desk: a React mid ad collects CVs in 48 hours. A Fiori or integration-architect ad sits for two weeks. A 28–33k budget does not open the inbox. A phone call and a contract from Monday does — not six rounds and an unpaid take-home. We unpacked that split in IT Recruitment 2026: frontend is flooded, SAP sits empty.
Python has split into two jobs. Classic backend (Django/FastAPI) still has supply. An LLM/RAG engineer costs 35–50% more than CRUD in the same language. A brief that says “Python Developer” for an agentic build is the most expensive mistake you can make in 2026: you pay a mid rate and get another bootcamp graduate.
3. IT body leasing rates 2026 (client-side)
The table is an indicative client invoice rate on time & materials: remote or hybrid, 3+ month contract, Poland, PLN net/h, excluding VAT. Floor ≈ specialist rate × 1.10. Ceiling ≈ specialist rate × 1.25 plus a niche premium. Sources for specialist rates: NFJ Q1 2026, JobHunt 1 Sep 2026, Hays IT Contracting 2026, published T&M benchmarks.
| Stack / role | Mid (PLN/h) | Senior (PLN/h) | Senior ≈ k PLN / month (160 h) | What pushes the top of the band |
|---|---|---|---|---|
| Frontend (React / Angular / Vue) | 120–180 | 160–240 | 26–38 | Design system, SSR, a11y; supply is wide |
| Java / Kotlin backend | 140–190 | 180–275 | 29–44 | Payments, Kafka, 24/7, Spring Cloud |
| .NET / Azure | 130–180 | 170–260 | 27–42 | Enterprise integration, D365 on the code side |
| Python backend | 145–200 | 200–280 | 32–45 | CRUD is cheap; data pipelines are not |
| AI / LLM / RAG | 180–250 | 240–350 | 38–56 | +35–50% vs Python CRUD; production, not prompting |
| DevOps / SRE / Cloud | 140–200 | 200–325 | 32–52 | Kubernetes, FinOps, on-call, multi-cloud |
| SAP / ERP | 200–280 | 250–400 | 40–64 | Fiori, EWM, HANA; NFJ 28.5–33.5k is the specialist B2B |
| Dynamics 365 | 190–270 | 240–380 | 38–61 | FO and CE are not the same person |
| Architecture / solution | — | 240–400 | 38–64 | The rate does not open the inbox. The process does |
| Cybersecurity / GRC | 160–220 | 220–350 | 35–56 | NIS2, DORA, IAM — not “pentest included” |
| Scrum Master / PM | 130–180 | 180–280 | 29–45 | Delivery in a mixed in-house + vendor team |
| QA automation / SDET | 110–160 | 160–240 | 26–38 | Manual QA is materially cheaper; SDET is not |
For DACH buyers: at ~4.3 PLN/EUR a senior Java on the client invoice is about 42–64 €/h, or 335–510 €/day. A comparable senior in Germany usually lands at 400–600 €/day. Poland is no longer “cheap offshore”. It is nearshore where a senior hour is still 30–50% below DE/NL, in the same time zone.
This is not our quote
The bands describe the market, not Commoditech’s rate tomorrow morning. A named profile (senior Java + Kafka + payments, hybrid 2 days Warsaw, start in 10 days) gets a number after a brief. Margin stays in the 10–25% range and is split on the invoice. If someone offers “senior Java at 140 PLN/h all-inclusive”, it is either a mid or the margin is sitting somewhere else in the contract.
4. TCO: body leasing vs payroll vs direct B2B
Comparing an hourly rate to gross salary is the mistake rate cards live on. Run 12 months of a senior Java whose ad will sit for six weeks anyway.
| Body leasing (T&M) | Direct B2B | Payroll (employment contract) | |
|---|---|---|---|
| Rate / pay | 220 PLN/h × 160 h = 35.2k/month | 190 PLN/h × 160 h = 30.4k/month | ~25k gross + employer cost ≈ 31–33k/month |
| Year 1 (pay only) | ~422k PLN | ~365k PLN | ~380–400k PLN |
| Recruitment | Inside the vendor margin | 40–80k (15–25% success fee) or 6–10 weeks of internal HR | The same, plus a longer funnel |
| Empty seat to start | 5–10 days | Often 50-day ad lifetime (JobHunt) | 50 days + notice at the previous employer |
| Cost of 6 weeks without a senior | Negligible | 6/4.3 × ~35k ≈ 49k PLN of lost work — plus a roadmap slip the spreadsheet does not see | |
| Churn / replacement | Vendor SLA (5 working days, 2 profiles) | You start from zero | Notice period + another search |
| When it wins | 3–9 months, rare profile, start ASAP, living scope | 12–24 months, you already have a candidate, you can retain a contractor | Core team for years, not a project |
On pay alone, body leasing is more expensive than direct B2B by the margin. Anyone who says otherwise is hiding recruitment, onboarding or churn risk. It gets cheaper in TCO when the profile is scarce or when 50 days of an empty ad burns sprints. On a React mid whose CVs arrive on Monday, payroll or your own B2B often wins after a year. On SAP Fiori — rarely.
From the desk: two seats, two invoices
Senior Java, hybrid, payments. Brief: “start ASAP”. The client’s ad sat for six weeks; a take-home scared off the only senior. Contractor from the bench: CV in 48 h, start in 8 days. Client rate 230 PLN/h. Six weeks of an empty seat at ~25k B2B is not a zero in Excel — it is two sprints that never happened.
SAP Fiori, 28–33k B2B. The ad does not fill the funnel, because Fiori seniors do not apply. Direct search plus contracting. Client rate lands around 300 PLN/h. Cheaper than 12 weeks of an S/4 programme with no consultant. More expensive than “we will take a Java mid and train them” — that variant costs a year and one failed go-live.
5. Matrix: when the body leasing rate is the right rate
| Situation | What to pick | Why |
|---|---|---|
| A gap of 1–2 seniors, start in 2 weeks, living scope | Body leasing / IT contracting | You pay margin for time. Recruitment will not make it. |
| A whole team (4–8 people) + SM, a new stream | Team leasing | One invoice, one SLA, not eight vendors. |
| A module with a hard spec, 3–6 months | Fix price / work package | You buy an outcome, not an hour. Works only with a closed scope. |
| Core team for 24 months, a profile with supply (frontend, popular backend) | Permanent recruitment or your own B2B | The body leasing margin stops paying for itself after ~12 months. |
| SAP, architecture, GRC/NIS2, production LLM | Contracting, then temp-to-perm | Fill the seat first. A conversion after 9–12 months is cheaper than a 50-day ad. |
6. Four mistakes that inflate (or fake-deflate) the rate
- You compare a React mid to a SAP senior. Not the same product. An average “developer at 180 PLN/h” is useless in a brief.
- You take all-inclusive with no margin split. 250 PLN/h with 130 PLN/h to the engineer is a 48% mark-up and churn in four months. Ask for open-book.
- A 4-week contract with no premium. The vendor will either refuse or send a mid. Short ramp-up costs. Three months is the floor at which 10–25% still makes economic sense.
- “2 days Warsaw” on a scarce profile. JobHunt: hybrid 45%, remote 37%. For a candidate in Tri-City, two days in the capital ends the call before they see the band. Add 10–15% for on-site or live with an empty funnel.
7. How we price it
Commoditech has run IT contracting out of Poland since 2012. We do not publish a per-name rate card here, because a rate without a brief is a lie. We publish the mechanics:
- Margin 10–25%, split. The client sees the specialist rate and the mark-up. Details: margin FAQ.
- First CVs in 24–48 h on profiles we have on the bench; start usually in about a week.
- Two-week trial. If the skills do not stand up in a sprint — you do not pay.
- IP transfers with the monthly timesheet, not after a “final protocol”.
Paths from this rate map:
- IT staff leasing (IT contracting) — the model, rates in practice, SLA.
- Software developer outsourcing — when you need more than one role.
- Java, SAP, Dynamics, AI / LLM, DevOps — landings per stack.
- A brief for a quote — profile, seniority, start date, working mode. Without that, every table lies.
8. FAQ
How much does senior Java body leasing cost in Poland in 2026?
Client-side, T&M, remote/hybrid, contract ≥3 months: 180–275 PLN net/h (about 29–44k PLN / month at 160 h). Specialist on B2B: usually 160–220 PLN/h. The gap is a 10–25% margin. Payments, Kafka and on-call sit at the top. 140 PLN/h “all-inclusive” for a senior Spring engineer is either a mid or a hidden subcontracting chain.
How much does it cost to hire a SAP or Dynamics consultant?
Client-side senior market: 250–400 PLN net/h. NFJ Q1 2026 quoted 28.5–33.5k PLN B2B/month for ERP — that is the specialist’s invoice, not the agency’s. After a transparent margin the client sees about 31–42k/month on a typical profile, and more on Fiori/EWM/D365 FO. The ad does not recruit here. The phone does.
Is body leasing cheaper than a permanent hire?
On 12–24 months of pay alone — no. You pay a margin. It gets cheaper after you add time-to-fill (average IT ad lifetime: 50 days), success fee, social charges and churn. On 3–6 months and on scarce profiles (SAP, architecture, GRC, production LLM) contracting wins, because an empty seat costs more than a 15% mark-up.
What is a fair margin on body leasing?
10–25% in an open-book model. Below 10% it does not cover screening and replacement. Above 35–40% you have a broker: the client pays a senior rate, an underpaid mid sits on the project, and in a quarter the churn starts. Split the invoice. If the vendor refuses — that is the answer.
Are Warsaw rates higher than remote?
Add 10–15% for on-site in a large city, or live with a thinner funnel. Hybrid 2 days Warsaw on a SAP/architecture profile cuts off Tri-City, Silesia and the rest of Poland. Remote is not “30% cheaper”. It is wider. The rate falls when more people can enter the process at all.
9. Sources
- JobHunt.pl — Polish IT market 2026. Snapshot on 1 September 2026: 21,211 ads, seniority, salary bands, working mode, average ad lifetime 50 days.
- No Fluff Jobs — Q1 2026. ERP 28.5–33.5k B2B, Architecture 27–32k, Security 25–30k, DevOps 23.5–28.5k; 60% senior / 5% junior.
- Hays Poland — IT Contracting Salary Report 2026. B2B contractor rates by specialism (AI, SAP, architecture, security, development).
- Business Insider / SW Research–Scalo, Experis, Randstad (25 January 2026). Skills gap: cybersecurity 41%, AI/ML 33%; GRC/NIS2 vs pentest.
- Commoditech — IT Recruitment 2026 (funnel data: frontend vs SAP), transparent margin and IP, 10–25% margin policy.