An HR Partner at a product company is closing a senior backend hire. The candidate has two offers: PLN 22,000 gross on an employment contract from them (about EUR 5,100), and PLN 170 an hour on a B2B contract from a competitor. The question is direct: “Which one is better?” The recruiter tries two online calculators, gets two numbers that do not compare, and has no confident answer. The candidate goes with the competitor’s B2B offer because it “comes out five thousand higher in hand”.

Does it really? That depends on four things rarely asked about: the tax option, unpaid days off on B2B, business costs and pension contributions. A calculator that ignores them compares twelve months of salary with twelve months of invoices without a day of holiday.

Below, we convert both offers into take-home pay under the rules in force in Poland in 2026 — under the progressive tax scale, the 19% flat tax and the 12% lump-sum tax. We show which B2B rate matches a given gross salary, why the same money yields more net on B2B while costing the company less, and what a net comparison does not show. All assumptions are explicit. Amounts are in Polish złoty (indicative euro values at 4.30 PLN per EUR). This article is not tax advice — talk to an accountant before choosing a tax option.

How much take-home pay is left from PLN 22,000 gross on an employment contract in 2026?

Gross pay on a Polish employment contract is reduced by three items: the employee’s social security contributions, the health contribution and the income tax advance.

Employee social contributions in 2026 total 13.71% of gross pay: pension 9.76%, disability 1.5% and sickness 2.45%. On PLN 22,000 that is PLN 3,016.20 a month. The health contribution is 9% of gross pay minus social contributions — PLN 1,708.54. Since 2022 it can no longer be deducted from tax, so it is a pure cost.

Income tax follows the progressive scale: 12% up to PLN 120,000 of annual income and 32% above it, with a PLN 30,000 tax-free amount (a tax-reducing amount of PLN 3,600 a year, or PLN 300 a month). The scale has not changed since July 2022. Employees also have deductible costs of PLN 250 a month, or PLN 300 if they commute from another town.

In January the tax base is PLN 18,734, the tax advance PLN 1,948, and the bank transfer PLN 15,327.26. That amount does not last all year, though. Income accumulates at PLN 18,733.80 a month, so it crosses the PLN 120,000 threshold in July. From then on the advance rises to 32% and the payslip drops to PLN 11,280.26 — more than PLN 4,000 less than in January for the same gross salary.

That is why the only fair measure is annual net pay. For PLN 22,000 gross it looks like this:

Item (year, PLN 22,000 gross per month)Amount
Gross salaryPLN 264,000.00
Employee social contributions (13.71%)−PLN 36,194.40
Health contribution (9%)−PLN 20,502.50
Income tax (12% / 32% scale)−PLN 44,337.79
Net per yearPLN 162,965.30
Average net per monthPLN 13,580.44

This is the figure to compare a B2B offer against — not PLN 15,327 from January and not PLN 11,280 from December, but the PLN 13,580 average (about EUR 3,160). The base case leaves out the PPK pension plan and author’s costs; we discuss both separately because each can move the result by more than ten percent.

We assume full pay for twelve months, including 26 days of holiday and 8 days of sickness. Sick days are actually paid at 80%, but the effect on annual net pay is below 1%.

What contributions and taxes does a B2B developer pay in Poland in 2026?

On a B2B contract, the developer runs a sole proprietorship and pays all contributions personally. Their level depends little on earnings and a lot on how long the business has existed and which tax option is chosen.

Social contributions. The standard base in 2026 is 60% of the forecast average wage, or PLN 5,652. On that base the contractor pays:

ContributionRateMonthly amount
Pension19.52%PLN 1,103.27
Disability8.00%PLN 452.16
Sickness (voluntary)2.45%PLN 138.47
Accident1.67%PLN 94.39
Labour Fund2.45%PLN 138.47
TotalPLN 1,926.76

That is PLN 23,121.12 a year — regardless of whether revenue is PLN 10,000 or PLN 50,000 a month. This is the first reason B2B yields more net at high rates: social contributions are fixed, while on employment they grow in proportion to salary, up to the 30x cap of PLN 282,600 a year.

New businesses pay less. For the first 6 months there is start-up relief — no social contributions, only the health contribution. For the next 24 months the contractor can pay preferential contributions on a base of 30% of the minimum wage (PLN 1,441.80): PLN 456.18 a month with sickness insurance. A third relief, Small ZUS Plus, depends on the previous year’s revenue (limit PLN 120,000) and usually does not apply to seniors at market rates.

The health contribution depends on the tax option:

  • Progressive tax scale — 9% of income, at least PLN 432.54 a month. Not deductible.
  • 19% flat tax — 4.9% of income, at least PLN 432.54. The amount paid can be deducted from income up to PLN 14,100 a year.
  • Lump-sum tax — a fixed amount based on annual revenue: PLN 498.35 up to PLN 60,000, PLN 830.58 between PLN 60,000 and PLN 300,000, and PLN 1,495.04 above PLN 300,000. Half of the contribution paid is deducted from revenue.

The PLN 432.54 minimum is 9% of the minimum wage (PLN 4,806). In 2025 the base for the scale and the flat tax was 75% of the minimum wage, but from 2026 the rules returned to the full amount. The lump-sum thresholds are derived from the average wage in the enterprise sector in the fourth quarter of 2025, which Statistics Poland (GUS) announced at PLN 9,228.64.

Income tax. Software services (Polish classification PKWiU 62.01) on the lump-sum tax are taxed at 12% of revenue. The flat tax is 19% of income, and the progressive scale works exactly as on employment: 12% and 32% with the tax-free amount. Our glossary covers tax issues for contractors in more detail.

What net pay does PLN 170 an hour give under the tax scale, flat tax and lump-sum tax?

For a fair comparison, the contractor takes the same time off as an employee. 2026 has 2,008 working hours. A senior employee with a university degree is entitled to 26 days of holiday, and we assume 8 days of sickness. Nobody pays for those 34 days on B2B, so the contractor invoices 1,736 hours.

At PLN 170 net of VAT an hour (about EUR 40), annual revenue is PLN 295,120, or PLN 24,593 a month on average. It is the same example we used in our article on total employer cost in Poland in 2026 — there from the company’s perspective, here from the specialist’s.

We assume business costs of PLN 650 a month (PLN 7,800 a year): accounting PLN 250, equipment and software PLN 300, liability insurance and other expenses PLN 100. On the lump-sum tax these costs do not reduce tax, but the contractor still pays them, so we deduct them in every variant. Social contributions are calculated in full — as a developer pays them after the relief period ends.

Item (year, PLN 170/h × 1,736 h)Tax scaleFlat tax 19%Lump-sum 12%
RevenuePLN 295,120PLN 295,120PLN 295,120
Business costs−PLN 7,800−PLN 7,800−PLN 7,800
Social contributions−PLN 23,121−PLN 23,121−PLN 23,121
Health contribution−PLN 23,778−PLN 12,946−PLN 9,967
Income tax−PLN 56,944−PLN 47,738−PLN 32,042
Net per yearPLN 183,477PLN 203,515PLN 222,190
Average net per monthPLN 15,290PLN 16,960PLN 18,516
Difference vs PLN 22,000 gross employment+12.6%+24.9%+36.3%

The candidate was only partly right. On the lump-sum tax, B2B gives almost PLN 5,000 a month more than employment. Under the progressive scale, the advantage drops to PLN 1,700, a level easily wiped out by a gap between contracts or a month of longer illness.

That is why the first question to ask a candidate comparing offers is: “How are you taxed?” The second: “Did you account for holidays in that number?” Most online B2B calculators compute revenue as the rate times 168 hours times 12 months — 2,016 hours, or 280 hours more than someone who takes holidays and gets sick will actually invoice.

Why does B2B leave more net pay while costing the company less?

From the company’s side, PLN 170 an hour also looks attractive: in our article on total employer cost, we calculated that a productive hour of the same senior costs the company PLN 218.88 on employment and PLN 198.77 on B2B. So where does the difference come from?

The answer is the tax wedge — the part of labour cost that goes to the state rather than the worker. On an employment contract, the employer spends PLN 322,027.20 a year on payroll (salary plus 20.48% employer contributions and 1.5% PPK). The employee keeps PLN 162,965.30 of that — 50.6%. On B2B, the company pays PLN 295,120, and a contractor on the lump-sum tax keeps PLN 222,190 — 75.3%; on the flat tax, 69.0%.

The gap has three sources:

  1. B2B social contributions are flat. An employee and employer together pay about 34% of salary in social contributions. A contractor pays a fixed PLN 1,926.76 a month regardless of revenue.
  2. Tax rates are lower. 12% lump-sum on revenue or 19% flat tax on income, against 32% above the threshold on the scale.
  3. The health contribution is capped. On the lump-sum tax it is a fixed amount; on the flat tax, 4.9% and partly deductible. On employment it is 9% with no deduction.

The same asymmetry has a flip side. Lower social contributions mean a lower future state pension, no paid holiday and sickness benefit calculated on the minimum base. A contractor does not simply “earn more” — they take over risks and benefits that the system funds for employees. We come back to this in the section on costs a net comparison does not show.

What B2B rate is equivalent to a gross salary on an employment contract?

Candidates ask this, and so do HR teams building salary ranges for both forms. We calculated the B2B hourly rate at which annual net pay equals net pay from employment, using the same assumptions: 1,736 invoiced hours, PLN 7,800 of annual costs, full social contributions.

Employment gross per monthEmployment net (average / month)B2B tax scaleB2B flat taxB2B lump-sum 12%
PLN 10,000PLN 7,147PLN 78/hPLN 82/hPLN 81/h
PLN 15,000PLN 10,017PLN 108/hPLN 108/hPLN 103/h
PLN 22,000PLN 13,580PLN 150/hPLN 140/hPLN 131/h
PLN 30,000PLN 18,082PLN 203/hPLN 180/hPLN 167/h

The table shows a relationship that single numbers hide: the higher the salary, the less B2B revenue is needed to match its net pay. At PLN 10,000 gross, annual lump-sum revenue has to be 17% higher than annual gross salary, because fixed social contributions weigh heavily on low earnings. At PLN 22,000, 86% of annual gross salary is enough; at PLN 30,000, 80%.

At low earnings the tax scale beats the flat tax, because the PLN 30,000 tax-free amount matters more than the lower rate. At senior rates the scale is the least attractive option, used mainly by those who cannot choose the other two.

In recruitment practice this means that converting offers by rule of thumb goes wrong in both directions. The popular rule “hourly rate times 160 equals gross monthly salary” overstates the value of B2B for juniors and understates it for seniors. PLN 131 an hour for a senior on the lump-sum tax is equivalent to PLN 22,000 gross, not PLN 21,000 as the rule would suggest.

For comparison: in our body leasing rate benchmark for 2026, senior backend developers cost clients PLN 180–260 an hour. The difference between those amounts and the rates paid to specialists covers recruitment, a replacement guarantee, administration and the provider’s margin.

How do 50% author’s costs and the PPK plan change the comparison?

Two features of Polish employment can shift the comparison more than the choice between lump-sum and flat tax. B2B calculators usually leave them out.

50% author’s costs. A developer whose work consists of creating works protected by copyright — source code, documentation, algorithms with an individual character — can apply 50% deductible costs on employment to the part of salary paid for creative work. The limit is PLN 120,000 of costs a year. The employment contract must provide for the transfer of copyright, and creative work must be recorded. Working in IT alone is not enough.

Assume 80% of a senior’s working time is creative. At PLN 22,000 gross, author’s costs amount to PLN 91,122 a year — within the limit. Tax falls from PLN 44,337.79 to PLN 15,946.68, and net pay rises to PLN 15,946.37 a month, or 17% more. The equivalent B2B rate rises accordingly:

Employment gross (80% creative work)Average net / monthB2B flat taxB2B lump-sum 12%
PLN 15,000PLN 11,153PLN 118/hPLN 112/h
PLN 22,000PLN 15,946PLN 161/hPLN 150/h
PLN 30,000PLN 21,218PLN 209/hPLN 196/h

For HR, this is a strong argument when talking to candidates. Employment with author’s costs at PLN 22,000 gross gives net pay comparable to B2B on the flat tax at PLN 160 an hour — with paid holiday, full labour law protection and a higher pension. If the company applies author’s costs, it is worth saying so in the offer, along with an estimate of net pay.

PPK. An employee enrolled in the PPK employee capital plan pays 2% of gross salary, and the employer adds 1.5%, which is taxed as the employee’s income. Net pay falls from PLN 13,580.44 to PLN 13,034.84 a month, but PLN 9,240 a year accumulates in the PPK account. That is savings, not a cost — a B2B contractor has to put such an amount aside alone, without an employer top-up.

Which option pays off for a developer: lump-sum tax, flat tax or the tax scale?

For most B2B developers in 2026, the answer is the 12% lump-sum tax. In the PLN 170 an hour example, it gives PLN 1,556 a month more than the flat tax and PLN 3,226 more than the scale. There are three situations, however, in which that conclusion stops holding.

High business costs. The lump-sum tax applies to revenue, so costs do not reduce it. The flat tax applies to income. At PLN 170 an hour, the flat tax starts to win when annual costs exceed about PLN 89,000. A developer working on their own laptop and paying an accountant is far from that. A contractor who engages subcontractors, leases a car and rents an office may get close.

The PLN 300,000 revenue threshold. The lump-sum health contribution jumps from PLN 830.58 to PLN 1,495.04 a month once annual revenue minus social contributions exceeds PLN 300,000. At 1,736 hours, that happens at about PLN 186 an hour. The effect is noticeable: at PLN 186 an hour the lump-sum tax leaves PLN 20,552.75 net a month, and at PLN 187 — PLN 20,055.46, almost PLN 500 less despite the higher rate. Above the threshold, a few złoty more on the rate recovers the loss, but contractors hovering around the line should calculate it before negotiating.

The year of switching from employment to the same company. We discuss it separately below, because it affects many companies and often surprises both sides.

A separate option is IP Box — a preferential 5% rate on income from qualifying intellectual property rights, available with the flat tax or the scale. If all the revenue in our example qualified, net pay on the flat tax would rise to about PLN 19,900 a month. In practice only part qualifies, and the relief requires detailed records and ideally a tax ruling. For many developers working in staff augmentation, where code rights pass to the client, IP Box is hard to defend.

Preferential contributions raise net pay at PLN 170 an hour to PLN 19,809.95 a month on the lump-sum tax and PLN 18,092.39 on the flat tax — but only for the first 30 months.

What does a net comparison not show: holidays, sickness, pension and gaps between contracts?

Net pay shows what reaches the bank account, not what the whole contract is worth. Here B2B and employment differ in four areas.

Pension. On employment at PLN 22,000 gross, 19.52% of salary goes to the state pension account — PLN 51,532.80 a year, from the employee’s and employer’s shares. A contractor paying contributions on the minimum base pays PLN 13,239.24. The difference is PLN 38,293.56 a year of pension capital, which is indexed annually. A contractor can close the gap by saving privately, for example in Polish IKE or IKZE retirement accounts, or by voluntarily raising the contribution base. Without that, part of the net advantage is a loan from their future self.

Sickness. An employee receives 80% of salary from the employer for the first 33 days of sickness in a year, then a benefit from the social insurance institution (ZUS). A B2B contractor receives nothing from the client. With voluntary sickness insurance, the right to benefit starts only after 90 days of continuous coverage, and on the minimum base it is about PLN 3,900 a month. A long illness for a senior on B2B means losing most of their income.

Gaps between contracts. B2B contracts end, and finding the next one takes time. One month without work a year reduces net pay at PLN 170 an hour from PLN 18,516 to PLN 16,712 a month on the lump-sum tax, and from PLN 16,960 to PLN 15,381 on the flat tax. In the latter case, the advantage over employment with author’s costs disappears.

Paid days off. Some B2B contracts in IT include a clause on paid days off — usually 20–26 days a year. With 20 paid days at PLN 170 an hour, lump-sum net pay rises to PLN 20,510.51 a month. Two offers with the same rate can thus differ by tens of thousands of złoty — and for the company it is also a legal risk, discussed below.

Harder to price: a notice period of up to three months on employment, parental leave, and creditworthiness — some banks require 12–24 months of business history.

When does switching from employment to B2B with the same employer remove the right to the lump-sum and flat tax?

A common trap: an employee asks to move to B2B, the company agrees, both sides calculate net pay on the lump-sum tax — and then it turns out the lump-sum tax is not available that year.

Polish law excludes the preferential tax options when an entrepreneur provides services to a current or former employer and those services correspond to the duties previously performed under employment:

  • Flat tax (Article 9a(3) of the Personal Income Tax Act) — the exclusion covers the tax year in which those duties were performed under employment.
  • Lump-sum tax — the exclusion covers the current year and the previous year. A senior who worked on employment until the end of 2026 and from January 2027 provides the same services on B2B to the same company cannot use the lump-sum tax in 2026 or in 2027.

In that situation business income is taxed under the progressive scale. In our example that means PLN 15,290 net a month instead of PLN 18,516 — a difference of about PLN 38,700 a year. Changing the form of cooperation may still pay off, but much less than both sides assumed.

The key word is “correspond”. If the B2B scope genuinely differs from the previous duties, the exclusion does not apply — but tax authorities judge facts, not job titles. The same developer in the same team, on the same product, under the same manager, rarely passes that test.

For HR, the conclusion is simple: when an internal switch of contract form is on the table, do not promise the candidate a lump-sum or flat-tax net figure. Ask them to calculate it with an accountant under the progressive scale for the first year.

How do the labour inspectorate reform and pay transparency change B2B offers in 2026?

2026 brought two changes that affect every company hiring developers in both forms.

The reform of the National Labour Inspectorate (PIP) has applied since 8 July 2026. A district labour inspector can now convert a civil-law contract, including a B2B contract, into an employment contract by administrative decision — previously that required a court ruling. The procedure starts with an instruction to conclude an employment contract, and only if it is not followed does a decision come, which can be appealed to a labour court. The rules also cover contracts concluded before the reform took effect.

The test is the same as in Article 22 of the Labour Code: work under direction, at a place and time set by the company, without business risk on the contractor’s side. A B2B contract in which the developer has a line manager, a fixed schedule, a constant monthly “salary” on the invoice and holidays “subject to approval” looks like employment — and can now become employment by an inspector’s decision. Paradoxically, a paid days off clause, which makes an offer more attractive to candidates, is one of the signals that bring a contract closer to an employment relationship. We described these signals in detail in our article on B2B contracts and body leasing in 2026.

Pay transparency in recruitment has applied since 24 December 2025 under an amendment to the Labour Code of 4 June 2025, implementing the EU Pay Transparency Directive. Employers must disclose the salary or its range to candidates in the job advertisement or before the interview. “Competitive salary” does not meet the requirement, and a breach carries a fine of PLN 1,000 to 30,000. The obligation applies to employment, but in practice the market expects ranges for both forms.

For HR, an ad saying “PLN 22,000 gross on employment or PLN 170/h on B2B” is no longer just marketing: both amounts must follow from objective criteria, and the relationship between them should be explainable. The table of equivalent rates above is a good starting point.

How do you convert a B2B offer into an employment salary step by step?

A B2B salary calculator that genuinely compares offers takes an hour to build in a spreadsheet. Calculate both options per year, with the same number of days off.

Step 1. Annual net pay on employment. Gross × 12, minus social contributions of 13.71% (pension and disability only up to PLN 282,600 a year), minus the 9% health contribution on gross minus social contributions, minus tax under the scale (12% up to PLN 120,000 of income, 32% above, minus the PLN 3,600 tax-reducing amount). Income is gross minus social contributions minus deductible costs (PLN 3,000 a year or author’s costs).

Step 2. Invoiced hours. 2,008 hours in 2026 minus holidays and average sickness — about 1,736 hours for a senior. If the B2B contract includes paid days off, add them.

Step 3. B2B revenue. Rate × invoiced hours.

Step 4. Social contributions. PLN 23,121.12 a year with full contributions, PLN 5,474.16 with preferential ones, zero during start-up relief.

Step 5. Health contribution. Lump-sum: PLN 5,980.20, 9,966.96 or 17,940.48 a year depending on the revenue threshold. Flat tax: 4.9% of income (revenue minus costs minus social contributions), at least PLN 5,190.48. Scale: 9% of income, at least PLN 5,190.48.

Step 6. Tax. Lump-sum: 12% × (revenue − social contributions − 50% of the health contribution). Flat tax: 19% × (income − health contribution up to PLN 14,100). Scale: as on employment, without the employee’s deductible costs but with business costs.

Step 7. Annual B2B net pay. Revenue minus business costs, social contributions, health contribution and tax.

Step 8. Adjustments. Subtract realistic gaps between contracts, add the value of the pension capital difference (about PLN 38,000 a year in favour of employment in our example) and check whether the lump-sum or flat tax is actually available to you that year.

Comparing Step 1 with Step 7 shows what you really earn under each form. Step 8 shows what the difference is worth.

When is employment the better choice than B2B, and when is it the other way round?

Neither form always wins. The checklist below helps an HR Partner and a candidate judge which offer is better in a specific situation:

FactorFavours employmentFavours B2B
Salary levelAround PLN 10,000 gross — B2B revenue must exceed annual gross by 17%, because fixed contributions weigh heavily on low earningsPLN 22,000 gross and above — revenue equal to 80–86% of annual gross is enough
50% author’s costsThe company applies them — net pay rises by up to 17%The company does not apply them
Tax option on B2BScale only (e.g. the year of switching to the same company)12% lump-sum or 19% flat tax
Stability and healthPlanned parental leave, risk of longer illnessConfidence in continuous work, 3–6 months of savings
PensionNo habit of saving independentlyRegular IKE/IKZE contributions or a higher contribution base
Borrowing plansMortgage within a yearAt least 12–24 months of business history
Nature of workFixed schedule, subordination, permanent team and managerIndependence, billing for scope or results
Legal risk for the companyThe work looks like employment — risk of a PIP decision since 8 July 2026Genuine contractor independence

The key takeaways from our calculations:

  1. Compare annual net pay, not the January payslip. On PLN 22,000 gross, take-home pay drops by more than PLN 4,000 in July after crossing the tax threshold. The average is PLN 13,580.
  2. Account for holidays in B2B hours. Realistically a contractor invoices about 1,736 hours a year, not the 2,016 most calculators assume.
  3. The tax option changes the result more than the rate. At PLN 170 an hour, the difference between the lump-sum tax and the scale is over PLN 3,200 net a month.
  4. The B2B rate equivalent to PLN 22,000 gross is PLN 131–150 an hour depending on the tax option — and PLN 150–161 an hour if the employer applies author’s costs.
  5. Part of the B2B net advantage is a transfer of risk and benefits. At PLN 22,000 gross, employment builds about PLN 38,000 more pension capital a year and provides paid holiday and sickness protection.

At ARDURA Consulting we have been building IT teams for clients in Poland, Europe, the Middle East and the USA for more than ten years, and every day we talk to specialists comparing offers in both forms. We see that the best decisions are made when the candidate and the company run the same calculation on the same assumptions. That is why, through staff augmentation, we help clients match the form of cooperation to the role, and in the Try & Hire model a specialist can join the client’s company as an employee after a period of cooperation.

If you are building salary ranges for IT roles in both forms or want to see how your offer compares with the market, talk to our recruitment team. Current rates for individual roles are available on our pricing page.