B2B contract in Poland – how to determine salary when transitioning from an employment contract?
Please note that the calculations and examples cited in this article are based on the Polish legislation in force in 2024.
If you moved to Poland, you may face weird thing – many specialists, especially software developers, decide to work not as employees but as B2B contractors (solo-entrepreneurs). If you are one at some point you may consider switching from employment into your own business. Moving from a contract of employment to a B2B contract is not just a matter of registration. It also includes arrangements written into B2B agreement, out of which crucial one is renumeration (your salary). Ithas to be carefully verified to avoid loses. This is because companies often offer lower rates for B2B than for employment contract, sometimes by tens of thousands of zlotys a year. This occurs as a result of mistakes on their part but sometimes the try to benefit from a lack of experience and knowledge.
Amounts in B2B contracts
In Poland, most of B2B contracts refers to renumeration in net amounts, due to VAT (value-added tax) which has to be charged on top of rates agreed in agreement. This is why in a B2B contract the remuneration is stated as ‘X PLN net plus the VAT due’. For example, if your rate is PLN 20,000 net, you will issue an invoice for PLN 24,600 in total, because of 23% VAT rate. The amount in B2B contract is written in this matter rather as gross total because the VAT rate (the percentage you must add) may be changed by legislator. This is a big difference between an employment contract where the salary is written as gross amount, without reference to taxes.
Another reason is that for companies that are VAT payers, VAT is neutral – they do not treat it as an actual cost of business, due to nature of this tax. There are of course exceptions, like medical or financial industry, where is no VAT. For these companies VAT is not neutral,and they discuss only gross (with VAT added). You may spotit easily by looking at their postings, where net amounts will often be lower Hence, these companies prefer to hire people through on an employment contract rather than B2B contract.
Mistakes in B2B remuneration calculation
There are several mistakes you can make when setting your rate in a B2B contract while switching from employment agreement. The basic and quite common one is to assume that the net rate on invoice is the gross amount from employment agreement. Why is this a mistake? Well salary under employment agreement are actually three different amounts:
- Gross salary – the rate written in employment agreement, from which employer deducts tax (PIT) and contributions (health insurance and so-called social security, i.e. pension, disability etc.).
- Net salary – this is the money left over after all taxes and contributions have been deducted from your gross salary – this is the amount your employer transfers to your account each month.
- Super-gross (also known as gross-gross) – is the actual cost for employer, as it contains gross salary plus contributions paid by employer for every employee, mainly social security contributions. See details below.
What is super gross?
In Polan, when an employer hires an employee under the Labour Code, it does not only deduct taxes and contributions from employee’s salary. It must also pay, out of its own pocket, additional contributions for employee, e.g. pension. Those amounts are not reflected in gross salary stated in employment agreement but added to it. On average, employer has to pay around 20% on top off gross salary stated in employment contract. In terms of specialist’s salary those contributions may go into tens of thousands of zlotys per year. However, there is also a cap.Once annualized salary exceeds 30 times national average salary social security contributions are no longer paid. Which means that this percentage will go down.
Annualized super-gross
Due to abovementioned cap, monthly super-gross may differ. Hence, base for calculations should be total yearly super-gross amount.
For example, if employee’s salary is PLN 25,000 gross monthly, then the super-gross in January will be PLN 30,000 (as employer pays PLN 5,000 on top of gross). While in October salary reaches social security cap, the super-gross drops to about PLN 27,600.Then in November super-gross will drop again to PLN 26,000 for the same gross salary. Some contributions stay e.g. Labour Fund or accident insurance and are still paid for employer. To calculate super-gross, I recommend dedicated tool like this one https://www.bankier.pl/narzedzia/kalkulator-placowy. The amount you are interested in can be found under the ‘Employer’ (Pracodawca) tab in the bottom right-hand corner of the ‘Costs’ (Koszty) column.
Let’s put this into practice
For salary of PLN 20,000 gross per month the annual gross amount is PLN 240,000. On top of that employer has to add approximately PLN 48,000. Hence, for that salary employer must pay in total around PLN 288,000 (annual super-gross). So, if you use monthly gross amount instead of annual super-gross as B2B salary, it will cost you but make profit for employer of:
- PLN 24,000 yearly – in case of PLN 10,000 gross monthly employment salary.
- PLN 48,000 yearly – in case of PLN 20,000 gross monthly employment salary.
Since super-gross, is the actual cost for employer, then using it as reference point for B2B renumeration is not a problem for them. After all, they’ll spend as much on you as they would on an employee under employment agreement. Actually, they are going to spend less, because other mandatory expenses are also excluded, for example health and safety or the Social Benefits Fund (Zakładowy Fundusz Świadczeń Socjalnych).
Fixed rate, man-day rate and hourly rate
We know that our starting point is annual super-gross, the question is how to calculate the net rate? As you probably know, the three most common methods of billing on a B2B contract are:
- A fixed monthly rate (also known as a lump sum) – each month you charge company same rate.
- Man-day rate – you charge company for each business day of your services.
- Hourly rate – you charge company for each hour of your services.
Method to calculate each of them is slightly different.
How to calculate fixed rate?
To obtain fixed monthly rate all you need to do is to divide annual super-gross by 12 months. So, for PLN 20,000 gross in employment contract B2B equivalent fixed rate will be PLN 24,000 net + VAT (288,000: 12 months = PLN 24,000 per month).
PLEASE NOTE: this calculation is for an actual fixed rate B2B agreement. Which means that company does not lower your renumeration for days when you didn’t provide services, e.g. holidays, sick leave etc.
How to calculate man-day rate and hourly rate
Man-day and hourly rates are calculated differently. Under Polish Labour Law each month employee works different number of days and thus hours.
- Firstly, the months have a different number of days,
- Secondly, there are public holidays (e.g. Christmas)
- Thirdly, Polish Labour law gives employees additional days off if public holiday takes place on Saturday – e.g. if 11th November (Independence Day in Poland) takes place on a Saturday, employer gives employees an extra day off during business week
- Also, companies cannot pay B2B contractors for time off in case of man-day and hourly rates. Hence, company will not pay to contractor on sick-leave or vacations. So how do you calculate those rates?
As you see, in Poland each year has a slightly different number of business days. One business (working) day is 8 hours of full-time work. This is how it looks for recent years:
- 2023 – 250 business days, or 2,000 hours
- 2024 – 251 business days, or 2,008 hours
- 2025 – 250 business days, or 2,000 hours
So, let’s assume that the year has 2008 working hours (251 business days x 8h). We have to deduct vacations – every employee under Polish Labour law is entitled to 26 days of paid leave. As each day has 8h, it gives us 208 hours of paid leave. Based on that in 2024 employee actually works 225 days or 1,800 hours (251 days – 26 days of paid leave = 225 or 2008 working hours – 208 hours of paid leave = 1,800 h). Objective of B2B contractor is to get paid same amount as employee while taking time off. Hence, annual super-gross must be dived by total number of actual working hours or working days.
Sticking to the example of PLN 20,000 gross – the annual super-gross is PLN 288,000. So, the hourly rate shall be PLN 160 + VAT per hour (PLN 288,000: 1800h = PLN 160/h). This way person working under B2B agreement can take vacations and still make same amount of money as employee under labour law.
Same method is used for man-day rate. Annual super-gross is divided by the number of working days. So, the daily rate for B2B contract should be PLN 1,280 + VAT (PLN 288,000: 225 days = PLN 1,280 per day).
What causes differences?
There is significant difference between offered rates and above stated method. For a salary of PLN 20,000 gross, companies quite often offer PLN 120 per hour + VAT on B2B. Why? Because they calculate hourly rate, by using gross instead of super-gross, and divide it by average number of working hours per month, typically 168h. This is not the right number as it counts paid time off as working time. Hence, the rate is 120 PLN/h +VAT (20,000: 168 h = 119.05 PLN/h which is rounded up to 120).
How much are you going to lose? Let’s see – I’m assuming that you take 26 days off per year and bill hourly – basically that you work 1800 hours per year. By charging PLN 160/h + VAT you would make PLN 288,000 per year. While by charging PLN 120/h only PLN 216,00. The difference is PLN 72,000 less. Quite a lot, isn’t it?
Does lower income tax justify lower rate?
I sometimes hear that B2B contractor, especially software developer, should not rely on super-gross. As they will save on income tax, they should share that saving with company. In my opinion, this is not a good argument.
- Firstly, by choosing a B2B agreement contractor takes on additional risks and costs, e.g. a lawyer to check a contract, bookkeeping, the obligation to pay taxes even if company has not paid invoices (not to mention other regulatory obligations) or unpaid sick leave.
- Secondly, the company, by ‘employing’ people as B2B contractors, saves on expenses e.g. health and safety, sick leave etc.
- Thirdly, contractor loses protection that the Polish Labour law gives an employee and must obey strict regulations for enterprises.
- Fourthly, contractor does not get benefits from company, because it cannot write it off as business expense. So, contractor is not entitled to private medical insurance, performance bonus, pension plan etc.
- Fifthly and most importantly, difference in earnings between B2B and employment is caused by flat-rate Social Security for entrepreneurs, while employees have to pay on percentage of their salaries (approx. 28% of super-gross). B2B contractor can choose to pay very low social security instead. In practice, this mean that contractor has to set aside money for retirement, illness etc. while employee has this secured by state and employer co-pays social security for that.
In practice, if the gross amount from an employment contract is the net amount on a B2B contract, the difference in earnings is too small to take on all the risks and costs. In such a situation, it is better to opt for an employment contract. Here is a comparison of monthly net earnings after taxes, social security etc:
- Employment contract, PLN 20,000 gross is approx. PLN 12,580 net (average monthly salary for the whole year)
- B2B contract, fixed rate of PLN 20,000 + VAT (net), with 19% income tax and lowest social security contributions gives about PLN 14,230 of net income (PLN 1,650 more in each month)
- B2B contract, fixed rate of PLN 24,000 + VAT (super-gross from PLN 20,000), with 19% income tax gives about PLN 17,300 of net income (PLN 4,720 more than employment).
For easier calculations, I have rounded the amounts and assumed no business expenses for B2B contractor.
What to do if company does not agree?
I would advise to educate and negotiate. People don’t know about super-gross nor how much is it. In my experience, companies agree once contractor explain and show calculations of super-gross. If company doesn’t agree then contractor has three options – to take employment agreement instead, agree to the proposed rate or look for another offer.
Not sure how to convince a company? Have a problem with a contract? Write to me, I negotiate B2B contracts for programmers and other professionals.