Problems & solutions · Custom Software

Underground Mine Personnel Tracking Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Underground Mine Personnel Tracking Software software overview illustration showing common problems and fixes.
The short answer

The failure that costs most is a screen that shows a confident number it cannot support. Presence built as a yes or no flag looks identical whether a worker's tag was read four minutes ago at a level reader or ninety minutes ago at the portal, so the control room reads sixty three, reports sixty three, and an incident controller makes a decision the underlying data does not justify. That is worse than a tag board, because a tag board is visibly a check in record and nobody mistakes it for live truth. Presence has to be derived evidence with a confidence level and a visible age, and the operator has to be shown specifically which people have stale evidence, because those are the ones who need a phone call or a physical search first.

Why does the build get scoped as a map when the control room needs three lists?

Every demo in this category opens with a mine plan and moving dots. It photographs well and it is close to useless at 04:12 with smoke reported on a level. An incident controller does not need a map. He needs three lists: people confirmed at a muster point or inside a refuge chamber, people currently moving toward one, and people whose last read is stale and therefore need a physical search. Those three lists are the product. The map is decoration on top of it.

The scope failure follows from the demo. Presence gets modelled as a boolean because a dot is either on the map or it is not, and once presence is a flag there is nowhere to put confidence, evidence age or the reason a person is believed to be below. Everything downstream inherits that weakness.

The fix: model presence as accumulated evidence with decay. A person is underground because a tag was read at the portal, was seen at a level reader forty minutes ago, has a rostered shift that has not ended, and has no exit read. Each of those contributes with its own reliability, and each ages. The control room screen shows the derived count, the confidence, and the named individuals whose evidence has gone stale. Design the three lists first and let the map be a view onto them, not the other way round, because a system built map first will not reorganise itself under pressure.

What goes wrong with the zone graph and identity data?

Two data problems decide whether the system works, and neither is software. The first is the spatial model. Underground, zones matter more than coordinates: knowing somebody is in the 690 level east drive between two egress points is more useful than a position estimate with an unstated error of eighty metres. But somebody has to turn survey data and level plans into a zone graph with connectivity and egress routes, and then keep maintaining it as development advances. A zone graph that is not maintained is worse than none within two years, because it will confidently place people in a drive that has been rehabilitated and sealed.

The second is identity. One worker appears as a cap lamp tag identifier, a vehicle login, a payroll number on the roster and a name on a contractor induction spreadsheet, and none of those keys join. Meanwhile a meaningful share of tag reads belong to nothing you care about: a tag sitting in a crib room charger for three days, a spare on a shelf, a vehicle mounted unit that implies an operator who got out an hour ago.

The fix: fund the zone graph as a workstream with a named owner on your side who updates it when levels change, and put that owner in the operating rhythm rather than in the project plan. Build a canonical person and asset registry so one worker is one worker across every source, and classify every tag by what it is: person, vehicle, spare, fixed asset. A tag with no assigned person is an exception to resolve, not a dot to display.

Why do the tracking hardware integrations break after launch?

Because the estate underneath them keeps moving. A leaky feeder system from one decade, cap lamp tags added later for statutory compliance, wifi the information technology team owns, a proximity detection retrofit after an incident, an area of ultra wideband where somebody funded it. Each has its own vendor, its own position model and its own screen, and several speak protocols that are undocumented or documented inaccurately.

The specific break is rarely dramatic. A vendor pushes firmware and a message field changes type. A reader is moved during development and keeps reporting under its old zone identifier. A new level is driven beyond reader coverage, so people working there produce no reads at all and the system quietly reports them as stale rather than as uncovered, which are very different operational statements. Stope extensions past the commissioned coverage area are the most common version of this, and they are invisible unless somebody is comparing coverage against the current mine plan.

The fix: one ingestion adapter per source, owned by you, with health monitoring on each: message rate, unique tags seen, last message time, and an alert when any of them departs from its normal band. Distinguish uncovered zones from stale reads on the screen, so an operator can tell the difference between no infrastructure and no signal. Keep the adapters in your repository, because they are what stops the next vendor negotiation from locking you in again.

What happens when the roster and competency join is not covered?

Tracking tells you who was seen. The roster tells you who should be there. The gap between those two lists is the entire emergency management problem, and at most sites the systems have never been introduced, because the roster lives in a timekeeping or human resources (HR) system the control room cannot reach.

Contractors make it sharper. Crews are frequently managed on a separate induction spreadsheet, so a person can be site inducted without being competent for the area they are standing in, and a visitor can be escorted by a supervisor who then goes to another level. After an incident, the inspector does not only ask how many were below. The question is who, when they entered, and what their competency status was that day.

The fix: join roster, induction and competency records to live tracking in one view, and use it every day rather than only in emergencies. That join enforces zone access rules, so a worker read in a shaft area without current competency raises an alert while it still matters. It also produces the post incident record without an assembly exercise. Treat contractor onboarding as part of the same identity registry rather than as a separate list, because a separate list is how the escorted visitor disappears.

Should you build custom or configure what you already own?

If you are commissioning a new mine or a major expansion and can standardise on one vendor's stack from the start, buy it. Newtrax, Mobilaris Mining Intelligence, Sandvik OptiMine, Strata Worldwide and Becker Mining Systems all do genuinely good work, and Mobilaris in particular is strong at building a situational picture from mixed inputs. A custom build in that situation reinvents infrastructure for no gain. The same applies if your only requirement is statutory tag tracking on a small single decline operation, where the problem really is simple.

There is also a hard line on what must never be rebuilt. Proximity detection and collision avoidance on mobile equipment, gas monitoring, ventilation control and refuge chamber life support are safety systems with their own certification and testing regimes. A custom build reads their state, displays it and alerts on it. It does not command them, and any developer who offers to reimplement collision avoidance because it uses the same tags is telling you they do not understand the liability.

Build the merged layer above the hardware when you carry two or more generations of tracking underground and replacing them is not fundable, when your roster sits somewhere the control room cannot see, or when an emergency exercise showed that muster reconciliation took longer than the exercise.

How do hidden costs get into the quote?

Protocol work is the first. Reading three tracking vendors is not three times one, because at least one will be undocumented and require packet capture and patient reverse engineering against a live system you cannot take down. The zone graph is the second and is routinely priced as a data import when it is a survey interpretation exercise with an ongoing maintenance commitment.

Historical playback is the third. Reconstructing the state of the mine at any past moment for an incident investigation means storing every read at full fidelity and rebuilding presence from it, which changes the storage and the query design rather than adding a screen. Rollout across multiple mines is the fourth, because sites name levels differently and each new naming convention is real mapping work. Degraded mode is the fifth: a control room screen that must survive a network partition and a surface power event with a visible last known state is an availability requirement with a cost, and it belongs in the acceptance criteria rather than in a hope.

The fix: ask for protocol work, the zone graph and playback priced separately, then ask what changes when a second site joins. Ask who on your side maintains the zone graph and how that is funded after the project closes.

What separates a build that works from one that fails here?

Ask the team to whiteboard the presence model before anything else. The right answer treats presence as evidence with decay and confidence and can say exactly what the screen shows when a person's last read is ninety minutes old. A developer who models presence as a flag has built an office access control system and will mislead a control room during an emergency.

Ask what they will refuse to build. The answer should include proximity detection, gas monitoring and anything that issues a command to a safety system. A developer who happily takes that scope is one you should not hire for this work, and their willingness tells you what else they have not thought through.

Ask how the system behaves when the network drops or surface power fails, and expect a degraded mode with an obvious timestamp on the last known state, tested with the emergency response team during a scheduled drill rather than discovered during a real one. Ask how the zone graph gets built from your survey data and who owns it afterwards. Then settle ownership before kickoff: the repository, the environments and the integration adapters. The adapters matter most, because they are the difference between owning your merged picture and renting it back from whichever vendor you negotiate with next.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
  2. McKinsey found personalization most often drives 10-15% revenue lift, and companies that grow faster drive roughly 40% more of their revenue from personalization than slower-growing peers. Source: McKinsey & Company (2021) →
  3. The EY survey of 508 payroll professionals at U.S. companies with 250-10,000 employees quantifies the direct and indirect cost of payroll inaccuracy, reinforcing the ROI case for payroll automation; the study is the original source of the frequently cited $291-per-error figure. Source: BusinessWire / EY (Ernst & Young) (2022) →
  4. Total US training expenditure rose 4.9% to $102.8 billion; learning management systems were used at 89% of organizations (90% of large, 97% of midsize, 84% of small companies), with average training at 40 hours per employee and $874 spent per learner. Source: Training Magazine (2025) →
Veer S. · Senior iOS Engineer · Delhi

Veer builds iOS applications at Digital Heroes, working in Swift on everything from the interface layer to the networking and offline handling underneath. Readers get engineer level detail on how features are actually implemented, and why some requests are far more expensive than they look.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How do we know how many people are actually underground right now?
By deriving presence from several pieces of evidence rather than storing a flag. A tag read at the portal, a level reader read forty minutes ago, a rostered shift still running and the absence of an exit read each contribute, and each ages at its own rate. The screen then shows the derived count, the confidence behind it, and the specific people whose evidence has gone stale. Those named individuals are the actionable output, because they are the ones a supervisor phones or sends someone to find.
Can custom software replace proximity detection or gas monitoring?
No, and any developer who offers to is showing you they do not understand the liability. Proximity detection, collision avoidance, gas monitoring, ventilation control and refuge chamber life support carry their own certification and testing regimes and stay with their vendors. Your build reads their state, displays it and raises alerts, and every screen should make clear it is an advisory picture backed by the statutory procedure rather than a substitute for it.
Why does the zone graph keep getting underestimated?
Because it looks like a data import and it is a survey interpretation exercise. Somebody has to turn level plans and survey data into zones with connectivity and egress routes, decide how far a zone extends, and then keep it current as development advances and areas are rehabilitated or sealed. Without a named owner funded past the project, the model rots, and a rotted zone graph confidently places people in a drive that no longer exists, which is more dangerous than showing nothing.
What is the difference between a stale read and an uncovered area?
Everything, operationally. A stale read means the infrastructure exists and the person has not been seen recently, which suggests a search. An uncovered area means no reader was ever installed there, usually because development extended past the commissioned coverage, so the absence of reads says nothing about the person at all. Systems that show both as the same grey dot send crews looking in the wrong place, and only a coverage comparison against the current mine plan surfaces the difference.
How do we handle tags that are not people?
Classify every tag by what it is: person, vehicle, spare or fixed asset, and treat a tag with no assigned person as an exception to resolve rather than a dot to display. Tags sitting in a crib room charger for days, spares on a shelf and vehicle mounted units that imply an operator who got out an hour ago all inflate the count in the direction that makes an emergency worse. A canonical identity registry that joins cap lamp tag, vehicle login and roster is what makes this possible.
Why does the shift roster matter so much to a tracking system?
Because tracking reports who was seen and the roster reports who should be there, and the difference between those two lists is the whole emergency management problem. Joining roster, induction and competency records to live tracking also earns its keep daily by enforcing zone access, so a worker read in an area they are not competent for raises an alert while it still matters. It produces the post incident record an inspector asks for without an assembly exercise.
What should we test before relying on the system in a real emergency?
Degraded behaviour, with the emergency response team, during a scheduled drill. The system has to survive a network partition and a surface power event while continuing to show the last known state with an obvious timestamp, and the control room needs to have practised reading that screen when it is not live. Put the degraded mode in the acceptance criteria rather than in the roadmap, because once the control room depends on the screen, its failure behaviour is a safety matter.
Should we standardise on one vendor instead of merging what we have?
If you are commissioning a new mine or a major expansion, yes. Newtrax, Mobilaris, Sandvik OptiMine, Strata Worldwide and Becker will give you an integrated product with support and a roadmap, and a custom merge would be reinventing infrastructure. The case for building appears at established mines carrying two or more hardware generations across kilometres of development, where rip and replace is a capital project no board will approve for a software benefit.
Should we build an MVP first or go straight to the full system?
MVP first, for almost everyone: ship the single workflow that carries the business value in 10 to 16 weeks, learn from real users, then fund phase two from evidence instead of guesses. The caveat is that an MVP is a small version of a well-built system, not a badly built version of a big one; the data model must already support what comes next. An agency that cannot tell you what they deliberately left out of your MVP has not designed one.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
Will custom software work with the tools we already use, like QuickBooks and Stripe?
Yes, and this is one of custom software's genuine advantages: QuickBooks, Stripe, Shopify, and most mainstream business tools publish documented APIs built for exactly this. Expect each standard integration to add one to two weeks of build time, and be suspicious of any quote that lists five integrations without asking what data flows in which direction. The hard cases are legacy systems with no API, which is a question to raise in discovery, not in week nine.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
For validating an idea with real users, yes, and we tell clients that honestly. The walls come later: Bubble apps cannot be exported as code to run anywhere else, performance drops on complex data operations, and usage-based pricing climbs as you grow. A meaningful share of Digital Heroes custom builds are rebuilds of no-code MVPs that proved the business worked, which is the system operating as intended: validate cheap, then build the version that scales.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?