When does exploratory drilling pay off?

Today in short

  • A minimum mining rule (dig at least so many tonnes every period) is what keeps the blind scheduler from giving up early. Without it, blind can lose most of the mine’s value.
  • A drill shaft pays only when two things are true. The mine has to dig below the surface within the plan, and the surface has to be a poor guide to what’s underneath.
  • On a mine with a good, honest surface, no shaft was worth its cost. On the same mine with ore hidden under waste, a shaft costing under 100 added about 8,800 and got within 0.6% of perfect information.
  • The minimum mining rule helps blind but hurts the scheduler that drilled, because of how the rule is applied to future periods. Tomorrow I test a fix.

Background in plain words

An open-pit mine is modelled as a 3D grid of blocks. Each block has a grade, the share of it that is valuable ore. Each period the scheduler decides which blocks to dig and whether each one goes to the mill (ore) or the waste dump. A block can only be dug once the blocks above it are gone. The goal is the highest NPV (net present value), which is total profit with money earned sooner counted as worth more.

The question is how much it helps to know what’s underground before you start. I compare schedulers that know different amounts.

Scheduler What it knows
Blind Only the surface. Deeper grades are revealed as digging exposes them.
Partial The surface, plus estimated grades along one exploratory drill shaft, bought at a cost before mining starts.
Full information Every grade in advance. The best result any schedule can reach.
Greedy A simple rule of thumb that always digs at full capacity. A baseline.

Blind, partial and full all use a rolling MILP, an optimisation model that re-plans after every step using only what it can currently see.

A minimum mining rule (also called the lower limit) says the mine must dig at least a set tonnage every period, as a real operation would.

The gap between blind and full information is the most any drilling can ever be worth. A shaft only pays if it closes enough of that gap to cover its own cost.

Experiment 1. Blind depends on the minimum mining rule

A 10 × 10 vertical slice of a mine (blocks 1 to 100), with two different shafts (outlined in blue).

Shaft 1 → 100 runs diagonally from the top-left corner down through the rich ore band
Shaft 1 → 100 runs diagonally from the top-left corner down through the rich ore band.
Shaft 10 → 91 runs the other way, from the top-right surface block down to the bottom-left
Shaft 10 → 91 runs the other way, from the top-right surface block down to the bottom-left.
NPV No minimum, shaft 1→100 No minimum, shaft 10→91 Minimum 250, shaft 1→100 Minimum 250, shaft 10→91
Partial 66,946 13,090 65,513 65,213
Blind 13,090 13,090 65,652 65,652
Full information 68,266 68,266 67,819 67,819
Greedy 61,290 61,290 61,290 61,290

What it shows. With no minimum, blind earns only 13,090, about a fifth of what’s possible. It digs what it can see, finds nothing worth chasing, and stops. With a minimum of 250, blind is forced to keep digging, stumbles onto the ore, and jumps to 65,652. The minimum rule alone is worth more than 50,000 to blind. With no minimum, the shaft through the ore band rescues partial (66,946), but the shaft that misses it leaves partial no better than blind.

A second test on a 5 × 5 × 5 mine (blocks 1 to 125) with a shaft cost of 120 tells the same story.

Shaft A (blocks 1, 32, 63, 94, 125) runs corner to corner and hits the shallow ore
Shaft A (blocks 1, 32, 63, 94, 125) runs corner to corner and hits the shallow ore.
Shaft C (blocks 21, 46, 71, 96, 121) goes straight down and misses the ore
Shaft C (blocks 21, 46, 71, 96, 121) goes straight down and misses the ore.
Minimum mining Scheduler NPV Gain from shaft Gain after 120 cost
0 Full information 67,008    
0 Greedy 64,926    
0 Blind 14,182    
0 Shaft A (hits shallow ore) 57,490 +43,308 +43,188
0 Shaft B (hits deep ore) 14,182 0 −120
0 Shaft C (misses) 14,182 0 −120
200 t Blind 59,669    
200 t Shaft A 59,669 0 −120
200 t Shaft B 57,457 −2,212 −2,332
200 t Shaft C 57,465 −2,204 −2,324

Without a minimum, only the shaft that finds shallow ore pays, and it pays hugely. With a 200 t minimum, blind reaches 59,669 on its own and every shaft either adds nothing or makes things worse.

Experiment 2. Realistic capacity, honest surface. Drilling is worthless

Next, a mine closer to real production limits.

  • Mine. 4 × 5 × 4 = 80 blocks of 50 t each, 7 periods.
  • Economics. Mining costs 10 per tonne, ore earns 100 per tonne, 10% discount rate.
  • Capacity. Dig 20 to 70 t per period, process up to 40 t per period.
  • Drill cost. 50 per block drilled, plus 10% for each layer deeper, paid once before mining.
  • Minimum mining. Each case run with no minimum and with a 20 t minimum.
Shaft Blocks drilled Layers reached Cost
Full diagonal (1 → 80) 8 0 to 3 460
Shallow diagonal (5 → 52) 6 0 to 2 330
Vertical (10 → 70) 4 0 to 3 230
Full diagonal shaft
Full diagonal shaft.
Shallow diagonal shaft
Shallow diagonal shaft.
Vertical shaft
Vertical shaft.
NPV Blind Diagonal shaft Shallow shaft Vertical shaft Full info Greedy
No minimum 16,812.54 16,812.54 16,812.54 16,812.54 16,812.54 16,065.79
20 t minimum 16,812.39 16,812.54 16,812.39 16,812.39 16,812.54 16,065.79
Shaft gain minus cost Diagonal Shallow Vertical
No minimum −460 −330 −230
20 t minimum −459.85 −330 −230

No shaft paid for itself. The reasons are simple.

  • Blind was already perfect. It matched full information, so there was no gap for drilling to close.
  • The mill was the bottleneck. At 40 t per period the mill takes about 280 t over 7 periods, only five or six blocks. The surface alone had 20 blocks of good ore (grades 0.54 to 0.75), all visible from the start. The best plan never needed to go deep.
  • Deep information went unused. Most lower blocks were never even uncovered, so knowing their grades changed nothing.
  • The surface told the truth. Rich surface sat over rich ground, so there was nothing misleading for a shaft to correct.

Experiment 3. Same mine, hidden ore. Now drilling pays

Same mine, capacities and costs. Only the grades change. The surface now shows a small decoy of ore surrounded by waste, while a rich lens of ore sits just below, under most of the waste.

Full diagonal shaft on the lens layout
Full diagonal shaft on the lens layout.
Shallow diagonal shaft on the lens layout
Shallow diagonal shaft on the lens layout.
Vertical shaft on the lens layout
Vertical shaft on the lens layout.

Shaft costs here are 92 (diagonal), 66 (shallow) and 46 (vertical).

NPV Blind Diagonal Shallow Vertical Full information Greedy
No minimum 1,273 10,167 10,167 1,273 10,223 10,174
Shaft gain minus cost   +8,802 +8,828 −46    
20 t minimum 5,861 8,489 8,151 6,677 10,223 10,174
Shaft gain minus cost   +2,537 +2,224 +771    

No minimum. Blind digs the decoy and stops, because everything else it can see is waste (1,273). The diagonal and shallow shafts each spot two rich blocks just under the surface. That’s enough to make clearing the waste worthwhile, and once digging starts the rest of the lens comes into view. Both finish within 0.6% of perfect information for a shaft costing under 100. The vertical shaft finds only one rich block, which isn’t worth clearing nine waste blocks for, so it ends up exactly like blind.

20 t minimum. Blind is forced to dig and finds part of the lens on its own (5,861), so there’s less left for a shaft to add. All three shafts still pay, in the order of how much shallow ore they find. Diagonal and shallow are effectively tied. An earlier run had shallow ahead, which is normal sensitivity in the rolling MILP when two options are this close.

Greedy nearly matches perfect information here (10,174). It always digs at full speed, and the lens lies under most of the waste, so wherever it digs it soon hits ore. On the decoy layouts in Experiment 1 the same habit wasted effort.

Why the minimum helps blind but hurts the scheduler that drilled

One result looked odd. With the lens layout, the diagonal shaft earned less with the 20 t minimum (8,489) than without it (10,167), even though it dug well over 20 t each period in both runs. Comparing the two runs period by period:

Period No minimum, tonnes dug 20 t minimum, tonnes dug
1 70 t (decoy plus the waste above the ore) 20 t (decoy only)
2 70 t 50 t
3 to 7 70 t about 70 t

With the minimum, it reached the ore about two periods later, and that delay cost about 1,700.

The cause is how the minimum is written into the plan. Each time the MILP re-plans, it makes a full plan for all remaining periods, and the minimum currently applies to every period in that plan, not just the one it’s about to carry out.

Picture a site manager who can see some rock now and will discover more as they dig. If they must promise in advance to dig at least 20 t in every future period, and the only rock they can see for those future periods is waste, they’ll think, “I’ll need waste to fill those future quotas anyway, so I’ll save the waste above the ore for later.” That spreads the stripping out and delays reaching the ore. What they don’t know yet is that the moment they start digging, the ore lens will appear and fill those later periods on its own.

If instead the minimum only applied to the current period, the manager would think, “I know where the ore is. I’ll clear the waste now, meet this period’s 20 t, and decide next period when I can see more.” The rule is still met every period, because each period becomes the current one in turn. It just isn’t pre-committed into a future the model can’t see yet.

  P1 P2 P3 P4 P5 P6 P7
A. Minimum in every planned period. The plan reserves at least 20 t of work in every period and can spread out the stripping. ≥20 ≥20 ≥20 ≥20 ≥20 ≥20 ≥20
B. Minimum in the current period only. The plan is free to front-load stripping and re-plans each period. ≥20 free free free free free free

Illustrative only. Actual digging still depends on grades, access and mill capacity. The future plan must still respect what is physically possible to dig.

Why this cuts opposite ways.

  • Blind doesn’t know where the hidden ore is. The minimum forces it to dig and discover valuable blocks it would otherwise never reach. So the minimum helps.
  • Partial already knows where the ore is, from the shaft. Applying the minimum to every future period makes it spread out the waste removal instead of going straight for that known ore. So the minimum hurts.

In one sentence, “minimum in every planned period” means plan to dig at least 20 t every period, including the future, while “minimum in the current period only” means meet this period’s target now, then re-plan the future once you can see more.

This is a limit of planning only over visible blocks, not a problem with the shaft itself.

What this means

Drilling pays only when two conditions hold together.

  1. The mine must actually dig below the surface within the plan. That needs enough capacity compared with the mine’s size, or a long enough horizon.
  2. The surface must be a poor guide to what’s below. If the surface is honest, blind already does as well as anyone.

When both hold, one well-placed shallow shaft can be worth many times its cost. When either fails, the same shaft is wasted money. The value of drilling comes from the decision it changes, not from the information itself.

Next (tomorrow)

  • Test the minimum in every period vs the minimum in the current period only. Change the rolling MILP so the 20 t minimum applies only to the period being carried out, re-run the lens layout for blind and all three shafts, and compare with today’s numbers. Expect partial to recover towards 10,167 with the minimum. Check that blind still benefits and that every period still meets 20 t when it actually runs. Also handle any period where 20 t isn’t reachable.
  • Change from block structure format and a very large instance.