Home
/
Blog
/
Wholesale on credit terms: profit on paper, no cash
Case Studies
Services

Wholesale on credit terms: profit on paper, no cash

Sergiy Shuldik
Sergiy Shuldik
Financial Expert at Finmap

“Three point six million in revenue a month, eighty-eight thousand of profit in the report. And I have not had free cash once in seven years: to pay for a truckload of cement I draw on the credit line every month” — that is how Viktor, the owner of a building-materials wholesale business in Kyiv, opened the conversation.

If you sell wholesale on credit terms, you have heard this from yourself. The warehouse ships, the managers hit their targets, the bookkeeper shows a profit — and every week the payment calendar runs into the fact that there is nothing to pay with.

The root of it is not in trading. A wholesaler sells goods, but finances time: he hands the goods over today, sees the money forty-six days later, and pays his supplier in fourteen. The difference between those terms is not a line of small print in a contract — it is a loan the owner issues to his customers out of his own pocket.

We break wholesale down into two units: one hryvnia of revenue and one day of credit. And we show why 46 days of payment terms take away 86.3% of the profit.

The founder's road: from a single truckload to credit terms for everyone

Viktor started out as a trader: he would buy a truckload of dry mixes against an order, unload it on a rented yard and hand it over for cash the same week.

The first big customer asked for two weeks of credit, because the order was three times the usual size. Viktor agreed. Seven years on, every customer has credit terms, the payroll carries four managers and a warehouse keeper, and revenue is 3 600 000 ₴ a month. That is when the feel for the money disappeared: turnover grew, the profit in the report holds up, and the account is empty.

“When I was hauling one truckload, my money was either in my pocket or in the goods, and I could see it with my own eyes. Now it is in other people's bookkeeping. All I know is that it is not with me.”

Why “a profit of 88 000 ₴” tells you nothing about cash

Profit is the difference between two entries: shipped 3 600 000 ₴ worth of goods, spent 3 512 000 ₴. The entry about the shipment appears on the day of the invoice. The money for it arrives forty-six days later — and may never arrive at all.

That is why a wholesaler's report is missing the most important line of all: whose hands his money is sitting in right now. As long as credit terms live in the contract and not in the accounts, the question “how much am I financing my customers” has no answer.

Life before credit terms became a line

The bookkeeping Viktor lived with for those seven years is familiar to any wholesaler who grew out of trading.

  • Credit terms were promised verbally. The manager decided on his own in conversation with the customer, and all that stayed in the accounts was the invoice amount.
  • Receivables were seen as a single figure. “We are owed five and a half million” — with no dates and no names.
  • Payment terms had no price. Everyone knew the customer paid slowly. Nobody knew what it cost every month.
  • Overdue debt was not separated from current debt. A week-old debt and a four-month-old debt sat in the same line of assets.
  • The credit line was treated as a technical detail. The interest fell into “other” and was not tied to anyone.
  • Big customers were judged by volume. The more that was shipped, the better the customer was considered to be.

Not one of those six points is about sales. They sold fine, they shipped on time, the customers paid in the end. All six are about one number that was not in the accounts: the term.

What a wholesaler's month is made of

Viktor wrote out the month as it looks on paper. Revenue of 3 600 000 ₴ means 120 000 ₴ of shipments every day. A markup of 18% of revenue gives 648 000 ₴ of gross margin, and the cost of goods sold is 2 952 000 ₴, that is 98 400 ₴ a day. Then comes everything the company spends apart from buying the goods.

Cost itemPer month% of revenue
Warehouse85 000 ₴2.36%
Payroll230 000 ₴6.39%
Transport140 000 ₴3.89%
Viktor60 000 ₴1.67%
Other45 000 ₴1.25%
Total560 000 ₴15.56%

What these 560 000 ₴ are telling us

Costs apart from the goods take 15.56% of revenue. Gross margin of 648 000 ₴ minus 560 000 ₴ gives a profit of 88 000 ₴ and a return of 2.44% on revenue. For wholesale that is a working figure: here you live off turnover, not off markup.

But a return of 2.44% means one more thing. One percent of the price handed to a customer is 36 000 ₴ out of revenue of 3 600 000 ₴ — that is 40.9% of the profit. That is the corridor in which discount decisions get made.

The main unit: one day of credit

The owner here sells not only goods but time as well: the goods are already with the customer, and so is the money. So what has to be measured is not the margin on the invoice but the days the money spends in someone else's hands.

How much money is hanging with customers

Viktor's average payment term is 46 days. Multiply the daily shipments by it: 120 000 × 46 = 5 520 000 ₴. That is how much of his money permanently sits in other people's tills.

The main thing here is not to rush off looking for a mistake. Receivables of 5 520 000 ₴ are larger than monthly revenue of 3 600 000 ₴ — and that is how it should be: 46 days are longer than a calendar month, so more than a month's worth of shipments is hanging with customers.

And now convert those 5 520 000 ₴ not into hryvnia but into profit. At 88 000 ₴ a month, 62.7 months of profit are frozen in receivables. Not percent and not hryvnia — months: almost sixty-three of them, more than five years of Viktor's work.

What one day of credit costs

One day of payment terms is 120 000 ₴ of receivables. At 22% a year, which is the rate on Viktor's credit line, it costs 2 200 ₴ a month — 2.5% of the profit for every day the customer pays later.

A manager who fought off a discount by giving away a week of credit instead has just given away 15 400 ₴ a month — and will keep giving it away for as long as that term is in force. None of this shows up on the invoice, so credit terms look free.

The cash cycle: 46 days against 14

The second half of the mechanism is the suppliers. They give Viktor 14 days. On a daily cost of goods of 98 400 ₴ that is 1 377 600 ₴ of other people's money working inside his business all the time.

IndicatorDaysAmount
Receivables: Viktor's money with his customers465 520 000 ₴
Payables: suppliers' money with Viktor141 377 600 ₴
The cash gap Viktor finances—4 142 400 ₴
Interest on that gap at 22% a year—75 944 ₴ a month
Receivables in months of profit—62.7 months

The dash in the gap row is not accidental: the gap does not equal the difference between the terms. Payables are counted off the cost of goods, 98 400 ₴ a day, while receivables are counted off revenue, 120 000 ₴ a day. The 18% margin Viktor finances himself.

“For seven years I thought credit terms were a clause in a contract. It turned out they are a four-million loan, issued with no interest, no collateral and no repayment date. And I used to wonder why the bank never offers terms like that.”

The interest that takes 86.3% of the profit

The gap of 4 142 400 ₴ has to be covered with something every day. For Viktor that is a credit line at 22% a year: 911 328 ₴ a year, that is 75 944 ₴ a month.

Put that next to the profit of 88 000 ₴. Financing the credit terms eats 86.3% of everything the company earns: out of every hryvnia of profit Viktor hands the bank eighty-six kopiykas for the right to give customers 46 days to pay.

Why this loan does not look like a loan

Because it is nowhere gathered in one place. The interest on the line is in the bank statement, the receivables are in the settlements report, the terms are in the contracts. Three documents, and not one of them is connected to any other.

If the report carried a line saying “financing customer credit terms — 75 944 ₴”, the payment term would be set by the owner and not by a manager on the phone. As long as the line is missing, credit terms look free: they are not a cost, after all, just a date on an invoice.

Five more days and there will be no profit left

Interest will draw level with profit when the gap reaches 4 800 000 ₴: at 22% a year that is 1 056 000 ₴ a year, that is the same 88 000 ₴ a month. A gap like that comes from receivables of 6 177 600 ₴, and that means a payment term of 51.5 days.

From the current 46 days to the limit is five and a half days. One big customer asking for “a little more time”, one wave of slower payments across the market — and the entire earnings go on interest.

“What hit me was not that I am poorer than I thought. It was that I have five days under my feet. I spent seven years building a company whose safety margin is one week of other people's discipline.”

What cutting credit terms to 32 days delivers

Viktor did not pull the target term out of thin air: 32 days is roughly what every customer except the five biggest already pays in.

IndicatorCurrent term, 46 daysTarget term, 32 days
Receivables5 520 000 ₴3 840 000 ₴
Cash gap4 142 400 ₴2 462 400 ₴
Interest per month75 944 ₴45 144 ₴
Saving per month—30 800 ₴
Saving as a share of profit—35%

Why these 30 800 ₴ are worth more than a new sale

A saving of 30 800 ₴ a month is 35% of the profit, 369 600 ₴ over a year. And it needs neither a new deal nor a new customer: the same revenue of 3 600 000 ₴, the same markup of 18%, the same costs of 560 000 ₴. Only the payment date changes.

To add the same 30 800 ₴ of profit through goods, at a markup of 18% you would have to ship 171 111 ₴ more every month — and on the same credit terms at that, so those 171 111 ₴ would themselves ask for financing. A shortened term asks for nothing: one day is 2 200 ₴ a month, fourteen days are 30 800 ₴.

The prepayment discount: why 1% beats 2%

The most obvious way to shorten the term is to pay customers for fast money. And here wholesalers make the same mistake: they assume a bigger discount will deliver a bigger result.

A discount of 2% of revenue of 3 600 000 ₴ costs 72 000 ₴ a month and saves at most 75 944 ₴ — all the interest Viktor pays on the gap. Net gain: 3 944 ₴.

A discount of 1% costs 36 000 ₴ and saves the same 75 944 ₴: you cannot save more than all of the interest, because there is no more interest to save. Net gain: 39 944 ₴. Ten times more than the “generous” option.

Why the smaller discount delivers the bigger result

Because the two halves of the equation behave differently. The saving has a ceiling — 75 944 ₴ a month, and there is no jumping above it even if every single customer switched to prepayment. The price of the discount, meanwhile, grows in a straight line: every percent is exactly 36 000 ₴ of revenue.

Hence the break-even point: a discount of 2.11% costs almost 76 000 ₴ and swallows everything it saves. Anything above two percent and change is a pure loss, however convincing it looks in the offer.

“For two years I offered the big ones minus three percent for prepayment and felt offended that nobody took it. Just as well they did not. If everyone had, I would have been paying extra to be paid on time.”

Overdue receivables: 662 400 ₴ left hanging

The second hidden line appears where 46 days turn into ninety and more. In Viktor's receivables, 12% are debts older than 90 days: 5 520 000 × 12% = 662 400 ₴, or 7.5 months of profit.

Over the company's history, 8% of such overdue receivables never come back at all: write-offs, disappearances, liquidations. 8% of 662 400 ₴ is 52 992 ₴ a month, that is 60.2% of the profit, 635 904 ₴ over a year.

Interest is the price of time, and you reduce it by shortening the term. Bad debt is not a price but a loss: the goods are shipped, the supplier has been paid for them, and the money is not coming.

“I never thought of overdue debt as a cost. It sits in assets, after all, it is „money we are owed“. And then a liquidation notice arrives — and it turns out that to a person I had met twice I made a present of more than half a month's profit.”

Five customers holding half of the frozen money

When Viktor broke the receivables down by customer, the average 46 days fell apart. The five biggest give 38% of revenue — 1 368 000 ₴ a month — but pay in 68 days. Their daily shipments of 45 600 ₴ over 68 days give receivables of 3 100 800 ₴ — that is 56.2% of the company's entire receivables.

The rest of the customers — 62% of revenue, 2 232 000 ₴ — owe 2 419 200 ₴ and pay in 32.5 days on average. So 46 days is not a term at all but an average between two completely different groups.

  • Nobody sets conditions for a big customer. He asks for credit terms and the manager agrees, because he is afraid of losing the volume.
  • His payment goes through someone else's procedure. A payment register, two signatures, payouts once a fortnight — the term is set by the regulations.
  • Volume gets confused with value. A customer taking 38% of revenue looks like the most important one — although he is precisely the most expensive.

What keeping these five costs

A markup of 18% on their 1 368 000 ₴ gives 246 240 ₴. If the costs apart from the goods are spread in proportion to revenue, their share is 38% of 560 000 ₴ — 212 800 ₴. The group's contribution: 33 440 ₴ a month.

Now the price of their credit terms. Receivables of 3 100 800 ₴ at 22% a year cost 56 848 ₴ a month. We take the full amount of the debt, with no offset for the suppliers' 14 days: those 14 days belong to the whole company, not to one group.

The result: 33 440 ₴ minus 56 848 ₴ — minus 23 408 ₴ a month. The five biggest customers bring a loss: not because they buy too little, but because they pay in 68 days.

What Viktor actually earned

Let us add the month up. The report shows a profit of 88 000 ₴. Financing the cash gap is 75 944 ₴, that is 86.3% of the profit. The hopeless part of the overdue receivables is 52 992 ₴, that is 60.2% of the profit. Together 128 936 ₴, or 146.5% of what the company considers its earnings. Over a year — 1 547 232 ₴ against an annual profit of 1 056 000 ₴.

Neither of those items grew out of bad prices or weak managers. Both grew out of one number that was nowhere to be found: the term in which the money comes back to the account.

What changed when credit terms became a line

Viktor did three things. Next to every customer, the actual payment term appeared alongside the volume. The receivables were broken down by the age of the debt: up to 30 days, up to 60, up to 90 and over 90. And credit terms got a price in the price list: 30 days is 1.83% of the invoice amount at a rate of 22% a year, so 46 days is 2.81% — almost a sixth of the margin. Here is what two quarters showed.

  • The five biggest started paying in 56 days instead of 68. Not through negotiations about money but through scheduling: the invoice five days earlier, shipments timed to the customer's payment register, a reminder three days ahead. The group's receivables fell from 3 100 800 ₴ to 2 553 600 ₴, and the interest by 10 032 ₴ a month.
  • The prepayment discount was rewritten from three percent to one. For the first time it started bringing money in rather than taking it away: 36 000 ₴ of price against a saving whose ceiling is 75 944 ₴.
  • Overdue debt stopped being invisible. Debts over 90 days — 662 400 ₴ — were pulled out into a separate line, and shipments to such customers stop until the old debt is cleared. The hopeless 52 992 ₴ a month cannot be optimised in any way; they can only not be created again.

None of this needed new customers, higher prices or a change of suppliers. It needed one thing: seeing the term as a line.

The takeaway for business owners. Where the goods are handed over before the money for them arrives, the key number is neither markup nor turnover but the difference between how many days it takes them to pay you and how many it takes you to pay. That difference is a loan you have already issued, and it has an exact price. Until it stands as a line in the report, growing revenue only means you are lending to your customers even more generously.

A few parting tips

  • Work out the average payment term. Divide the receivables by the daily shipments: 5 520 000 ₴ over 120 000 ₴ gave 46 days. Nothing will tell you more honestly about your money than this indicator.
  • Put a price on one day of credit. Daily shipments at your borrowing rate: 120 000 ₴ at 22% a year is 2 200 ₴ a month for every day of the term.
  • Count the gap, not the receivables. Supplier credit terms are free financing: for Viktor that is 1 377 600 ₴. You pay interest only on the difference.
  • Break the receivables down by the age of the debt. As long as a week-old debt sits in the same line as a four-month-old one, overdue debt is invisible — and 12% of it is no longer current.
  • Check your prepayment discount against the ceiling on savings. A bigger discount does not mean a bigger result: the saving is capped at 75 944 ₴, the price of the discount is not.
  • Measure big customers by receivables, not by volume. 38% of revenue on a 68-day term can come out negative, and the only place you will see it is in the calculation.
  • Put credit terms in the price list. The customer should see the price of his time as calmly as he sees the price of delivery: 30 days is 1.83% of the invoice amount.

The money does not vanish — you simply cannot see it

Wholesale looks like a business where everything is decided by purchase price and volume: buy cheaper, sell more. In reality price and volume only get you onto this market. Here the money is decided by the days between your payment to the supplier and your customer's payment to you.

Those 46 days will not shrink on their own. But the moment the payment term becomes a line next to the invoice amount, everything is visible: which customers are financing you, which ones you are financing — and how many months of profit you have left lying in other people's hands.

How to see this in your own wholesale business

Everything described above rests on a single table: every invoice is a line showing the amount, the promised payment date and the actual one. While the report shows only profit, neither how much money sits with customers nor what allowing that costs is visible. When the same data is collected automatically, credit terms stop being a clause in a contract and become a figure in hryvnia — which is exactly why small and medium business owners use Finmap: to see the financial picture instead of totting it up after the fact.

Read also

Table of Contents
Check the Status of Your Business's Financial System
Order Financial Diagnostics
Sergiy Shuldik
Sergiy Shuldik
Financial Expert at Finmap
  • Consultations on commercial activities and management. Financial planning and strategy.
  • CFO, NDA (2023–2025).
  • Financial and economic security analyst at Letishops LLC (2019–2021).
  • Chief accountant, Public Sector / Ministry of Defense of Ukraine (2014–2019).

Recommended for Entrepreneurs

Frequently asked questions

How do I work out how much of my money is stuck with customers?

Divide the receivables by the daily shipments and you get the average payment term in days. In the example from this article, 5 520 000 ₴ of debt at shipments of 120 000 ₴ a day gives 46 days. You can also run it the other way round: if you know the term from your contracts, multiply it by the daily shipments. And do not take fright when the receivables turn out to be larger than monthly revenue: with a term longer than 30 days that is exactly how it should be — 5 520 000 ₴ against revenue of 3 600 000 ₴ is normal arithmetic, not a bookkeeping error. Then convert the amount into profit: 5 520 000 ₴ at a profit of 88 000 ₴ a month is 62.7 months of profit frozen in other people's tills.

Exactly as much as you pay for the money you are short of because of those terms. Work out the cash gap: receivables minus supplier payables. In the example that is 5 520 000 ₴ minus 1 377 600 ₴, that is 4 142 400 ₴ of permanent financing. At 22% a year — the rate on the credit line — that is 911 328 ₴ a year, or 75 944 ₴ a month against a profit of 88 000 ₴: 86.3% of the earnings go on the right to give customers 46 days. A handier form for day-to-day decisions is the price of a single day: 120 000 ₴ of daily shipments at 22% a year cost 2 200 ₴ a month. A week of credit, bargained out instead of a discount, is 15 400 ₴ every month for as long as the term is in force.

Because profit and money are counted on different dates. Profit appears on the day of the invoice: shipped 3 600 000 ₴ worth of goods, spent 3 512 000 ₴, and the difference of 88 000 ₴ is already in the report. The money for that same invoice arrives 46 days later, while you pay the supplier in 14 — so between your payment and the receipt there permanently hangs 4 142 400 ₴ that is nowhere in the report. Hence the feeling that the profit is “somewhere”. It really does exist: in the form of other people's debts. To see this in figures, it is enough to put three numbers side by side — the average customer payment term, the term for paying suppliers and the amount of the gap. As long as they are not in one place, the report will keep showing a profit and the calendar a hole.

A small one, and this is the main counter-intuitive thing in wholesale. The saving from prepayment has a ceiling — it cannot exceed the interest you pay on the gap. In the example that is 75 944 ₴ a month. The price of the discount, meanwhile, grows in a straight line: every percent of revenue of 3 600 000 ₴ is 36 000 ₴. So a discount of 2% costs 72 000 ₴ and gives a net gain of only 3 944 ₴, while a discount of 1% costs 36 000 ₴ and gives 39 944 ₴ — ten times more for half the generosity. The break-even point here is around 2.11%: a discount like that swallows everything it saves. Anything bigger is a loss. Work out your own ceiling before you put a figure into a commercial offer.

Start not with negotiations about money but with the schedule. In the example, cutting the average term from 46 days to 32 reduces the receivables from 5 520 000 ₴ to 3 840 000 ₴, the gap to 2 462 400 ₴, and the interest from 75 944 ₴ to 45 144 ₴ a month. A saving of 30 800 ₴ is 35% of the profit with not a single new sale: the same revenue, the same markup of 18%, the same costs of 560 000 ₴. Simple things work: issue the invoice a few days earlier, fit the shipment to the customer's payment register, send a reminder three days before the date rather than after it has been missed. In the example, the five biggest customers moved from 68 days to 56 that way — with no change of prices at all.

First, pull them out from under the general receivables line. As long as a week-old debt sits together with a four-month-old one, the overdue part is invisible. In the example, debts older than 90 days are 12% of the receivables, that is 662 400 ₴, or 7.5 months of profit. Historically 8% of such debts never come back at all: 52 992 ₴ a month, 60.2% of the profit, 635 904 ₴ over a year. This item differs fundamentally from the interest: interest is the price of time and can be reduced by shortening the term, whereas bad debt is a pure loss, because the goods are shipped and the supplier has already been paid for them. So there is one main rule here: new shipments to a customer stop until the old debt is cleared.

Check it with a calculation rather than a feeling, because volume and value part company in wholesale. In the example, the five biggest customers give 38% of revenue — 1 368 000 ₴ a month — but pay in 68 days, and 3 100 800 ₴ is stuck with them, that is 56.2% of all the receivables. A markup of 18% brings 246 240 ₴ from them, the costs apart from the goods spread in proportion to revenue take 212 800 ₴, and the contribution is 33 440 ₴. Financing their debt at 22% a year, meanwhile, costs 56 848 ₴ a month. The result is minus 23 408 ₴ every month: the group is loss-making not because of the price but because of the term. That is why a big customer has to be measured by two numbers — volume and days to pay.

The one at which the interest on the gap is still smaller than the profit. The limit is easy to work out. In the example the profit is 1 056 000 ₴ a year, so at 22% a year it fully covers a gap of 4 800 000 ₴. Add the supplier payables of 1 377 600 ₴ and you get receivables of 6 177 600 ₴, which means a payment term of 51.5 days. In other words, from the current 46 days up to that limit there are five and a half days of credit, and beyond it the profit becomes zero. One big customer asking for “a little more time”, and a company with revenue of 3 600 000 ₴ a month is working strictly for the bank. Work out this limit for yourself and set your own term at least ten days below it — that is what a safety margin looks like in wholesale.

Any questions left?
We are ready to answer them.
WhatsApp
Telegram
Finmap
Finmap support

Money Doesn't Disappear. You Just Don't See It.

Get a personal financial diagnosis or a Finmap demo — and see your business from a new perspective.

Ask Your Question to a Finmap Expert