CASE/07 / Facilities management
Saudi Arabia97,000 assets audited in 60 days with a third fewer teams
Clustering and route planning on cleaned site data let a facility maintenance provider cover about 97,000 assets across 1,100 sites in 60 days with about 35% fewer audit teams than first estimated.
01 / THE ASK
The decision behind the brief.
A facility maintenance provider in the Middle East was bidding for an operation and maintenance contract covering about 97,000 assets at around 1,100 sites across Saudi Arabia. Every asset had to be audited inside 60 days. The provider needed to know how few audit teams could do that, and how to deploy them, before committing to the contract.
02 / WHAT WE FOUND
What the work revealed.
The sites were not equal. Some held a handful of assets and others held hundreds, and they were spread unevenly across the country. Dividing sites evenly between teams would have left some teams finished early and others running late. Many site coordinates in the source data were also wrong, so a plan built on them would have sent teams to the wrong places.
03 / WHAT WE BUILT
Clean the map. Balance the work. Route every team.
Clean the site locations
We checked every site location in QGIS and corrected the ones that were wrong before any planning started.
Cluster sites by workload
A k-means clustering model in Python grouped the sites into one cluster per audit team. The clusters account for how many assets each site holds, not just how many sites a team visits. [CONFIRM: that the clustering was balanced on asset count]
Route each cluster
Each cluster has a routing plan that takes its team through every site, so all assets are covered inside the 60 days.
Splitting sites evenly by count leaves teams with very different workloads. Clustering on asset workload evens out the days, which is where the reduction in teams came from.
Track the rollout
An ArcGIS dashboard showed the client programme status, asset coverage and team deployment while the audit was under way, so they could adjust early if a team fell behind.
04 / THE RESULT
Full coverage with fewer teams.
The plan needed about 35% fewer audit teams than the provider's initial estimate. The audit covered every asset and finished inside the 60-day window. The provider won the operation and maintenance contract. [CONFIRM: that the contract was won, and the order of events]
05 / ENGINEERING DETAILUnder the hood
- Site and asset list
- Clean locations in QGIS
- Cluster by workload
- Route each cluster
- Track on a dashboard
Spatial cleaning. Site coordinates reviewed and corrected in QGIS before planning.
Clustering. K-means in Python, producing one cluster per audit team, weighted for the uneven spread of assets across sites.
Routing. A routing plan for each cluster covering all its sites within the programme window.
Monitoring. ArcGIS dashboard for programme status, asset coverage and team deployment during rollout.
- QGIS spatial cleaning
- K-means clustering in Python
- Route planning
- ArcGIS dashboard
