In a development campaign the rig schedule decides how fast the wells come on line and how much of the rig spend buys hole. Each rig move, each day waiting for a pad and each maintenance stop sits between two wells. This article sequences sixteen wells across three rigs, checks the scheduler's arithmetic by hand, and changes one thing at a time to see what moves the finish date and its risk.
What a rig schedule decides
A schedule answers three questions for every well: which rig, in what order, and from what date. The answer has to respect the constraints the campaign really has. A rig can only drill wells within its capability. A pad cannot be spudded before its location is built. A rig in maintenance drills nothing. Each rig needs a crew on every day of a well. Some wells carry a licence or lease date they must be drilled by.
The schedule also sets the campaign's cost beyond the wells themselves. Every move between pads costs money and days, and every gap between two wells is a rig either waiting on standby rate or released and remobilised. The order of the wells changes both, so the order is worth working out rather than inheriting from a list.
How the scheduler works
Finding the provably best assignment of wells to rigs is a hard combinatorial problem. DrillIQ uses a documented greedy heuristic instead: fast, deterministic and easy to follow, with a Monte Carlo pass on top for the risk. It works in four steps.
- Units. Each well is a unit, or with pad batching every pad of same-class wells becomes one unit drilled back to back behind a single move.
- Order. Units with a licence date come first, earliest date first; then the larger units, by their summed likely days; then the earlier ready date.
- Assignment. Each unit goes to the eligible rig that can start it earliest, after the rig's previous well and the move. A job that would overlap a maintenance window is pushed to the day after the window; a rig without continuous crew cover for the whole job is skipped. A preferred rig always wins if it can take the unit. The engine never goes back to fill an earlier gap.
- Risk. Every well's days are drawn from a triangular distribution of its minimum, likely and maximum, the whole fleet is rescheduled, and this is repeated 200 times to give P10, P50 and P90 finish dates and costs.
Three relations set the numbers.
T = Tlikely + Tlikely × (1 − r) × 0.35 × kw, within [Tmin, Tmax]
tmove = max(b, ⌈L / 50 km⌉)
C = Σ R × Ton well + Σ M × nmoves
- T
- planned days on a well, likely days plus contingency, rounded to whole days on the board
- r, kw
- risk tolerance from 0 to 1 (here 0.5), and the weather multiplier: 0.85 low, 1.0 moderate, 1.35 severe
- tmove, b, L
- days between two wells on one rig, the move buffer (here 3 days) and the distance moved, km
- C, R, M
- campaign cost, each rig's day rate and its cost per move
The cost charges the day rate only while a rig is on a well. Waiting days are not priced, which is right for a rig released between jobs and wrong for one kept on standby rate. That is worth remembering when two schedules finish on the same day but one has a rig waiting for two months.
The example campaign
The example is a development campaign set in typical North Oman conditions: horizontal carbonate producers from multi-well pads, drilled by land rigs. Area A has three pads of horizontal wells and two pads of shallower deviated wells; Area B, 32 to 48 km away, has two pads of longer horizontals. Two pads are still under construction when the campaign starts on 1 January 2026.
| Pads | Wells | Rig class | Days, min / likely / max | Ready |
|---|---|---|---|---|
| A1, A2 | 3 + 2 horizontal producers | 1,500 hp | 21 / 25 / 34 | 1 January |
| A3 | 3 horizontal producers | 1,500 hp | 21 / 25 / 34 | 15 February |
| B1 | 2 long horizontals | 1,500 hp | 30 / 36 / 50 | 20 January |
| B2 | 2 long horizontals; B2-2 licence date 30 September | 1,500 hp | 30 / 36 / 50 | 1 March |
| A4, A5 | 3 + 1 deviated wells | 1,000 hp | 13 / 16 / 22 | 1 January, 1 February |
Rigs 1 and 2 are 1,500 hp rigs at 38,000 and 36,000 USD a day; Rig 3 is a 1,000 hp rig at 26,000. A move costs 160,000 USD for the large rigs and 110,000 for Rig 3. Rig 2 has a ten-day maintenance stop planned for 1–10 April. Each rig has two crews on 14/14 rotation, offset so one is always on. Risk tolerance is 0.5 with moderate weather.
A hand check
- A well's length. Contingency on an Area A well is 25 × (1 − 0.5) × 0.35 × 1.0 = 4.4 days, so the planned length is 29.4 days, a 29-day bar. Area B: 36 + 6.3 = 42.3, a 42-day bar. The deviated wells: 16 + 2.8 = 18.8, a 19-day bar.
- A move. Pad A3 to pad B1 is 35.9 km: ⌈35.9 / 50⌉ = 1 day, less than the 3-day buffer, so the move takes 3 days. Distance only matters beyond 150 km here.
- The final schedule's cost. Rig 1 is on wells for 229 days at 38,000 USD, Rig 2 for 171 at 36,000 and Rig 3 for 76 at 26,000: 8.70 + 6.16 + 1.98 = 16.83 million USD. Seven moves add 5 × 160,000 + 2 × 110,000 = 1.02 million, for 17.85 million, the engine's figure.
The first schedule
- Area A wells
- Area B wells
- 1,000 hp wells
- Move or skid
- Waiting (pad not ready, maintenance)
DrillIQ's Rig Scheduling engine. Finish 274 days, 16 moves; hover a bar for the well.
Show the data
| Waiting | B2-2 | Move | B2-1 | Move | A1-2 | Move | A2-1 | Move | A3-1 | Move | A3-3 | Waiting | B1-1 | Move | Waiting | B1-2 | Move | A1-1 | Move | A1-3 | Move | A2-2 | Move | A3-2 | A4-1 | Move | A4-2 | Move | A4-3 | Move | A5-1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rig 1 (1,500 hp) | 59 | 42 | 3 | 42 | 3 | 29 | 3 | 29 | 3 | 29 | 3 | 29 | ||||||||||||||||||||
| Rig 2 (1,500 hp) | 19 | 42 | 3 | 36 | 42 | 3 | 29 | 3 | 29 | 3 | 29 | 3 | 29 | |||||||||||||||||||
| Rig 3 (1,000 hp) | 19 | 3 | 19 | 3 | 19 | 3 | 19 |
Scheduling one well at a time, the campaign finishes on day 274, 1 October. Three things stand out on the board.
Rig 1 waits 59 days before its first well. The licence well B2-2 sorts first, the scheduler gives it to the first free rig, and pad B2 is not ready until 1 March. Because the engine never goes back, Rig 1's first two months are lost.
Rig 2 waits too: 19 days for pad B1 to be ready, then 36 days more after B1-1. The second B1 well needs 42 days, which would run into the 1 April maintenance, so it is pushed to 11 April. The engine reports this as a maintenance delay.
There are 16 moves, 6 of them between wells on the same pad, each charged as a full move with its 3-day buffer. Moves cost 2.36 million USD of the 19.14 million total. Rig 3 drills its four wells by day 85 and has nothing else it can drill: every other well needs a 1,500 hp rig.
If the contract kept Rigs 1 and 2 on full rate while waiting, the 59 and 55 waiting days would add 59 × 38,000 + 55 × 36,000 = 4.22 million USD that the schedule's own cost does not show.
One change at a time
Pad batching. Drilling each pad's wells back to back cuts the moves from 16 to 7 and their cost from 2.36 to 1.02 million USD. The schedule finishes on day 248, 26 days earlier. The Monte Carlo disagrees: its P50 is day 310 and its P90 day 319, later than the unbatched plan's P50 of 289.
The reason is a cliff in the schedule. Rig 2's three A1 wells, 87 days, end on 28 March, three days before its maintenance. When the three wells take a little longer, as they do in most draws, the batch no longer fits before 1 April and is pushed past the stop. In 193 of the 200 draws Rig 2 starts nothing until 11 April and idles for 100 days. A deterministic schedule that fits a long batch just before a fixed stop looks good on the board and is fragile in practice.
Maintenance first. Moving Rig 2's ten days to 1–10 January, before it has a well, removes the cliff. The schedule finishes on day 238, with a P50 of day 275 and a P90 of day 304. But the licence well now goes to Rig 2, and Rig 2 waits until pad B2 is ready on 1 March.
Pad B2 ready on day 1. Building the B2 location before the campaign starts removes the last long wait. The schedule finishes on day 235, 23 August, with P10, P50 and P90 on days 241, 251 and 260.
- Area A wells
- Area B wells
- 1,000 hp wells
- Move or skid
- Waiting (pad not ready, maintenance)
The same engine and wells. Finish 235 days, 7 moves.
Show the data
| B2-1 | B2-2 | Move | A3-1 | A3-2 | A3-3 | Move | A2-1 | A2-2 | Waiting | A1-1 | A1-2 | A1-3 | Move | B1-1 | B1-2 | A4-1 | A4-2 | A4-3 | Move | A5-1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rig 1 (1,500 hp) | 42 | 42 | 3 | 29 | 29 | 29 | 3 | 29 | 29 | ||||||||||||
| Rig 2 (1,500 hp) | 10 | 29 | 29 | 29 | 3 | 42 | 42 | ||||||||||||||
| Rig 3 (1,000 hp) | 19 | 19 | 19 | 3 | 19 |
In the final schedule the large rigs spend 97 % and 93 % of the time from 1 January to their release on wells, against 73 % and 74 % in the first. The rig-days on wells are the same 476 in every scenario; what changed is the time between them.
Reading the risk
- The schedule (likely days plus contingency)
- P50 of 200 Monte Carlo runs
- P90
Each scenario adds one change to the one above it. Monte Carlo: every well drawn from its min / likely / max days and the fleet rescheduled, 200 times.
Show the data
| Schedule | P50 | P90 | |
|---|---|---|---|
| One well at a time | 274 | 289 | 325 |
| + pad batching | 248 | 310 | 319 |
| + maintenance first | 238 | 275 | 304 |
| + pad B2 ready on day 1 | 235 | 251 | 260 |
From the first schedule to the last, the P90 finish moves from day 325 to day 260, 65 days earlier, and the campaign cost from 19.14 to 17.85 million USD, almost all of it moves. The P50 cost of the final schedule is 18.92 million, about 1.1 million above the schedule's own figure, because the drawn durations lean to the long side: the triangular mean of 21, 25 and 34 days is 26.7, above the likely 25.
One imbalance is left. Rig 2 is released on day 184, 51 days before Rig 1 finishes on day 235. A greedy scheduler does not rebalance that by itself. The planner can drag a pad from one rig to the other on the board and see the engine reschedule, or release Rig 2 early and take the saving.
Practical guidance
- Treat location readiness as a scheduling input. Here one pad built two months late cost a large rig two months.
- Place maintenance where it costs least, between campaigns or before a rig's first well, and look for long batches that end just before a stop.
- Batch wells on a pad to cut moves, then check the risked finish, not just the board.
- Plan on the P90 for commitments: production start, facilities, licence dates.
- Read every wait on the board. Each one has a cause: a pad, a stop, a crew or the order.
- Match rigs to the work that remains. A rig whose class fits only a few wells is a candidate for release once they are done.
The days per well come from the well plans: see forecasting a well before spud from its offsets for the P10–P90 behind a well's minimum, likely and maximum, and building a drilling programme from offset data for the step times. Lost time while drilling feeds back into the schedule; understanding NPT covers how it is classified.
A checklist for the planning team
- Give every well a minimum, likely and maximum duration from offsets, not a single number.
- Enter each pad's ready date from the civil-works plan and update it as the locations progress.
- Put every rig's maintenance, crew rotation and capability class into the plan.
- Run the schedule with and without pad batching and compare the P50 and P90, not only the board.
- Read every wait and every maintenance delay on the board and decide whether to move it.
- Check licence and lease dates against the P90 finish of each well.
- Price waiting days at the contract's standby rate before comparing schedules on cost.
- Re-run the schedule whenever a well's actual days or a pad's ready date change.
How DrillIQ handles it
In DrillIQ the Rig Scheduling module plans a project's campaign: rigs with capability class, day rate, move cost, maintenance windows and crews on rotation; wells with minimum, likely and maximum days, ready dates, licence dates, preferred rigs and pads; and the constraints, sequencing mode and optimisation target (balanced, minimise moves, maximise utilisation or minimise NPT). It shows the schedule on a board where bars can be dragged to another rig or date, each well's phases, a calendar, rig utilisation and a move map, the conflicts and risks, and an analysis with the Monte Carlo P10, P50 and P90 finish and cost and a weather and move-buffer sensitivity. Plans can be imported from a drilling-plan workbook and exported as a schedule listing, a workbook and the XML formats planning tools import. The schedules above were worked out with the same engine.
Book a demo See all capabilities
References
- Pinedo, M.L. Scheduling: Theory, Algorithms, and Systems, 5th ed. Springer, 2016.
- Vose, D. Risk Analysis: A Quantitative Guide, 3rd ed. Wiley, 2008.
- IADC Drilling Manual, 12th ed. International Association of Drilling Contractors, 2015.
About this example. The well in this article is a representative scenario set in typical North Oman conditions and worked through with DrillIQ's engines. It is not a client's well, and its figures are not field results.