Home
/
Blog
/
Ready-mix plant: a 2.4 m³ trip loses money
Case Studies
Manufacturing

Ready-mix plant: a 2.4 m³ trip loses money

Oleksandr Solovei
Oleksandr Solovei
CEO & Co-founder Finmap

“Eight million two hundred eighty-three thousand in revenue a month, four truck mixers, the plant runs from seven to seven. And what is left for me out of that is two hundred ninety-eight thousand — three point six percent. For two years I was sure the cement was to blame” — that is how Serhii Bondarenko, owner of a ready-mix plant near Vinnytsia, opened the conversation.

If you run a ready-mix plant, this arithmetic is familiar. A cubic metre of concrete costs 2 225 ₴ in materials and sells for 3 050 ₴ with delivery — 825 ₴ per cube is yours. Multiply by the monthly volume, subtract the fixed costs, and the difference is yours.

The arithmetic breaks in one place. You make concrete by the cubic metre, but you deliver it by the trip. A truck mixer drives out to the site exactly the same way with seven cubes in the drum and with two. And the trip appears nowhere in the books: there you have cubic metres dispatched and transport costs as a single line for the month.

Below we break the plant down into two units — the cubic metre and the trip — and get to why a 2.4 m³ trip takes 360 ₴ away instead of bringing it in.

Serhii's road: from one truck mixer to four

Serhii started with one old truck mixer on a rented yard: pouring foundations for private customers within a twenty-kilometre radius. Orders came three or four a day, and he took every one of them himself.

Nine years later there was a plant of his own, a lab with compression cubes, a dispatcher, four truck mixers and a concrete pump. That is also when the feel for the numbers disappeared: profit stayed where it had been in year three.

“When there was one truck mixer, I knew about every trip: where it went, how much it carried, whether it discharged at all. Now they bring me a summary for the month. It says how many cubes we dispatched, and it does not say in how many trips.”

Why 825 ₴ per cubic metre is not profit

Serhii's M250 mix is costed down to the kopiyka, and that is the strongest part of his accounting. A cubic metre takes 320 kg of cement at 4.30 ₴ — 1 376 ₴. Sand, 0.45 t at 420 ₴ — 189 ₴. Crushed stone, 0.95 t at 560 ₴ — 532 ₴. Admixtures, 2.8 l at 37.50 ₴ — 105 ₴. Water and the plant's electricity — 23 ₴.

Materials come to 2 225 ₴ per cubic metre. The price with delivery is 3 050 ₴. The difference is 825 ₴ per cube, and that is the number Serhii quoted whenever he decided whether to take an order.

There is nothing wrong with the number itself. There is a limit inside it: 825 ₴ is the material margin, not profit and not even the trip margin. Fuel, the driver, tyres, the time spent at the site and the plant's fixed costs have all yet to come out of it. All of that lives off the same 825 ₴, and how many cubic metres they are spread over is decided by the dispatcher.

Life before trip volume became a row

The accounting Serhii lived in through those nine years will be recognised by any plant that grew out of a single truck mixer.

  • Cubic metres were counted, trips were not. The summary showed the volume for the month, and 2 800 m³ looked the same no matter what trips carried them.
  • Fuel and drivers sat in one line. “Transport” for the month was a single sum that nobody divided by the number of runs.
  • A small order was taken for a small profit. Not a loss, just a smaller earning — which is why nobody was ever turned down.
  • Idle time at the site was a daily nuisance. The dispatcher knew everything about it, and the financial report did not carry it at all.
  • Returned concrete was written off as process losses. One percent, together with the dust and the drum washout.
  • The price was held the same for any volume. 3 050 ₴ per cube for seven cubes and for two.

None of those six points is about concrete: the mix holds its grade, the customers are not leaving. All six sit in the accounting — and nobody looks into the accounting at the level of a trip.

The main unit is not the cubic metre, it is the trip

The cubic metre is the unit you invoice in. The trip is the unit you spend in. Until they stand in the same row, cost looks as if the concrete drove itself to the site.

A trip does not depend on how much concrete is in the drum. The mixer either went out or it did not. Fuel burns on the road, the driver is paid per run, tyres wear out from the kilometres.

The only difference is how many cubic metres that trip is spread over. The material margin is the same, 825 ₴ per cube, and the trip costs the same on seven cubes and on two and a half.

What one truck mixer trip costs

So Serhii costed a trip separately from a cubic metre for the first time. A 7 m³ mixer drives out and comes back: fuel, 18 l at 54 ₴ — 972 ₴, the driver 450 ₴, tyres, servicing and depreciation 378 ₴. That is 1 800 ₴ per trip.

A trip takes 2.5 hours: the drive there and back plus the free unloading allowance of 40 min. After that the mixer goes back under the batcher.

Why a mixer hour is 720 ₴

Divide 1 800 ₴ by 2.5 hours and you get 720 ₴. It is not a rate somebody set: it is derived from the trip divided by its own duration.

From there the number works everywhere the mixer stands instead of driving. Serhii's average idle time beyond the free unloading allowance is 45 minutes, and that is another 540 ₴ per trip.

1 800, 540 and 2 340 — three different numbers

They are easy to merge into one, so let us label each. 1 800 ₴ is a trip with no idle time. 540 ₴ is the price of the 45 minutes the mixer spent at the site beyond the allowance. 2 340 ₴ is what they come to together, and that is exactly what an ordinary trip looks like at Serhii's plant.

A trip breaks even at 2.84 m³

Now the main number of the article. A trip with idle time costs 2 340 ₴, a cubic metre brings 825 ₴ of material margin. Divide one by the other and you get 2.84 m³.

That is the volume at which a trip neither brings nor takes anything. Everything above 2.84 m³ in the drum covers the plant's fixed costs. Everything below takes money away — like an empty run.

2.84 m³ is the break-even point of a trip, not of an order and not of a month. One and the same order can be taken as two trips of six cubes — both above break-even. Or as five runs of two and a half, because the concrete crew cannot place it fast enough — and then every one of them is below.

“Two point eight four — nobody knew that number. For nine years my dispatcher took orders over the phone, and the only thing he asked was: „What time do you need it?“ How many cubes he wrote down, but it changed nothing for him. Two cubes or seven — the same order.”

Trip margin by order size

Serhii broke all 560 trips of the month into three groups by order size: cubic metres, material margin at 825 ₴, trip costs at 2 340 ₴.

OrderTripsAvg. m³ per tripm³Material margin ₴Trip costs ₴Result ₴Per trip ₴
up to 3 m³1702.4408336 600397 800−61 200−360
4–5 m³1304.8624514 800304 200+210 600+1 620
6–7 m³2606.81 7681 458 600608 400+850 200+3 270
Total5605.02 8002 310 0001 310 400+999 600+1 785

The first row is what made Serhii sit down. 170 trips of up to 3 m³ brought 408 cubic metres and 336 600 ₴ of material margin, and they cost 397 800 ₴. The result is minus 61 200 ₴.

−360 and −61 200 — the same thing from two sides

Divide 61 200 ₴ by 170 trips and you get 360 ₴. That is the average result of a small trip: not a smaller earning, a loss. The mixer drove out, burned fuel, stood at the site and brought back minus 360 ₴.

−360 ₴ is per trip, −61 200 ₴ is per month: the same money from two sides. The first number talks to the dispatcher, the second to the owner, and it equals 21% of everything the plant earns.

Why the same concrete is a loss on one trip and 3 270 ₴ on another

In the third row of the table, 260 trips with an average volume of 6.8 m³ give 850 200 ₴, that is 3 270 ₴ per trip. The concrete is the same, the mix is the same, the price is the same — 3 050 ₴ per cube.

The only difference is how many cubic metres the trip is spread over. At 6.8 m³ almost all of the 825 ₴ per cube survives; at 2.4 m³ the trip takes more than those cubic metres bring. Together the 560 trips give plus 999 600 ₴, on average 1 785 ₴ per trip — and that average hides both +3 270 ₴ and −360 ₴.

“I never said no to two cubes. I thought: well, let him, the man is pouring a foundation for a bathhouse, „let him have it“. Turns out I spent nine years paying three hundred and sixty hryvnias out of my own pocket for every „let him have it“, a hundred and seventy times a month.”

Returned concrete: 84 cubic metres that hardened

The second item is plain to see. Serhii dispatched 2 800 m³ over the month and was paid for 2 716. The difference is 84 cubic metres that came back to the plant and hardened there.

That is 3.0% of everything dispatched, and for ready-mix the figure is ordinary. The customer orders with a margin because he does not want to stop the pour, and nobody has the time to measure the formwork exactly. The last mixer arrives, and there is nowhere left to put the concrete.

What is lost on 84 m³ of returned concrete₴
Revenue not received (84 × 3 050)256 200
Disposal (84 × 180)15 120
Total271 320

Revenue not received is 84 m³ at 3 050 ₴, that is 256 200 ₴. Disposal is 180 ₴ per cubic metre, 15 120 ₴ in all: this concrete has to be broken up and hauled away.

“I saw returned concrete every day, I just did not count it. The mixer pulls into the yard, the driver opens the chute, and a cube and a half goes onto the ground. In a week there is a pile there waiting for the breaker. It seemed to me that I was losing money on the hauling. What I was losing was that somebody was supposed to buy that concrete.”

271 320 ₴ is 91% of the monthly profit

Put 271 320 ₴ next to the plant's profit. Profit for that month was 298 280 ₴. The returned concrete cost 91% of that sum.

It is the most expensive write-off at the plant, because it is a double one. In ordinary scrap you lose the material. Here you lose the material and the revenue: the concrete is already mixed, the cement has set, and there is nothing and nowhere to return it to in the silo.

3.0%, 1.2% and 3.60% — three different percentages

The three numbers look alike, and this is the most slippery spot in the whole calculation. 3.0% is the share of dispatched concrete that comes back and hardens: 84 m³ out of 2 800. 1.2% is the same share after orders started being taken by measurement: 33.6 m³. 3.60% is profit inside the plant's revenue, 298 280 ₴ out of 8 283 800 ₴.

The first two live in cubic metres, the third in hryvnias, and there is no formula shared between them. They stand side by side only so that you do not read 3.0% as a return on sales.

The plant's month in figures

Now the same month in full, so that 271 320 ₴ and 61 200 ₴ fall into their places.

Item for the month₴
Revenue (2 716 m³ × 3 050)8 283 800
Materials for everything produced (2 800 × 2 225)−6 230 000
Trips (560 × 1 800)−1 008 000
Idle time beyond the allowance (560 × 540)−302 400
Disposal of returned concrete (84 × 180)−15 120
Fixed costs−430 000
Profit298 280

Look at the first two rows. Revenue is counted on 2 716 m³, and materials on 2 800. The plant paid for everything it dispatched, and took money only for what stayed on the sites.

The fixed 430 000 ₴ break down like this.

  • Payroll — 196 000 ₴: the plant operator, the dispatcher, the lab technician, the mechanic, the guards.
  • Plant depreciation — 84 000 ₴: the mixer, the silos, the batchers, the conveyors.
  • Security — 28 000 ₴, because the yard holds cement, fuel and machinery.
  • Laboratory — 22 000 ₴: compression cubes, grade checks, batch paperwork.
  • Land and utilities — 46 000 ₴.
  • Administration — 54 000 ₴: the accountant, communications, software, the bank.

There is no place for a trip in that list. Fixed costs hold up the plant, not the road to the site — and they accrue the same whether the mixer is hauling or standing.

Idle time beyond the allowance: 420 mixer hours

In the report for the month idle time has a row of its own: 560 trips at 540 ₴ — 302 400 ₴. Convert that money into hours at 720 ₴ and you get 420 hours.

420 mixer hours a month. The machines stand with the drum turning and wait for something to be sorted out on the site. This is the plant's second largest hidden item — after returned concrete, and bigger than all the small trips put together.

“Forty-five minutes is when the pump has not arrived, or the concrete crew is not ready yet, or the approach road has washed out and the mixer cannot get under the chute. I looked at it the way you look at weather: well, it happens. And then they showed me a row — three hundred and two thousand a month, four hundred and twenty hours. And I paid for every one of them.”

Serhii costed two decisions that touch neither the price of the concrete, nor the mix, nor the number of truck mixers.

The first is paid idle time. The unloading allowance of 40 minutes stays free in the contract, and everything beyond it goes at 720 ₴ an hour — at the price the plant pays anyway. If half the customers agree to such a clause, that is 151 200 ₴ a month.

The second is orders by measurement. The volume is named after the formwork has been measured, and the last mixer leaves on a call from the site, when it is clear how much is still short. Returns fall from 3.0% to 1.2%, from 84 m³ to 33.6 m³: that is 162 792 ₴ a month.

Together the two decisions give 612 272 ₴ instead of 298 280 ₴ — profit up 2.05 times, 7.4% of revenue instead of 3.60%. With no new customer and no fifth truck mixer.

A minimum volume of 4 m³ — or a surcharge for a part load

The third decision is harder, because it is about saying no. If the plant stops taking orders smaller than 4 m³, the 170 small trips disappear along with their result: plus 61 200 ₴ a month out of the mixer not driving out.

But refusal is not the only option. The second is a part-load surcharge: 1 400 ₴ per trip on top of the cost of the concrete. Then the small orders stay, and the 170 trips give plus 176 800 ₴ instead of minus 61 200 ₴. The change against what there is now is 238 000 ₴.

The surcharge looks harsh until you put it next to the current state: right now a small order is served as if it were no different from a seven-cube one, and the plant pays the difference.

420 and 425 hours — different numbers

Two similar figures about completely different things. 420 hours is the mixers' idle time beyond the allowance over the month, the same one that comes to 302 400 ₴ in money. 425 hours is the time that frees up if the 170 small trips of 2.5 hours each are given up.

The first is already being spent for nothing. The second will appear if a decision is made. They cannot be added together.

Freed hours bring no money on their own

An honest caveat is needed here, because this is the place where the arithmetic most often deceives the owner. The 420 hours the plant stops burning on idle time are not money. They are an opportunity to haul concrete, and they become money only when there is somebody to haul it for.

Demand is limited by the sites within delivery range: ready-mix does not travel far, it sets on the way. So the freed time has to be filled with something — new sites, a second shift. If there is nothing to fill it with, the first two scenarios work, and what is left of the third is what it says on its face.

What changed once trip volume became a row

Three technical changes came out of it. The order form got a “cubes per trip” field next to the address. Idle time beyond the free unloading allowance started being recorded on every run. And returned concrete came out of “process losses” into a row of its own.

  • The dispatcher got the number 2.84. An order below 4 m³ is no longer taken automatically — it goes through with a part-load surcharge.
  • Idle time stopped being free. 40 minutes in the contract, 720 ₴ an hour after that — and the waits started getting shorter from the moment the clause appeared.
  • The last mixer now leaves on a call. Not with the convoy, but when the site says how much more is needed: 84 m³ became 33.6 m³.
  • Returned concrete is now counted as two sums. Both as material and as revenue that will not come — 271 320 ₴ instead of a “losses 3%” row.

No new plant, no fifth truck mixer and no price increase were needed for this. What was needed was to see the trip as a row with a price of its own.

The takeaway for business owners. If you sell a product that you deliver to somebody, you have two units of measurement and they do not match. You invoice in one — tonnes, cubic metres, pieces — and you spend in another: a run, a delivery, a trip. Work out the full price of one run together with the waiting time on site and divide it by the margin on a unit of the product — you will get the volume below which delivery takes money away. That number has to be known by the person who takes the orders, not only by the person who reads the report. It works the same way for delivering water, fuel, feed and any cargo that travels to the customer on your own transport.

Closing advice

  • Cost the trip separately from the cubic metre. Fuel, the driver, tyres and depreciation come to 1 800 ₴ per trip, and with idle time 2 340 ₴.
  • Find the break-even point of a trip and say it out loud. 2 340 ₴ over 825 ₴ of margin per cube is 2.84 m³, and it is the dispatcher who needs it, not the accountant.
  • Do not confuse material margin with profit. 825 ₴ per cubic metre is the sum that has yet to pay for the trip and for 430 000 ₴ of fixed costs.
  • Put an hourly price on idle time. 1 800 ₴ over 2.5 hours is 720 ₴, and 420 hours of waiting cost 302 400 ₴ a month.
  • Split the trips by order size. Up to 3 m³ — minus 61 200 ₴; 6–7 m³ — plus 850 200 ₴; and the average hides both of them.
  • Count returned concrete as two sums. 84 m³ is 256 200 ₴ of revenue that will not come plus 15 120 ₴ of disposal, 91% of profit together.
  • Reconcile what was dispatched with what was paid for. 2 800 m³ dispatched, 2 716 paid for — that difference is the row the report does not have.

The money does not disappear — you simply do not see it

People think that at a ready-mix plant everything is decided by the price of cement and the grade the mix can hold. You cannot start without them. But the earning is decided by a third thing — how many cubic metres each trip is spread over, and how much of what was dispatched came back.

This hole does not close by itself and will not show up in the bottom line: the line shows 298 280 ₴ of profit, and it shows the truth. But the moment a trip gets a price of its own, the main thing becomes visible — the 3.60% return was not eaten by cement. It was eaten by 170 trips at minus 360 ₴ and 84 cubic metres that hardened behind the plant.

How to see this at your own plant

Everything above rests on one row: not the month in cubic metres, but each trip on its own — with its volume, its time on site and how much concrete came back. As long as cost is counted per cubic metre, you see neither that a trip breaks even at 2.84 m³, nor that idle time takes 420 mixer hours every month. When the same data is collected automatically, it becomes visible which trip pays for the drive — which is exactly why owners of small and medium businesses use Finmap: to see the financial picture rather than reconstruct it from memory.

Read also

Table of Contents
Check the Status of Your Business's Financial System
Order Financial Diagnostics
Oleksandr Solovei
Oleksandr Solovei
CEO & Co-founder Finmap
  • 15+ years in business.
  • Serial entrepreneur, founder of 3 companies.
  • Entrepreneur of the Year according to MC.Today.
  • Speaker at Unit School of Business, LABA, Defence Builder, Impactpreneurship 2.0 from the UN, Vector of Reconstruction.

Recommended for Entrepreneurs

Frequently asked questions

How to calculate the break-even point of a truck mixer trip?

Two steps. First work out the full price of a trip: at Serhii's plant that is fuel, 18 l at 54 ₴, the driver 450 ₴, tyres, servicing and depreciation 378 ₴ — 1 800 ₴ in all, and with idle time beyond the free unloading allowance another 540 ₴, that is 2 340 ₴. Then divide that sum by the material margin on a cubic metre: 2 340 ₴ over 825 ₴ gives 2.84 m³. That is the volume at which a trip neither brings nor takes anything. Everything below it takes money away. The number is counted per trip, not per order and not per month, and it is needed by the dispatcher who takes the orders, not by the accountant.

Because it is the material margin and nothing more. The M250 mix gives 2 225 ₴ of materials per cubic metre, the price with delivery is 3 050 ₴, the difference is 825 ₴. Out of those 825 ₴ nothing has yet been taken for fuel, the driver, tyres, the time the mixer stood at the site, or the plant's fixed costs of 430 000 ₴ a month. All of that lives off the very same difference. So 825 ₴ cannot be called profit or trip margin: how many cubic metres it is spread over is decided by the order size, not by the mix.

The concrete is the same, the price is the same 3 050 ₴ per cube, the only difference is how many cubic metres the trip is spread over. Serhii's group of orders up to 3 m³ is 170 trips, 408 cubic metres, 336 600 ₴ of material margin against 397 800 ₴ of cost for the trips themselves: minus 61 200 ₴ for the month, or minus 360 ₴ on every such run. The 6–7 m³ group is 260 trips, 1 768 m³ and plus 850 200 ₴, that is 3 270 ₴ per trip. Together the 560 trips give plus 999 600 ₴, on average 1 785 ₴ per trip, and that average hides both extremes.

720 ₴, and the number is not assigned but derived. A trip costs 1 800 ₴ and takes 2.5 hours: the drive there and back plus the unloading allowance of 40 minutes. Divide one by the other and you get 720 ₴ an hour. From there the price works everywhere the mixer stands instead of driving: an average idle time beyond the allowance of 45 minutes costs 540 ₴ per trip. Do not mix up the three numbers: 1 800 ₴ is a trip with no idle time, 540 ₴ is the idle time itself, 2 340 ₴ is an ordinary trip with it included.

Over the month Serhii dispatched 2 800 m³ and was paid for 2 716: the difference of 84 cubic metres came back to the plant and hardened there. That is 3.0% of what was dispatched, an ordinary share for ready-mix. In money it comes to 256 200 ₴ of revenue not received (84 m³ at 3 050 ₴) plus 15 120 ₴ of disposal (84 m³ at 180 ₴), 271 320 ₴ a month in all. The write-off is a double one: you lose the material and the revenue, because the concrete is already mixed, the cement has set and there is nowhere to return it to in the silo. For comparison: the plant's profit for that month was 298 280 ₴, so the returned concrete cost 91% of the profit.

Change the order of two things: how an order is taken and when the last mixer leaves. The volume is named not by eye but after the formwork has been measured. The last mixer leaves not with the convoy but on a call from the site, when it is already clear how much concrete is short. At Serhii's plant that drops returns from 3.0% to 1.2%, from 84 m³ to 33.6 m³ a month — a fractional value is normal here, concrete is measured in tenths of a cubic metre. The decision costs nothing in money and brings 162 792 ₴ a month. Do not confuse these percentages with return on sales: 3.60% is profit inside revenue, a different quantity.

There are two options, and both are better than the current one. Refusing the 170 small trips removes their result of minus 61 200 ₴, which means plus 61 200 ₴ a month out of the mixer not driving out, and frees up 425 mixer hours (170 trips of 2.5 hours). A part-load surcharge of 1 400 ₴ per trip leaves the orders where they are: the same 170 trips give plus 176 800 ₴ instead of minus 61 200 ₴, so the change against the current state is 238 000 ₴ a month. The second option is the better one if small orders bring you large ones.

No, and this is the one place in the calculation where it is easy to fool yourself. 420 hours of idle time beyond the allowance over a month is 302 400 ₴ the plant is already spending for nothing. But when those hours free up, they do not turn into profit: they turn into an opportunity to haul concrete. The money appears only when there is somebody to haul it for, and demand is limited by the sites within delivery range — ready-mix does not travel far, it sets on the way. So the freed time has to be filled with something: new sites, a second shift, moving into the neighbouring district. The two scenarios that do not depend on this are paid idle time (151 200 ₴) and orders by measurement (162 792 ₴): together they lift profit from 298 280 ₴ to 612 272 ₴, up 2.05 times.

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