Case study · Utilities · Urbint

Ranking excavation tickets by damage risk

At Urbint I led a rare-event model that ranks 811 excavation tickets from highest to lowest risk of damaging underground gas lines, so a utility's damage-prevention team can send inspectors where damage is most likely. The model reached an AUC of about 0.70; the top 1% of ranked tickets captured 20% of damages, and the top 10% captured 60%.

Where the model sits in the damage-prevention workflow An excavator files an 811 ticket. Features are built from the ticket, the excavator's history, nearby gas assets, weather and terrain. The risk model scores the ticket, tickets are ranked daily, and field teams inspect the riskiest digs. Damage outcomes flow back to retrain the model. 811 ticketFeatures Riskmodel Daily rankedticket list Field teamsinspect first filed before digging · ticket and work type· excavator history · nearby gas assets· weather and terrain · free-text remarks damage outcomes and field feedback retrain the model
The model sits between ticket intake and the field team's daily plan.
Role
Led modeling end to end, with Product, Engineering and the client's field team
Users
Utility damage-prevention and field inspection teams
Methods
Gradient-boosted trees, class weighting, n-gram text features, geospatial joins, cumulative gains

The problem

Before digging, an excavator files an 811 ("call before you dig") ticket. A gas utility receives far more tickets than its damage-prevention team can visit, and actual damages are rare. The team needs a ranked list, not a yes/no label, to decide where limited inspection time goes each day.

1 Clean and link messy records

Damages had to be linked back to the tickets that caused them, and the link was a ticket number typed by hand in the field. Entries like "unknown", "?", "forgot to get it" or a bare year were common, so I built rule-based cleaning to recover valid links and drop the rest. Excavator names were normalized with fuzzy matching so one contractor's history was not split across spellings.

Under the hood. Six years of tickets and damage reports. Midway through that history the client switched ticketing software, which changed what several key fields meant; features that depended on those fields were checked before and after the switch rather than trusted blindly.

2 Build features that describe the dig

Each ticket is described from five angles: who is digging, what work they are doing, where it is relative to buried gas lines, the conditions on the day, and when it was called in.

Feature groupExamples
Excavator historyPast tickets, past damages, damage rate, size tier
WorkWork type, equipment, ticket type and priority, length of remarks
Gas assetsDistance to nearest main and service line; pipe diameter, pressure, material, install year
ConditionsPrecipitation, temperature, humidity, terrain slope
TimingHour, weekday, month, holidays, notice time

Location features come from reusable geospatial pipelines: H3 hexagonal indexing, weather integration, and nearest-neighbor joins from each ticket to the gas assets around it.

Map sketch of gas mains and service lines with scattered ticket locations; one new ticket is joined by dashed lines to its three nearest gas assets.
Illustrative. Each ticket inherits the distance to, and attributes of, the nearest buried gas assets.

3 Model a rare event

Damages are a small fraction of tickets, so a model that simply predicts "no damage" would look accurate and be useless. The model is judged instead on how many damages land at the top of its ranking.

Under the hood. Gradient-boosted trees (LightGBM in the first version, then XGBoost) with class weighting for the imbalance. A later version added text features: word n-grams (1 to 5 words) from a combined field of work type, equipment and excavator, joined with the strongest standard features. Text caught patterns that coded categories missed, such as routine work described in free text.

How free text becomes model input.

4 Evaluate the way the field team works

The field team works down the list from the top, so the key metric is the cumulative gains curve: what share of damages is caught when inspecting the top 1%, 5% or 10% of tickets. AUC is reported alongside it. Before rollout, scores went through several months of field validation with the client.

Cumulative gains curve rising steeply: the top 1 percent of tickets captures 20 percent of damages and the top 10 percent captures 60 percent, far above the random-order diagonal.
The two marked points are the reported results; the shape between them is illustrative.

5 Listen to the field

After deployment, the client flagged cases that felt wrong: municipal excavators and large contractors with strong safety programs scored too high, and routine hydro-vacuum work scored too high. I turned each complaint into a testable hypothesis and ran a model review. All three held up: those excavators had high historical damage rates but had recently improved, hydro-vacuum tickets really did have low damage rates, and a data quality issue was inflating their scores. The fixes (text features, re-tuned class weighting and cleaner inputs) addressed the feedback and improved performance.

What it enabled

A daily risk ranking delivered through client-facing dashboards, with KPIs defined together with Product and Engineering. Damage-prevention teams could focus inspections on the riskiest excavations instead of working tickets in arrival order.

Related work

Time-series forecasting models reaching 80%+ accuracy across service regions, used for workforce planning.

Skills