How to calculate stock market tax — PIT-38 step by step
Detailed instructions for filing PIT-38 from stock market. How to calculate capital gains tax, what to deduct and how to avoid mistakes.
13 min czytaniaQuick Answer
To calculate stock market tax in Poland you file PIT-38 and pay the 19% capital gains tax (podatek Belki) on profit (sale proceeds minus purchase cost and commissions), not on gross sale value. Your broker sends PIT-8C by the end of February; sum income and costs across all brokers, deduct losses from the previous 5 years, then file by 30 April. For foreign brokers you get no PIT-8C and must convert each transaction to PLN at the NBP rate from the preceding business day. You file even at a loss to carry it forward. This is educational information, not investment advice.
Tax on stock market gains in Poland
Anyone who sold shares, ETFs, bonds or other financial instruments at a profit (or loss!) must file PIT-38. The capital gains tax rate in Poland is 19% — the so-called podatek Belki.
Important: You file PIT-38 even when you incurred a loss. Not filing the declaration is an error that can cost you.
Who must file PIT-38?
You file PIT-38 if in a given tax year you:
- Sold shares, ETFs or bonds on GPW or foreign exchanges
- Closed positions on futures or options contracts
- Sold cryptocurrencies (settled separately in PIT-38)
- Redeemed investment fund units
- Realized profit on forex
Exceptions: Profits on IKE and IKZE are not subject to PIT-38 (provided statutory conditions are met).
Where to get the data? PIT-8C
Your broker by the end of February sends you PIT-8C — information about income and costs from paid disposal of securities. This is your basis.
What will you find in PIT-8C?
- Income — total amount from sales
- Tax-deductible costs — purchase price + commissions
- Profit or loss — the difference
If you use multiple brokers (e.g., XTB + mBank + foreign broker), you receive multiple PIT-8C forms and must sum them up.
How to fill out PIT-38 — step-by-step instructions
Step 1: Collect all PIT-8C forms
Log into accounts with each broker and download PIT-8C. Deadline for receipt: by the end of February.
Step 2: Sum up income and costs
| Broker | Income | Costs | Profit/Loss |
|---|---|---|---|
| XTB | 50,000 PLN | 42,000 PLN | +8,000 PLN |
| mBank | 30,000 PLN | 35,000 PLN | -5,000 PLN |
| Total | 80,000 PLN | 77,000 PLN | +3,000 PLN |
Step 3: Add costs the broker didn't include
You can deduct:
- Purchase and sale commissions (usually the broker includes them)
- Currency conversion fees (when buying foreign ETFs)
- Account maintenance costs (if related to investment account)
- Market data access fees (if necessary for investing)
Step 4: Settle losses from previous years
If in previous years (up to 5 years back) you had losses, you can deduct them:
- Maximum 50% of loss from a given year in one tax year
- Or the entire loss if it doesn't exceed 5 million PLN (from 2022)
Example: Loss in 2024 = 10,000 PLN. In 2025 you can deduct up to 5,000 PLN (50%) or all 10,000 PLN (if <5 million).
Step 5: Calculate tax
Profit: 3,000 PLN
- Previous years' loss deduction: 0 PLN
= Tax base: 3,000 PLN
× 19% = 570 PLN tax
Step 6: File PIT-38
- Deadline: by April 30 of the following year
- Where: through e-PIT at podatki.gov.pl, e-Deklaracje program or on paper
- Tip: e-PIT often has pre-filled PIT-38 based on data from brokers
Foreign exchanges — what about tax?
If you invest through a foreign broker (Interactive Brokers, Degiro, Trading 212):
- You don't get PIT-8C — you must calculate income and costs independently
- Convert to PLN — at NBP exchange rate from the day before the transaction
- Include exchange rate differences — they can increase or decrease profit
- Dividends — settled in PIT-38, but include withholding tax (WHT)
Foreign dividends and W-8BEN form
If you signed W-8BEN with a US broker, withholding tax is 15% instead of 30%. You pay the difference of 4% (19% - 15%) in Poland.
Cryptocurrencies in PIT-38
Since 2019 you settle cryptocurrencies in a separate PIT-38 section:
- Income: value of crypto sale
- Cost: value of crypto purchase
- Crypto-to-crypto exchange is not a taxable event
- Crypto-to-fiat exchange (PLN, EUR, USD) is a taxable event
- Crypto loss settled only with crypto gains (not with shares)
Most common mistakes
- Not filing PIT-38 with a loss — you always file, the loss will be useful in the future
- Forgetting about foreign broker — Polish tax office will find out anyway (CRS)
- Wrong currency rates — always NBP rate from the preceding day
- Not deducting losses from previous years — check PIT-38 from the last 5 years
How Freenance can help
Freenance organizes your investment finances:
- Portfolio tracking — see all transactions in one place
- Profit and loss overview — easily check how much you earned or lost in a given year
- Multiple accounts — connect accounts from different brokers
- Transaction history — useful when filling out PIT-38
👉 Organize your investments with Freenance — freenance.io
Related Articles
- Podatek Belki — co to jest? Podatek od zysków kapitałowych 19%
- Przewodnik po ETF-ach na GPW — porównanie wszystkich dostępnych funduszy
- Jak osiągnąć FIRE w Polsce — kompletny przewodnik 2026
FAQ
What is podatek Belki and how high is it in 2026?
Podatek Belki is the Polish capital gains tax of 19% applied to profits from the sale of shares, ETFs, bonds, fund units, derivatives, and cryptocurrencies. It is settled annually on PIT-38 for most retail investors and the rate has remained unchanged since its introduction in 2002. The tax is calculated on profit (sale proceeds minus purchase cost and eligible commissions), not on gross sale value.
Do I need to file PIT-38 if I made a loss?
Yes — PIT-38 must be filed whenever you had taxable transactions, regardless of whether the outcome was a profit or a loss. Reporting the loss also lets you carry it forward and offset it against future capital gains for up to five years, which can meaningfully reduce future tax. Skipping the return forfeits this benefit.
How do I report income from a foreign broker on PIT-38?
When a broker outside Poland does not issue PIT-8C, you must compile transactions yourself and convert each sale and purchase to PLN using the NBP average rate from the business day preceding the transaction. Dividends, currency differences, and any foreign withholding tax are reported in dedicated sections of PIT-38. Keep statements and exchange-rate documentation in case of a tax-office query.
What is the deadline for filing PIT-38 in Poland?
PIT-38 must be filed and any tax due paid by 30 April for the previous calendar year. Pre-filled drafts are typically available on e-Urząd Skarbowy from mid-February once brokers transmit PIT-8C data, but you are responsible for verifying and completing them, especially for foreign accounts. Late filing carries interest and potential penalties.
Does Freenance help with PIT-38 preparation?
Freenance keeps a unified transaction and dividend history across linked brokerage accounts, which makes assembling the data needed for PIT-38 considerably easier. You can export records and totals to share with your accountant or to cross-check the pre-filled return. Freenance does not file taxes on your behalf or provide individual tax advice — consult a tax adviser for complex situations.
How many months could you live without working?
See your Freedom Runway — free