“For seven years I counted what I earn on a declaration. Not once did I count what I lose on one. And that is 250 ₴ on every single one, including the ones where nothing at all went wrong.”
Denys Romaniuk runs a customs brokerage office in Izmail. A Danube port, cargo out of Romania and Turkey, a little transit: grain, metal, building materials, home appliances. Fourteen years in customs clearance, the last seven of them as the owner. Three declarants on the payroll, steady clients, a sound reputation. And a profit he had been counting wrong for all seven years.
An office of fifteen hundred declarations
Over the past year the office filed 1 500 declarations. The average price of a clearance is 2 800 ₴, which gives a turnover of 4 200 000 ₴.
This is the average regional broker. Not the biggest in the port and not the smallest.
The importer brings the goods, the supplier prepares the papers, the carrier sets the deadlines. The broker is handed a folder in which everything has already been decided for him, and he has to turn it into a declaration that will clear. He has almost no choice in any of it, and full liability for all of it.
The broker answers for what he did not choose
Denys does not buy the goods, does not ship them and does not sell them. He files the declaration on the importer's behalf and enters the commodity code, the value, the country of origin and another dozen fields. If customs disagrees with any of it, he is the one who will argue, not the client.
- declarations in the year: 1 500
- price of a clearance: 2 800 ₴
- turnover: 4 200 000 ₴
- declarants on the payroll: 3
That is where the whole character of this business sits. The price of the service is fixed and small. The liability for the consequences is neither.
Izmail makes it a particular place for the trade. A Danube port means smaller consignments than Odesa, more different commodity groups and more clients shipping something for the first time. The complexity per declaration here is higher, and the price is the same as on the big flows.
What the 2 800 ₴ buys
The price is not made of one job but of several, and the client sees almost none of them.
The declarant gathers the papers, checks the invoice against the packing list, picks the commodity code, works out the customs value, prepares the permits and attends the inspection if customs orders one. On a simple consignment that is two hours. On a complicated one, two days.
The price is identical either way.
Which is why Denys long ago stopped haggling over it. He knows he does well on a simple consignment, scrapes by on a hard one, and that over a year the average comes out fine. The average really did come out fine, until he started counting something else.
The year in figures
| Line | Amount, ₴ | Comment |
|---|---|---|
| Turnover | 4 200 000 | 1 500 declarations × 2 800 ₴ |
| Payroll | 1 680 000 | 3 declarants and the manager |
| Fixed costs | 720 000 | office, licence, software, financial guarantee |
| Liability insurance | 240 000 | policy for the year |
| Subcontract | 420 000 | expert reports, translations, laboratories |
| Net profit | 1 140 000 | 27.1% of turnover |
Twenty-seven percent net. For a service with no materials and no stores that is a good result, and Denys put this report in front of the bank when he borrowed for a second office.
Costs without mistakes come to 3 060 000 ₴ a year. Two thirds of that is people: a brokerage office owns nothing else expensive, because there are no stores, no machinery and no goods.
Twenty-seven percent on paper
All six lines in the report are correct. They are reconciled with bank statements, certificates and payroll records, and any audit will confirm them.
The contribution of one declaration works out at 760 ₴. That was the figure Denys carried in his head when he decided whether to take a client on, and when he argued about the price.
A contribution of 760 ₴ per declaration is a truth that does not exist.
Four cases
Over the past year the office had four cases where something went wrong.
No disasters and no court. Ordinary working stories: the wrong code here, a missing document there, customs disagreeing with a value, a declarant missing a change in classification.
- 144 400 ₴
- 98 300 ₴
- 85 300 ₴
- 47 000 ₴
Together, 375 000 ₴ the office paid out of its own pocket: fines, and compensation to clients for the standing time.
Four cases in fifteen hundred declarations is one in 375. By the standards of the trade that is very decent, and Denys used to be rather proud of the figure when he compared himself with his competitors.
The dearest of them
A consignment of home appliances, the wrong commodity code.
Customs reclassified the goods and assessed duty and VAT of 486 000 ₴ on top. The importer pays that sum — it would have been charged under the correct code too, just earlier and without the nerves.
This is where two worlds part. To the importer the event looks like an unexpected bill for half a million that he owed anyway. To the broker it looks like nine days on the telephone and a sum nobody budgeted for.
The importer pays the duty, the broker pays the delay
While it was all being settled, the container stood on the terminal for nine days. Demurrage at 4 200 ₴ a day gave 37 800 ₴. Three trucks came for the load and waited two days each at 3 600 ₴, which is another 21 600 ₴.
The client billed the office 59 400 ₴ in compensation, and the contract entitled him to it.
What actually happened
“The code was not invented. It stood in the previous eighteen consignments from the same client, and customs accepted it. Then a ruling came out, the classification changed, and we filed the old way. Formally that is our misdeclaration.”
The fine for misdeclaration was 85 000 ₴. With the client's compensation, the office gave up 144 400 ₴.
A fine and a compensation are different lines
The fine goes to the state and sits in the report as a tax penalty. The compensation goes to the client and is usually booked as a reduction of the next invoices or as a separate payment. In the accounts the two sums go to different headings and never stand side by side.
The office works on the standard contract of the trade: the broker answers for the correctness of the declaration, the client for the truth of the papers he handed over. In this case the papers were true. The classification no longer was.
Who pays for the mistake
| Item | Amount, ₴ | Who pays |
|---|---|---|
| Assessed duty and VAT | 486 000 | importer |
| Demurrage, 9 days × 4 200 ₴ | 37 800 | broker |
| Trucks standing, 3 × 2 days × 3 600 ₴ | 21 600 | broker |
| Compensation to the client | 59 400 | broker |
| Fine for misdeclaration | 85 000 | broker |
| Broker's total | 144 400 |
The largest figure in the table has nothing to do with the broker. The smallest ones have everything to do with him.
The first line is worth sitting with for a moment. Four hundred and eighty-six thousand is the biggest sum in the whole story, and it is not the broker's business at all. That is exactly why the mistake is so easy to underrate: it is dominated by a number somebody else pays.
The mistake against the client
That client gives the office 38 declarations a year. At 2 800 ₴ each, 106 400 ₴ of turnover.
The mistake on one consignment cost 144 400 ₴.
The first reaction to 144 400 ₴ is always the same: compare it with the annual profit. It is 18.9% of net, which sounds bearable — an unpleasant year, not a catastrophe. The comparison with the annual profit, though, says nothing about what to do next.
A mistake is measured in client years, not in hryvnias
The turnover from this client is 106 400 ₴ a year, so the mistake is 1.36 times dearer than that. But turnover is not the right measure here. This client's contribution is 38 declarations at 760 ₴, that is 28 880 ₴ a year.
So one mistake ate this client's contribution for exactly five years.
“I still work with him and I will go on working with him. He is a good client, he pays on time, his papers are in order. I just know now that for five years he brought me nothing — he was paying off that one consignment.”
“My bookkeeper used to tell me: Denys, you have eighty-five thousand of fines in a year, that is normal. And she was right — the tax penalty line really did say eighty-five. The other two hundred and ninety was lying in three other places.”
The cost of a mistake per declaration
This is where the real arithmetic begins.
Divide 375 000 ₴ a year by 1 500 declarations and you get 250 ₴ on each. On the one with the inspection, and on the one that took two hours.
| Contribution of one declaration | ₴ |
|---|---|
| Price of a clearance | 2 800 |
| Contribution before mistakes are counted | 760 |
| Cost of mistakes per declaration | 250 |
| Contribution in reality | 510 |
That is how any risk behaves when it is rare and expensive. It never lands on a particular declaration — it is spread evenly across all of them, like an insurance premium nobody ever invoiced. Ninety-nine declarations out of a hundred clear perfectly, and that is precisely why the cost of a mistake looks like somebody else's problem.
Two hundred and fifty hryvnias is 8.93% of the price of a clearance. A third of the contribution is gone before the declarant has even opened the folder.
The net profit is not 1 140 000 ₴ but 765 000 ₴: not 27.1%, but 18.2%.
Mistakes take 32.9% of the profit Denys thought was his. Not thirty percent of the profit on the risky consignments — a third of everything the office earns in a year.
Why none of it is visible
The reason is not sloppy bookkeeping.
- fines sit under tax penalties, next to interest for late reporting
- compensation to clients goes through as a reduction of turnover or as other expenses
- demurrage arrives as an invoice from the terminal, not from the client
- not one of those headings carries any mark that ties it to a declaration
To see the 250 ₴, all four lines have to be gathered together and divided by the number of declarations. No bookkeeping package does that by itself, because to it these are costs of entirely different natures.
Nor is it a quirk of one package. Denys checked with two brokers he knows of the same size: everything is scattered the same way, because the tax accounts demand it and management accounts simply do not exist.
What was tried before
“After that case I did what everybody does. Shouted at the declarant, wrote a checklist, pinned the customs ruling on the wall. Four months later there was the next case, with a different declarant and for a different reason.”
The office already carries liability insurance at 240 000 ₴ a year. It covers the big disasters, not the working cases: the deductible is higher than any of the four.
So two options were left, and Denys worked out both.
It should be said that the checklist and the ruling on the wall were not pointless. They genuinely cut down the small oversights. They simply do not touch the expensive thing: changes in classification that arrive without warning.
The double check
The first one: every declaration is read by a second declarant before it is filed.
This really does work. Three of the four cases were oversights, and a fresh pair of eyes would have caught them. The fourth was a disputed classification, where both declarants would have filed the same way.
A second declarant costs more than all the mistakes together
Double-checking eats a quarter of a declarant's time, so one more is needed: 480 000 ₴ a year with taxes. He would have caught 328 000 ₴ of the 375 000 ₴.
The effect is minus 152 000 ₴.
And that is not even the main point. The second declarant costs 480 000 ₴, while every mistake of the year together comes to 375 000 ₴. The check is 105 000 ₴ dearer than the thing it protects against, and no amount of diligence changes that.
There is one more reason not to hire a second declarant that the figures show only in part. Double-checking doubles the filing time, and speed is half of what the client pays a broker for in the first place.
A premium for risk
The second option is simpler and less pleasant for the clients.
Denys laid the four cases out by commodity group and saw the obvious: all four were in groups with a disputed classification. Home appliances, complex chemical compounds, composite building materials.
That was the ugliest moment of the whole calculation. It turned out the office had spent years selling complicated consignments at the price of simple ones and funding the difference out of the profit on everybody else.
Every commodity group knows its own cost of error
There are 310 such declarations out of 1 500. Charging 40% more for them, that is plus 1 120 ₴, gives 347 200 ₴ a year — 92.6% of the whole bill for mistakes.
Denys worked the premium out from fact, not from appetite: all four cases of the year were in exactly those groups. So it is not a price rise for everybody, it is putting the cost back where it arises. By that logic the other 1 190 declarations ought even to get cheaper.
Some clients will leave, and Denys allowed for it. By his estimate a tenth of them, that is 31 declarations.
That left 279 risky declarations, and the premium brought 312 480 ₴. The contribution lost with the clients who walked was 23 560 ₴.
The net effect is plus 288 920 ₴.
Risk can go into the price or into the profit
Set the two moves side by side. The double check gives minus 152 000 ₴, the premium plus 288 920 ₴. A difference of 1.9 times, and not in favour of control.
The reason lies in the nature of the cost. Control is fixed money against a variable risk. A premium is variable money against the very same variable risk.
After the premium the office's net profit comes to 1 053 920 ₴ — more than the paper figure Denys started from. The difference is that this time it is real.
What Denys did
“The hard part was not the counting, it was telling the clients. I was braced for a row, and what I heard was: at last, because the broker before you just charged little and then vanished when the fine came.”
The office introduced the premium not as a premium but as a separate tariff for groups with a disputed classification, with a written explanation of why. One client out of fourteen left, not every tenth one as Denys had feared.
- the price of a clearance now depends on the commodity group, not on the weight of the consignment
- fines and compensation are kept on one line and divided by the number of declarations
- every case is written down with its commodity group and its cause
- a decision on a new client is worked out on a contribution of 510 ₴, not 760 ₴
The fourth point turned out to be the quietest and the most important. Denys stopped taking cheap consignments in the risky groups, because on a contribution of 510 ₴ they simply do not add up.
The other thirteen stayed, and two of them asked to move the rest of their consignments onto the new tariff. It turned out that predictability is worth more to them than one thousand one hundred and twenty hryvnias.
The money does not vanish — you simply do not see it
“For fourteen years I thought I was selling speed and peace of mind. What I actually sell is my readiness to pay for somebody else's consignment if I get it wrong. That is a completely different product, and it has to cost differently.”
Nothing changed in Denys's office: not the number of declarations, not the payroll, not the licence. Still three declarants, still about fifteen hundred clearances, the same insurance. The only thing that changed is that the cost of a mistake now stands in the price of the service, instead of standing at the end of the year under other expenses.
How to see this in your own office
All the arithmetic above rests on one line that appears on no price list: what a mistake costs per declaration. While client compensations and fines sit scattered under other expenses, the broker sees 27.1% margin instead of 18.2% and does not know that a risky commodity group eats contribution faster than it brings any in. When filings, claims and fines come together in one place on their own, 250 ₴ per declaration becomes a figure rather than a feeling — which is exactly why owners of small and medium businesses use Finmap: to see the financial picture instead of piecing it together.
Read also
- Freight forwarding: profit per load, not the turnover passing through
- Cost per hour in an agency: how to set your rate
Topic foundation: Management Accounting Explained: What It Is and Why Owners Need It
Frequently asked questions about customs broker finances
Gather every fine and every compensation of the year onto one line and divide by the number of clearances. In this office four cases came to 375 000 ₴ across 1 500 declarations, which is 250 ₴ on each. That is 8.93% of the price of a clearance, and it goes out of every declaration, even a perfect one.
Because the price of the service is fixed and the consequences are not. The client gives 38 declarations a year, that is 106 400 ₴ of turnover and 28 880 ₴ of contribution, and one mistake on his consignment took 144 400 ₴. That is his contribution for five years.
The importer pays the assessed duty and VAT — those 486 000 ₴ would have been charged under the correct code too, just later. The broker pays everything the delay caused: demurrage of 37 800 ₴, trucks standing at 21 600 ₴, compensation to the client of 59 400 ₴ and a fine of 85 000 ₴.
Because they scatter across four different headings. The fine sits under tax penalties, the compensation under a reduction of turnover or other expenses, and the demurrage arrives as an invoice from the terminal. In this office the penalties line said 85 000 ₴, while the other 290 000 ₴ lived in three other places.
Compare his cost with the total of all the mistakes first. Here a second declarant costs 480 000 ₴ a year, and the mistakes for the whole year came to 375 000 ₴, so the check is 105 000 ₴ dearer than the thing it protects against. How well it works makes no difference to that.
Lay the cases out by commodity group and raise the price where they actually happen. In this office all four mistakes were in groups with a disputed classification: 310 declarations out of 1 500. A premium of 40%, that is 1 120 ₴, covers 92.6% of the year's mistakes.
Fewer than the owner expects. Denys planned to lose a tenth of the risky declarations, and one client out of fourteen left. The net effect of the premium is plus 288 920 ₴, against minus 152 000 ₴ for the double check.
The one already reduced by the cost of mistakes. Before the calculation the broker took the contribution of a declaration to be 760 ₴; in reality it is 510 ₴. On 760 ₴ a cheap consignment in a risky group looks acceptable. On 510 ₴ it simply does not add up.
