How to estimate mine production from truck counts alone
If you can't pull a dispatch feed, you still have options. A haul road full of trucks tells you something about tonnage moved, even from outside the fence. The trick is knowing what that count can and can't tell you, and building the math so it holds up when someone pushes back on it.
The basic math: trucks to tonnage
Start with what you can see: truck class. Most large haul trucks are visually distinguishable by body shape and size in high-resolution imagery, enough to put a name to it (a 793 versus a 930E versus a smaller articulated hauler). Each class has a published nominal payload, and that's your per-truck tonnage estimate: not measured, just the manufacturer spec for that class.
Next you need cycles per truck per day. This is where most back-of-envelope estimates fall apart, because cycle time depends on haul distance, grade, and road condition, none of which show up in a single count. A truck sitting idle at a crusher queue looks the same in a still image as one mid-cycle. So instead of guessing cycles from one snapshot, you want a count repeated daily. A truck population that holds steady at, say, eighteen units on the haul network, day after day, with the same rough split between loaded-direction and empty-return positions, gives you a basis for estimating trips per unit over a week rather than trying to derive it from a single frame.
Multiply: truck count × nominal payload by class × estimated cycles per day × days in your window. That's your tonnage proxy. It will not match a reconciled production report. It's useful because it moves the same direction production does, and it moves before the quarterly numbers get published.
Where this breaks, and how to patch it
A few things wreck the estimate if you don't account for them:
Payload fill isn't visible. You can count a truck, you can't see if it's loaded to rated capacity, under, or carrying a light load because of ore versus waste routing. Treat the payload figure as a ceiling, not a measured fill.
Road condition changes cycle time without changing truck count. A washboarded or wet haul road slows every truck on it. Same fleet, same count, lower tonnage. This is why a one-off count is close to worthless and a time series with some read on road surface condition is what lets you actually adjust the cycle-time assumption instead of guessing it.
Dump point matters. Trucks running to a ROM pad, a crusher, and a waste dump are doing different jobs even if they look identical from above. If your haul network has more than one destination, a raw truck count conflates ore movement with waste stripping. Separating runs by which leg of the network they're on gets you closer to an ore-tonnage estimate specifically, rather than total material moved.
Fleet composition drifts. A site that swaps smaller trucks for larger ones mid-quarter will show a flat or even lower truck count while moving more tonnage. Track class mix alongside count, not count alone.
None of this makes the method precise. It makes it defensible as a directional read, which is the real use case: you're not trying to replace a reconciled production report, you're trying to catch a slowdown, a ramp-up, or a competitor's fleet redeployment before it shows up anywhere else.
Why daily beats periodic
A single flyover or a monthly image gives you one data point, and one data point can't distinguish a maintenance shutdown from a genuinely smaller fleet. What separates a usable proxy from a guess is cadence. A daily count lets you see whether yesterday's low number was a one-day dip or the start of a trend, and it lets you build the cycle-time assumption from day-to-day variation instead of an assumed average.
That's the gap Mine Fleet Activity is built to close: a daily truck count on a defined haul network plus a read on road condition, pulled from satellite or aerial imagery, so the tonnage proxy above has real daily inputs instead of a single snapshot.
If you're benchmarking fleet utilisation or estimating a competitor's activity from outside the fence, a daily count like this is worth a look.