AI Repair Triage for Remote Public Housing13 min read2,532 words

AI Repair Triage for Remote Public Housing

See how ReachNT combines AI repair triage, human review and route planning for remote public housing—and why tenants never see a model confidence score.

AI repair triagepublic housing technologyhuman-in-the-loop AIH3 geospatial batchingAI model calibration
AI Repair Triage for Remote Public Housing

AI Repair Triage for Remote Public Housing

Building an AI Repair Triage System for Remote Housing

A burst pipe in a city usually means a short drive and one plumber's schedule. In a remote community, the same repair can involve a long trip and then waiting - sometimes for weeks - while crews are organised. That logistics problem quickly turns into a fairness problem: urgent repairs can sit longer simply because of where a tenant lives.

ReachNT is a working demo built to explore that problem in remote Northern Territory public housing. It brings together repair triage, shared-trip planning, and plain-English explanations for tenants. The aim isn't to hand a housing service over to an algorithm. It's to help people make more consistent decisions about what needs attention first and how crews can cover several communities in one trip.

One key design choice was to keep the model's confidence score hidden. The model could rank unfamiliar repair descriptions reasonably well, but its confidence estimates didn't match reality closely enough to display. Showing them would have implied a level of certainty the system had not earned. This article explains how the demo handles urgency, geography, human review, and evaluation - and where the evidence ends.

Why remote repair triage is an operational problem

ReachNT tackles a problem that's easy to describe and hard to solve: sending a tradesperson to a remote community for a single repair often costs far more than doing the same job in town. Once travel and planning drive the cost, operational incentives shift. A repair that's urgent for one household can end up waiting while the service tries to make a trip "work" from a logistics perspective.

A simple queue doesn't fix this. First-in, first-out is straightforward to explain, but it assumes every repair matters the same way. Cheapest-first can lower the average apparent cost per job, but it can also leave urgent faults waiting if they're expensive to reach. Either way, you miss the combined picture of need and distance.

ReachNT was built by Team Top Enders for the CDU IT Code Fair 2026 AI Challenge. It's a working demo, not a deployed housing service. The intended workflow is to read a tenant's repair report, estimate urgency, group nearby communities into shared trips, and explain the expected wait. Those are linked tasks: a ranking that ignores travel is hard to run in practice, and a travel plan that ignores urgency can end up optimising the wrong thing.

Separate the evidence from the simulation

Before the team could model the problem, they hit a simple constraint: there was no public Northern Territory work-order dataset they could use. Without real historical work orders, they couldn't train and test the system on the kind of repair records a live service would generate. So they created a year of synthetic repair requests.

Some inputs were real, though. The geographic and operational context included 70 communities, house counts, crew hubs, road closures, airstrips, and response-time data. The repair requests and tenant behaviour were simulated. That split matters. Synthetic examples won't necessarily match how people describe faults, and they won't reflect how work orders get recorded day-to-day.

The demo labels its synthetic requests as synthetic rather than pretending they're real cases. That's a product decision as much as a documentation note. If a tool is built on simulated data, it should be clear where a user is interacting with a model that hasn't seen the live world.

Define fairness at the point of ranking

The urgency model had one rule from the start: queue position should depend on the fault, not the person reporting it. A repair shouldn't move up simply because a tenant called rather than used a form, wrote a longer description, or communicated in more fluent English.

That sounds obvious, but it changes what the system needs to learn and what has to be tested. Language models and text classifiers can treat wording, vocabulary, or writing style as if it were severity. A short report can describe something dangerous; a polished report can describe something routine. So the system needs a way to infer urgency from the reported condition without turning someone's ability to describe it into a proxy for priority.

How the system ranks repairs without ranking tenants

ReachNT uses a model that reads plain-language repair reports and produces an urgency ranking. In the project's evaluation, it reached a ROC-AUC of 0.84 on wording it hadn't seen during training. That suggests the model can separate more-urgent from less-urgent examples better than chance. It doesn't, however, mean the model is right in every case - or that the same performance will hold on real tenant reports.

A ranking model is answering a comparative question: does it tend to put urgent cases above less urgent ones? That's not the same as saying a given prediction is "84% likely to be correct." It's also not the same as proving the system is safe to use as a final decision without review. Since the end result affects someone's home, those claims should stay separate.

Why the confidence score stayed hidden

The model's ranking performance looked stronger than its calibration. When it reported confidence of at least 90%, it was correct only 56% of the time in the project's evaluation. A 90% figure can look reassuring to a tenant waiting for a repair, but the measured results don't support using that number as a straightforward certainty statement.

So tenants don't see a confidence percentage. Instead, the product gives a plain-English explanation of why the repair is waiting. This isn't an argument that explanations can never work, or that probabilities are always useless. It's about this particular probability: it wasn't reliable enough to display as if it were a trustworthy estimate.

A misleading confidence score can cause harm in two different ways. It can lull someone into thinking the decision is solid when the model is actually uncertain. Or it can create unnecessary anxiety when the number is misunderstood. A dashboard might benefit from a neat percentage, but the person affected by the decision needs information the system can defend.

A model can rank cases usefully and still be unfit to present its own certainty.

That's why calibration belongs in evaluation - especially when outputs are shown to people who are affected. A model can score well on ranking metrics and still produce overconfident estimates. If the product has no honest use for that confidence, hiding it is better than presenting a precise number that isn't dependable.

Keep human review in the safety design

In the demo, 42% of dangerous reports are routed to a human review step before a decision is finalised. The project reports that the complete system - including human review of flagged reports - catches 99.3% of dangerous cases. That difference matters: it describes the system as a whole, not the model acting alone.

Human review isn't a magic fix. It adds workload, and it only helps if reviewers have enough context, time, and authority to question the model. But it gives the workflow a path for cases that shouldn't be left to an automated score. For a safety-critical setup, the real question isn't just whether a model can classify a report. It's what happens when it gets things wrong, and whether someone can intervene before that mistake turns into real delay.

How shared trips and human approval work

Urgency ranking is only part of the operational challenge. Even with good triage, a service still has to organise travel so remote repairs are actually feasible. ReachNT uses Uber's H3 geospatial system, which splits areas into hexagonal cells. Communities in neighbouring cells can be grouped into shared weekly trips so a crew can handle several jobs in one run.

H3 is a useful way to simplify geography, but it's not a literal map of the world. Communities aren't arranged neatly on a grid. Roads can close, access can change with seasons, and airstrips may matter in ways a simple cell grouping won't capture. That means the batching results have to be read alongside the limits of the travel assumptions used in the demo.

Across five random synthetic years, the system estimated savings of $67 to $76 per repair from shared trips, compared with a baseline of roughly $821 per repair. These are simulation results, not savings observed in a live service. Whether the approach holds up in practice depends on whether real travel patterns, access constraints, and work schedules support the proposed groups.

Combine batching with priority rules

Grouping jobs can reduce travel costs, but it also creates a risk: a "convenient" trip might end up pushing an urgent repair later. ReachNT keeps the two decisions connected, but not fused. Batching decides which communities can be covered together. Urgency decides the order of repairs inside each trip.

That separation makes the trade-off explicit. The system can look for efficiencies without letting a routine repair jump ahead of an urgent one just because it happens to fit a route. In short: batching helps save money; ranking decides order. Neither should quietly override the other.

Use the solver to prepare a plan, not own the decision

Weekly schedules are generated with a CP-SAT solver. In the project's evaluation, it produced 99.5% of 26,018 weekly plans as optimal, with a median solve time of 8 milliseconds. The solver optimises cost and fault-days while keeping urgency order as a constraint.

The speed is useful, but it isn't what makes the plan safe. Each weekly plan still needs sign-off from a named coordinator before it goes out. The solver builds schedules from synthetic requests and scheduled distances. A coordinator can know things the model doesn't represent - local access changes, current constraints, and practical considerations that come from being on the ground. And the approval step gives the service a person who can explain why a tenant's repair waited.

That approval only matters if the reviewer can inspect and change what the system proposes. A signature attached to an opaque recommendation can become process theatre. The workflow should be designed so plan review is real and the coordinator can challenge the output.

What the evaluation shows - and what it cannot

Over one synthetic year, ReachNT averaged $821 per repair, with nine in ten urgent remote repairs fixed within three days and 61,700 weighted fault-days. The cheapest-first baseline averaged $561 per repair, but urgent remote repairs waited 62 days there (compared with three days in town), and the system recorded 233,100 weighted fault-days.

This comparison shows a trade-off inside the simulation, not a guarantee that a real service would produce the same numbers. Cheapest-first can lower the average cost per repair, but it also widens the gap in how long urgent remote repairs wait. ReachNT spends more per repair in the model specifically to reduce that inequity. If you only care about cost per job, the cheaper system wins. If your goal includes how long households live with serious faults, the cost-only metric is clearly incomplete.

Treat synthetic metrics as a starting point

The demo's numbers show how the design behaves under simulated conditions. They don't prove the model will make the same predictions on real tenant reports, or that a live service would achieve the simulated costs and repair timelines.

There are three practical reasons to stay cautious:

  • The repair requests are synthetic. Real tenants may describe faults differently, and that can change model performance.
  • The confidence analysis is based on simulated text. Calibration should be rechecked against genuine work orders before anyone relies on the estimates.
  • Travel distances and access are simplified. Flooded roads, seasonal conditions, and local routing decisions can change both cost and feasibility of shared trips.

The team suggested a pilot in the Katherine hub's 16 communities, precisely because it would test some of those assumptions. Before expanding, a real pilot would need to measure how reports are written, how often reviewers override the model, whether planned routes match actual travel, and how waiting times change for different kinds of repair.

Put safety review into multiple layers

A multi-agent AI audit found a bug in the demo: a dangerous life-support repair could be downgraded based on a photo alone. A later reassessment based on an image could potentially change a high-severity repair to routine, which would undermine the system's core priority rule.

The fix was applied at three levels. The portal blocks that downgrade path in the interface, the server validates the change, and the database preserves the original severity so a later edit can't quietly erase it. The underlying lesson for safety-critical software is simple: if you only enforce a safety property in the interface, another client or direct request can bypass it. Safety properties shouldn't depend on one layer always behaving perfectly.

Adversarial review helps for exactly this reason. A system can look coherent while still containing a failure path its builders didn't anticipate. The useful review work is in the flows where an error could change safety or priority - not just the screens that behave correctly in the "happy path." Catching this issue before a tenant encountered it was one of the most consequential outcomes of the project.

Conclusion

ReachNT is a demo, not a production-ready answer to remote housing repairs. Its real value is in making the system's choices visible: urgency should be about the fault rather than the tenant, travel efficiency should not erase priority, and the model's confidence shouldn't be displayed when it's demonstrably unreliable.

The next step shouldn't be treating synthetic metrics as proof. It should be testing the assumptions with real work orders, local coordinators, and actual travel conditions - while keeping human review and safety checks in the workflow. If you want to see the implementation, try the ReachNT demo or review the source code on GitHub.

Frequently Asked Questions

ReachNT is a working demo of a repair triage and trip-planning system for remote Northern Territory public housing. It uses AI to rank repair reports, groups nearby communities into shared trips and provides plain-English explanations. It was built for a university challenge and has not been validated as a live housing service.
The model’s confidence estimates were poorly calibrated in the project’s evaluation. When it claimed at least 90% confidence, it was correct 56% of the time. Showing that figure to tenants could imply more certainty than the system can support, so the demo provides an explanation instead.
No. The urgency model supports triage, and dangerous reports can be routed to human review. Weekly plans also require approval from a named coordinator. The reported safety performance applies to the complete system, including review—not to the model working alone.
No. The results come from a synthetic evaluation. The project used real geographic information, but the repair requests and tenant behaviour were simulated. Real work orders and actual travel patterns would be needed to evaluate the system in a live setting.
The urgency model should be tested and retrained on genuine tenant reports, its calibration should be measured again, and shared-trip planning should be compared with actual travel and access conditions. A pilot should also track human overrides, safety issues and repair delays—not just average cost per job.

Related articles