The most common tax mistake a Ukrainian investor makes is not a wrong rate. It is taxing the wrong number.
Investment profit under Article 170.2 of the Tax Code is an annual, netted figure. Not per trade, not per position, not per broker. You take every investment operation closed during the calendar year, subtract documented acquisition costs from proceeds, add the results together — including the negative ones — and what remains is the base.
What that changes
| Trade | Result |
|---|---|
| Sold position A | +$4,000 |
| Sold position B | −$1,500 |
| Sold position C | +$500 |
| Annual investment profit | $3,000 |
| PIT 18% | $540 |
| Military levy 5% | $150 |
| Tax due | $690 |
An investor who declares the $4,000 winner and quietly forgets the $1,500 loser overpays by $345. That is not caution — it is a donation, and it also breaks the loss carry-forward for later years.
Losses carry forward
A negative annual result does not produce a refund. It reduces the taxable investment profit of subsequent years, without a time limit written into the general rule. The mechanism only works if the loss was actually declared in the year it occurred.
This is the argument for filing a declaration in a bad year even when nothing is owed. The loss you do not record is a deduction you cannot use in the year you finally make money.
The acquisition cost has to be documented
The base is proceeds minus documented cost. A broker report showing the purchase, the date and the price is the document. Without it, the tax authority has grounds to treat the entire sale amount as profit — which on a position bought at 90 and sold at 100 turns a 10% gain into a tax on the full 100.
Keep the annual statements. Keep the trade confirmations. A broker that closes your account, or a platform that exits the market, takes its reporting portal with it.
The currency question
For a foreign brokerage account, each operation is converted into hryvnia at the National Bank rate on the date of the operation — the buy at the buy-date rate, the sale at the sale-date rate. The consequence is that hryvnia devaluation between purchase and sale produces taxable profit even on a position that was flat in dollars.
That is not a loophole or an error. It is what taxing in the national currency means, and it is why the hryvnia result and the dollar result on the same trade can point in different directions.
How I read it
The 23% headline is the least interesting part of this. What decides the actual bill is the discipline of the record: every closed position, its documented cost, the rate on the right date, and the losses declared rather than hidden.
An investor with clean records pays tax on the real result. An investor without them pays tax on whatever can be reconstructed — and reconstruction never runs in the taxpayer's favour.
