Data Wrangler
← The Agent
Field notes · 17 September 2026

Outrider corrals Teapot Dome

One delivery, scattered across a CD like a herd after a thunderstorm: well headers, production, directional surveys, formation tops, core, borehole images, seismic, logs, 208 photographs and 318 well reports. All of it into an empty database in 14 minutes 42 seconds for 85 cents — and in all that time it reined in exactly three times to ask somebody a question.

396,000 rows
in the ground before the seven minute mark — 413,249 in all, across 27 tables
14m 42s
start to finish
$0.85
model spend, of a $15 limit
3
questions for the trail boss
62
turns in the saddle

The coffee cost more than the load did.

How the Outrider rides

An outrider (Agentic Agent) goes out ahead of the herd, reads the country and comes back to report. The trail boss decides. That is the whole arrangement: the Outrider proposes, tested code rides fence, and a person settles anything that is a judgement rather than a step. Here is how that went, from the moment somebody pointed it at a folder.

  1. Pointed at a directory

    One folder and a spending limit, which is about as much of a briefing as a hired hand ever gets. Here: the Teapot Dome delivery, $15, and a note to keep the last 36 producing months of each well.

  2. Rides the whole spread

    Every file, every folder, right down into the corners — spreadsheets, LAS logs, SEG-Y, PDFs, Word documents, images, and a geodatabase that is really 639 files in a trench coat pretending to be one.

  3. Works out which pen each one belongs in

    A target table and a column-by-column mapping for every file and every sheet. Where that exact file and sheet was mapped before and a person approved it, the mapping is proposed straight away rather than worked out again.

  4. Rides the fence line before anybody is bothered

    The mapping is run against the whole file, writing nothing. Every source column must be read or listed as skipped with a reason. Values are measured against the columns they are headed for. Coordinates are checked against the place the row itself names, coded values against the lists they would have to join to, well identifiers against the wells that exist or are on their way. A plan that fails any of these never becomes a card — it goes back to be worked out again.

  5. The trail boss says move 'em out

    What survives that comes up as a card: the rows it would load, the columns it would fill, and the sample it read. Approve it, send it somewhere else, or refuse it. Nothing reaches the database before that card is settled.

  6. Drives them in, one pass

    Staged and committed in a single transaction, recorded against the person who approved the mapping. The testing above is why there is no second pass: the file has already been read and checked, so writing it twice — once to a trial, once for real — only meant reading the same spreadsheet again. The insert adds only rows that aren't already there, and anything that cannot land stays staged with its reason attached.

  7. Mavericks go to the boss

    A row with nowhere to hang is held, not guessed and not dropped. If the parent turns up later in the run, the row goes in by itself. If the delivery simply never says — which operator, which well, which survey — that is a card, and it waits.

  8. And it hollers when it needs to know something

    A value that argues with its neighbour, a folder it proposes to leave out, a sample of what it pulled out of a document. Every question carries its evidence, and every answer is signed and dated.

  9. No stragglers left on the range

    It cannot declare itself finished while a file in scope is unaccounted for. Every one is loaded, being loaded, or set aside with a reason in writing.

  10. Tallied at the gate

    The totals on this page are read back out of the database after the fact, not reported by the thing that did the loading.

When there's no pen to put it in

Sometimes a file holds something the database was never designed to hold. The Outrider's job there is to say so plainly instead of forcing it into the nearest table that half fits — because a value in the wrong column still plots, still exports, and still gets quoted. Three of the tables this run filled exist for exactly that reason, built when this delivery first met the database:

Who decided the shape

A person did, all three times — the commit messages say so: “Perry chose a property table”, “Perry chose a table shaped like the thing itself”. The Outrider finds the homeless data and makes the case; the trail boss settles what the new table looks like; the table is built, and then the Outrider fills it. What it will not do is quietly invent a column and pour the data in.

Where the fourteen minutes went

0 100k 200k 300k 400k 0 4 8 12 16 minutes from the start The first 4½ minutes 30 cards raised. No rows yet. 396,083 rows, inside seven minutes 140 seconds after the first row landed done 14m 42s
Sampled once a minute by a read-only recorder while the run was live. It watches twenty-one tables, which is why it lands 811 short of the final 413,249 — the well reports also fill drill-stem tests, casing, stimulation and petrophysical zones, and those are not on its list.

For four and a half minutes it appears to be doing nothing at all. That is the part where it decides: 30 loads proposed, checked against the files and settled before a single row is written. Then the gate opens and 396,000 rows go through in a hundred and forty seconds — the wells, the production history, the survey stations, the formation tops and a quarter of a million seismic grid points.

The last eight minutes are 318 well report PDFs, read one at a time. No amount of remembering gets a man out of reading the mail.

Three mavericks

A maverick is an unbranded calf: nobody can tell you whose it is by looking at it. A delivery throws them up too — a row that needs a parent, and nothing anywhere in the files willing to say which one. The Outrider will not guess a brand. It reins in and asks. Three times, all morning.

  1. Seven operators that match no company on file

    1,315 wells name an operator. Seven of those names — U.S. DOE, Mammoth Production, Harpel John P Jr. among them — match nothing in the company records. Create them, point them at a company already there, or leave the field empty. A guess here hangs a thousand wells off the wrong outfit. answered: create all seven

  2. 208 core photographs with no brand on them

    Each one records its interval, its tray and the date it was taken. Not one of them records the well it came out of. Ear tags all round and not a brand in sight. answered: 48-X-28

  3. Five seismic lines that never gave a survey name

    lineA through lineE, no survey name in any header. Without one there is nowhere for the survey or its lines to live. answered: NPR-3 2D

Who settled the other thirty-eight

41 cards came up. Three went to a person, and one more was a person's instruction relayed and labelled as relayed. The rest answered themselves, and every one of them says who and why.

What came through the gate

TableRowsWhat it is
Wells and production
dv_well1,351Well headers, all inside the Teapot Dome field
dv_prod_entity1,264What produces
dv_prod_volume108,177Oil, gas and water, last 36 producing months per well
dv_business_associate7The operators from the card above
Down the hole
dv_well_dir_srvy_sta40,092Directional survey stations
dv_well_dir_srvy_hdr153Their survey headers
dv_well_formation_top7,405Formation tops
dv_well_dip1,945Borehole image dips: bedding, fractures, dune bedding
dv_well_log / dv_well_log_curve9,952LAS logs and their curves
dv_well_dst / dv_well_dst_period265Drill-stem tests and their flow periods
dv_well_casing106Casing strings
dv_well_stimulation144Stimulation treatments
dv_well_petro_zone / _interp127Petrophysical zones and interpretations
Core
dv_well_core13Cored intervals
dv_well_core_sample112Porosity and permeability by sample
dv_well_core_photo208Core photographs, filed against 48-X-28
Seismic and the model
dv_seis_horizon_grid241,587The 3D horizon grid
dv_seis_horizon9Interpreted horizons
dv_seis_set / dv_seis_line8Two surveys, six lines — NPR-3 2D among them
dv_well_checkshot92Time–depth pairs
dv_reservoir / _property202Reservoirs and their measured properties
dv_strat_column30The stratigraphic column
27 tables413,249counted from the database after the run
The delivery page at the finish: state DONE, nothing waiting on you, $0.85 spent of a $15 limit, 54 items of which 32 loaded, and every load bar at 100 percent.
The finish. Every bar full, 85 cents of a fifteen dollar limit, and the only line that really matters: “Nothing waiting on you.” It stopped because the work ran out.

Files and documents

Two different jobs. A data file is read: a spreadsheet, a LAS log, a SEG-Y volume, where the numbers sit in rows and columns and the work is knowing which column is which. A document is mined: 318 well report PDFs, read one at a time for the facts buried in the prose. By row count it is not a close contest.

413,249 rows, by what they were read out of 99.4% data files — 410,882 rows 0.5% documents — 2,149 rows and 218 from neither: the 208 photographs, and 7 operators typed on a card
Every row traced to the file behind it by that file's own identifier, and counted from the database after the run.

That sliver is doing more than its width suggests, because rows are not the only measure. Six of the 27 tables were filled entirely from documents — drill-stem tests and their flow periods, casing strings, stimulation treatments, petrophysical zones and interpretations. Not one of those facts appears in a single spreadsheet anywhere in the delivery. The documents also contributed 1,101 directional survey stations, 326 formation tops and 80 survey headers alongside the spreadsheets that carried the rest.

structured — spreadsheets, LAS, SEG-Y, XYZ unstructured — well report PDFs neither rows dv_well_dst_period 100% 156 dv_well_stimulation 100% 144 dv_well_dst 100% 109 dv_well_casing 100% 106 dv_well_petro_zone 100% 88 dv_well_petro_interp 100% 39 dv_well_dir_srvy_hdr 47.7% 52.3% 153 dv_well_formation_top 95.6% 4.4% 7,405 dv_well_dir_srvy_sta 97.3% 2.7% 40,092 dv_seis_horizon_grid 100% 241,587 dv_prod_volume 100% 108,177 dv_well_log_curve 100% 8,778 dv_well_dip 100% 1,945 dv_well 100% 1,351 dv_prod_entity 100% 1,264 dv_well_log 100% 1,174 dv_reservoir_property 100% 193 dv_well_core_sample 100% 112 dv_well_checkshot 100% 92 dv_strat_column 100% 30 dv_well_core 92.3% 13 dv_reservoir 100% 9 dv_seis_horizon 100% 9 dv_seis_line 100% 6 dv_well_core_photo neither 208 dv_business_associate neither 7 dv_seis_set neither 2
Every table the run filled, each bar split by the kind of file its rows came out of. Top: the six tables that exist only because the well reports were read. Middle: three the reports shared with spreadsheets. “Neither” is the 208 core photographs, the 7 operators typed on a card, the two seismic survey records and one core.

What it read and left where it lay

The geodatabase on the Teapot Dome CD is a folder of 639 files. Outrider opened it and reported what was inside: 137 map layers — 2,694 oil pipeline segments, 1,897 roads, 1,451 faults, topographic contours, the NPR-3 boundary — each with a suggested home and a box to tick.

The verdict from the person holding the pen: “Nothing in the geodatabase is of much interest, but it is good that we can read it.” So all 137 were skipped, and the folder is filed as set aside with that reason rather than quietly forgotten. Reading something and choosing not to keep it are two different facts, and the database holds them apart.

Check the tally yourself

Every number here comes from the database after the run, or from a read-only recorder that sampled the live session once a minute and photographed each card as it appeared. The database started empty: no catalog, no registered codes, nothing carried over but the load plans a person had approved by name and date. All 41 cards keep their question, their answer, who answered and when — including the one a machine passed along on instruction, which is signed as relayed and not in anybody else's name.

Fourteen minutes, three questions, 413,249 rows, and not a single thing loaded that nobody agreed to.

The herd is in the corral, the tally book balances, and the Outrider rides off into the sunset without waiting to be thanked. Somebody always asks who that was.