Skip to content
02/07 · Stocks · Part C · 7 min read

Cost Basis Explained: Understanding FIFO in PIT-38

Confused about calculating your stock cost basis for tax? Learn why Poland uses the FIFO (First-In, First-Out) rule and why using an 'Average Price' can get you into trouble.

Updated 2026-01-24

LOT 1LOT 2LOT 3LOT 4SOLD FIRST — THE OLDESTPURCHASE DATE

The question everyone asks

"I bought Apple shares three times, at a different price each time. Now I've sold half of them. Which purchase price do I put in my PIT-38?"

It's one of the most common questions of the tax season, and the answer isn't quite what most guides claim.


What the law actually says

The FIFO rule lives in art. 24(10) of the Polish PIT Act. It's worth reading literally, because it contains a condition that often gets dropped:

"If a taxpayer disposes of securities acquired at different prices and it is not possible to determine the acquisition price of the securities being disposed of, then in establishing the income from such disposal the rule applies that each disposal concerns, in order, the securities acquired earliest. The rule (…) is applied separately for each securities account."

Two things follow from this that rarely get written down.

1. FIFO is a fallback rule, not the only permitted method

FIFO kicks in only when the acquisition price of the securities sold cannot be determined. If your broker's records are detailed enough to show which specific lot was sold, your cost is the actual price of that lot.

In practice, though, on an ordinary brokerage account the shares of one company form an indistinguishable pool — there's no way to say you sold "that 2023 share rather than the 2024 one". Which is exactly why FIFO is what the vast majority of retail investors end up applying.

But it is not true that Polish law "always mandates FIFO". It mandates it when identifying the lot is impossible.

2. FIFO is counted separately for each account

This is an easy trap to miss. If you hold shares of the same company at two different brokers, you don't line them up in one shared queue. Each account has its own FIFO queue.

When you sell at broker B, you draw from the oldest lot held at broker B — even if you hold an older lot at broker A.


How the two methods differ

MethodHow the cost is calculated
FIFOYou sell what you bought earliest, first
Weighted averageYou add up all costs and divide by the number of units

An important correction, because this is frequently stated wrongly online: the average method does not always understate the tax. Which way it goes depends on the direction prices moved.

  • You bought at rising prices → the oldest lots are the cheapest → FIFO gives higher income and more tax.
  • You bought at falling prices → the oldest lots are the most expensive → FIFO gives lower income and less tax.

So it isn't that one method is "better". It's that you have to apply the one the law and your documentation point to.


A worked example, step by step

We'll do everything in złoty, because that's what the form requires. Your profit in dollars has no tax meaning on its own.

Remember from the article on costs: every amount is converted at the average NBP rate from the last business day preceding the transaction. So each lot carries its own rate.

Purchase history

Purchase dateUnitsPriceNBP rate (day before)Cost in PLN
January 202310100 USD4.004,000.00
June 202310150 USD4.106,150.00
January 202410200 USD4.208,400.00
Total3018,550.00

The sale

In August 2024 you sell 15 units at 250 USD. The NBP rate from the preceding day: 3.90.

Revenue = 15 × 250 USD × 3.90 = 14,625.00 PLN

Cost under FIFO

You sell the oldest units, layer by layer, until you've covered 15:

LayerUnits takenCalculationCost in PLN
January 2023all 1010 × 100 USD × 4.004,000.00
June 20235 of 105 × 150 USD × 4.103,075.00
Total157,075.00

You're left holding 5 units from June 2023 and 10 from January 2024. Those are the ones that will form the cost of your next sale.

Income and tax

Income = 14,625.00 − 7,075.00 = 7,550.00 PLN

Round the base first, then calculate the tax:

7,550.00 → 7,550 PLN 7,550 × 19% = 1,434.50 → 1,435 PLN

A 50 groszy ending rounds up.

What if you used the average instead?

FIFOWeighted average
Cost of 15 units7,075.00 PLN9,275.00 PLN
Income7,550.00 PLN5,350.00 PLN
Tax1,435 PLN1,017 PLN

A difference of 418 PLN. Prices were rising here, so the average would have understated the tax. With falling prices it would go the other way.

We left commissions out to keep the example readable. In a real filing, each lot's commission is added to the cost of that specific lot, at that lot's own exchange rate.


Note: cryptocurrency works nothing like this

If you landed here looking for the answer for Bitcoin — FIFO doesn't apply to you.

Art. 24(10) talks about securities. Cryptocurrency is settled in a separate part of the form and follows completely different logic: you add up all your revenue for the year and subtract all your costs for the year. There are no layers, no queues, no FIFO.

The details are in Crypto gains in PIT-38.


Where this goes on the form

As with costs, the destination depends on whether you received a PIT-8C:

Your situationRevenueCosts
Polish broker with PIT-8Cfield 20field 21
Foreign broker, no PIT-8Cfield 22field 23

In our example (a foreign broker) that would be 14,625 PLN in field 22 and 7,075 PLN in field 23.


Practical tips

  • Keep a spreadsheet. One purchase lot per row: date, quantity, price, NBP rate, cost in PLN. When you sell, tick off the oldest rows in order. Without this, after two years of trading you won't be able to reconstruct the sequence.
  • Don't copy your broker's report uncritically. Foreign brokers show "average cost" by default, because that's standard where they operate. It isn't a calculation for a Polish PIT-38 — and nobody is converting each lot at the correct NBP rate for you.
  • A separate sheet per account. The FIFO queue is separate for each brokerage account.
  • Keep your confirmations. If the tax office asks how you arrived at a number, you're the one who has to show the working.

The return for 2025 is filed between 15 February and 30 April 2026.


This article is educational. The FIFO rule comes from art. 24(10) of the Personal Income Tax Act — it is not described in the Ministry of Finance information brochure for PIT-38. If your broker keeps records that identify the specific lots sold, or your situation is unusual, consult a tax adviser.

→ — Related guides on this topic

All articles →