Problems & solutions · Custom Software

Tailings Storage Facility Monitoring Software Problems: The 5 That Hide Real Risk, and How to Avoid Them

Tailings Storage Facility Monitoring Software code editor and API illustration showing common problems and fixes.
The short answer

The most expensive failure mode is a trigger level crossed on the 3rd and discovered on the 14th, when the monthly report lands. The reading was collected correctly, by a working instrument, and it sat inside a consultant's portal while the trigger action response plan that defines amber for that piezometer sat inside a PDF issued by a different firm. Nothing in the chain was broken except the part that connects them. The cost is not a software licence, it is eleven days of an unmanaged rising phreatic surface, plus the weeks your team will spend reconstructing what happened for an independent review board that expects a single answer and gets three inboxes.

Why does a monitoring project become a charting project?

The most common scope failure in tailings is that the build is specified as a dashboard. Someone writes a requirement list that says ingest instrument data, plot trends, alarm on exceedance, and every developer who reads it produces exactly that, because it is a well understood piece of work. Six months later the site has attractive plots, the geotechnical engineer has muted the alarm email, and a trigger breach still gets discovered in a monthly report.

The reason is that the deliverable in tailings is not the chart, it is the response. A trigger action response plan already specifies who is notified, within what period, what inspection follows and who authorises a return to normal. That is a workflow with named roles, timers and mandatory sign-off, and it is the half that reviewers, insurers and lenders actually examine. A monitoring front end with no response engine behind it changes nothing, because the site already had plots. They were in the consultant's portal.

Scope the first release around one facility, its instruments and its response loop: multi-source ingestion with instrument identity, versioned trigger levels, evaluation that handles rate of change and not only thresholds, missing data alarms, and an append-only acknowledgement and escalation record. That is $90,000 to $200,000 over 14 to 20 weeks in our delivery experience. Water balance, deposition, survey-derived freeboard, document registers and portfolio reporting are the second phase, and they are much easier to justify once the response loop has caught something.

What goes wrong when historic readings are loaded into the new system?

Instrument identity is where tailings migrations quietly corrupt themselves. The same vibrating wire piezometer is P14 to the site, VWP-2021-014 to the installing contractor, and node 3 channel 2 to the logger. Load readings against a sensor name plus a value and the day a logger was replaced becomes a step change in your ten year trend that looks like real ground behaviour.

The second problem is that raw values are not comparable across eras. Vibrating wire readings need barometric compensation, and whether it was already applied depends on which contractor processed them. Survey coordinates arrive on different datums after a resurvey, and manual standpipe dips are recorded to a different reference elevation than the automated instruments on the same section. Load all of that as numbers on a timeline and you have a plausible looking history no geotechnical engineer can rely on, which is worse than no history at all.

What works: model the physical instrument, its installation with depth, coordinates and reference elevation, the logger channel it currently reports through, and the reading, as four separate things. Carry an installation history so a reinstalled instrument keeps its identity and its discontinuity is explicit. Store the raw value and the processed value with the correction applied, so a compensation error can be fixed without reloading. Then have your engineer of record review the migrated series for the two or three most important instruments before you accept the load. That review takes a day and it is the only real test of whether the migration worked.

Why do the consultant and contractor feeds break after launch?

A tailings facility is monitored by parties who do not work for you in the same way. The logger network pushes automatically. The survey contractor emails a coordinate file when the survey is done. The InSAR provider delivers monthly. The laboratory sends results on its own schedule. Each is a data contract with an organisation, and a data contract with a human step in it fails the way humans fail: someone leaves, a scope of work is renewed with different deliverables, a file format changes after a software upgrade.

The break is rarely announced. The feed simply stops, and because the plots still show data from other sources, nothing looks wrong.

The fix is to treat expected arrival as a monitored condition at every level. Set an expected reporting interval per instrument and raise a fault when it is missed. Set an expected delivery cadence per external source and raise a fault when a survey file or an InSAR product does not arrive. Validate the file on receipt against its expected structure and reject it loudly rather than importing a partially parsed version. And write the format, the cadence and the named contact into the consultant's scope of work at the next renewal, because the integration you cannot fix in code is the one where the other organisation never agreed to send you anything in particular.

What happens when the trigger action response plan is not modelled?

Most systems evaluate a reading against a number. Real trigger action response plans are richer than that, and the gap between the two produces both misses and noise. A genuine trigger can be a rate of change over a rolling window, a response relative to rainfall, or a reading crossing amber while another instrument in the same section is also elevated. Build only threshold comparison and you will either miss the pattern that matters or raise enough nuisance alarms that the geotechnical engineer mutes the system, which is the worst outcome available.

The second half of the gap is versioning. Trigger levels change after a dam raise, after a design review, after the engineer of record reassesses a section. If the levels live in an issued PDF while the system holds a copy typed in at go-live, they drift, and a reviewer asking why a March reading was evaluated against a level set in a document issued in June will get an answer nobody wants to give.

What a build has to cover: trigger levels as versioned, dated data attached to each instrument, carrying the issuing document and the engineer who authorised the change, so a reading is always evaluated against the levels in force on its own date. Evaluation that supports rate, correlation and multi-instrument conditions. And the response as an append-only record: alarm raised, acknowledged by the responsible tailings facility engineer within the specified period, inspection completed with photographs, engineer of record consulted where the plan requires it, condition closed with a reason. Automatic escalation when an acknowledgement timer expires. That record is what turns a review board question into a single export.

Should you build custom or configure what you already own?

If you operate one facility on a single logger network with a straightforward instrument set, do not build. Vista Data Vision over your loggers, or the platform that shipped with your Worldsensing hardware, will plot readings and raise threshold alarms competently, and Seequent Central is a sensible way to manage geotechnical models with your consultants. That combination is genuinely adequate at that scale, and the money belongs in more instrumentation and a more frequent inspection regime rather than in software.

Before quoting anyone, do the configuration work you already own the licence for. Get every instrument you can onto the logger platform you have. Configure the alarms properly, including one for a missing reading, which most sites never set up because it is not the default. Ask your engineer of record to reissue trigger levels in a structured form rather than as a table inside a report. Those three cost consultant time rather than capital, they remove a meaningful share of the pain, and what is left is the specification for any build.

Build when two or more of these hold. You hold more than three facilities and cannot answer their status without asking people. A meaningful share of your monitoring comes from parties outside your logger network. Your trigger levels live in documents rather than in the system that evaluates them. Or your accountable executive is personally accountable for a conformance position that is currently assembled by hand once a year.

How do hidden costs get into the quote?

Four items account for most of the overrun in tailings builds, and none of them are engineering.

  • Data contract negotiation. Each consultant and contractor feeding a facility is a relationship to be renegotiated before it is an integration to be built. Budget calendar weeks per party, not developer days, and start before design work.
  • Taxonomy normalisation across facilities. Every consultant has classified, named and structured things differently. Agreeing one group model is a workshop exercise with your engineering partners, and groups that skip it discover they cannot roll anything up.
  • Survey and geospatial processing. Converting between datums and deriving freeboard from point clouds is specialist work priced accordingly. Quoted as an import, delivered as a discipline.
  • Offline field capture. If inspectors work where there is no coverage, offline capture with reliable synchronisation is a real piece of mobile engineering, not a setting.

The other quiet cost is your own people. The instrument register, the installation history and the current trigger levels have to be verified by someone who understands the dam.

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

Ask a prospective developer to whiteboard the instrument model before anything else. The right answer separates the physical instrument, its installation, the logger channel it currently reports through and the reading. A developer who models a reading as a sensor name and a value will corrupt your history the first time a node is replaced, and you will not notice for a year.

Ask what happens when a reading does not arrive. If alarms only fire on exceedance, the system is silent in exactly the scenario that should worry you most. In our delivery experience, missing data alarms surface more genuine risk in the first month of operation than any analytics screen does.

Ask what they have built with a formal audit trail and a time-bound acknowledgement, in any regulated setting. This is a workflow product with a monitoring front end. Developers who treat it as a charting exercise miss the half your reviewers care about.

Then start with your highest consequence facility, prove the response loop there, and roll the same model outward. Settle ownership in writing before kickoff: the repository, the cloud accounts, the raw readings and the right to hire anyone else to continue the work. At Digital Heroes the client owns the code from the first commit. For a record that may need to be produced decades from now, data portability is part of the risk management case.

Research & sources

The evidence behind this guide

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

  1. McKinsey argues software developer productivity can be measured by combining system-level metrics (DORA and SPACE) with its own outcome-oriented approach, which it reports deploying across nearly 20 tech, finance, and pharmaceutical companies - a claim that sparked significant debate in the engineering community. Source: McKinsey & Company (2023) →
  2. The share of tasks performed mainly by humans is projected to fall from 47% to 33% by 2030 as human-machine collaboration expands, with 170 million jobs created and 92 million displaced (a net gain of 78 million). Source: World Economic Forum (2025) →
  3. 88% of customers say good customer service makes them more likely to purchase from a brand again in the future, quantifying the direct revenue link between support quality and retention. Source: HubSpot (2024) →
  4. SaaS spend averaged $4,830 per employee (up 21.9% year over year), with large enterprises (10,000+ employees) spending roughly $284M annually and running about 660 apps, while organizations wasted an average of $21M annually on unused licenses. Source: Zylo (2025) →
Sanya A. · Frontend Engineer · Delhi

Sanya builds interfaces for web applications at Digital Heroes, working from design files to components that handle real data, loading states, errors and empty screens. Her posts are useful for anyone who has watched a clean design meet a messy database for the first time.

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

FAQ

Frequently asked questions

Why do tailings monitoring dashboards fail to prevent late trigger detection?
Because plotting was never the missing piece. Sites that discover a breach weeks late usually already have plots, inside a consultant's portal. What is missing is the response engine: an alarm with a named owner, an acknowledgement timer, an inspection record and an authorised closure. If the build stops at charts and threshold emails, the geotechnical engineer mutes the emails within a month and the failure mode is unchanged. Specify the trigger action response plan as workflow, not the readings as a dashboard.
How does a logger replacement corrupt ten years of piezometer history?
If readings are stored against a sensor name and a value, the identity of the instrument is tied to whatever the logger called it. Replace the node and the channel mapping changes, so the series either splits into two unrelated records or continues under a name that now points at different hardware. Either way the trend shows a step change that looks like ground behaviour. Model the physical instrument, its installation, the logger channel and the reading as four separate things, with an installation history.
Should trigger levels be typed into the system at go-live?
Only as a starting point, and never as the permanent arrangement. Levels change after a dam raise, a design review or a reassessment by the engineer of record, and a copy typed in once will drift from the issued plan within a year. Hold them as versioned, dated data attached to each instrument, carrying the issuing document and the authorising engineer, so a March reading is always evaluated against the levels in force in March and a reviewer can see exactly why.
What happens when a survey contractor stops sending files?
Usually nothing visible, which is the problem. The plots still show logger data, so the system looks healthy while a whole monitoring stream has gone dark. Set an expected delivery cadence per external source, not just per instrument, and raise a fault when a survey file or InSAR product does not arrive. Validate structure on receipt and reject a malformed file loudly rather than importing a partial parse. Then write the format, cadence and named contact into the contractor's scope of work at renewal.
What should we configure in the tools we already have before commissioning a build?
Three things, and they cost consultant time rather than capital. Get every instrument you can onto the logger platform you already licence. Configure alarms properly, including a fault for a missing reading, which most sites never set up because it is not the default. Ask your engineer of record to reissue trigger levels in structured form rather than as a table inside a report. What remains after those three is an honest specification for any build, and for a single small facility there may be nothing left.
Why do threshold-only alarms cause nuisance and misses at the same time?
Because real trigger conditions in a tailings response plan are not all thresholds. Some are rate of change over a rolling window, some are a response relative to rainfall, and some require a second instrument in the same section to be elevated at the same time. A system that can only compare a number to a constant will fire on ordinary seasonal variation and stay quiet on the correlated pattern that matters. The predictable end state is a muted alarm channel, which is worse than no system.
Which parts of a tailings build are usually underestimated in the quote?
Data contract negotiation with each consultant and contractor, which runs in calendar weeks and should start before design. Taxonomy normalisation across facilities, which is a workshop exercise with your engineering partners rather than a coding task. Survey and geospatial processing, since datum conversion and deriving freeboard from point clouds is specialist work. And offline field capture if inspectors work without coverage. Your own people are the other hidden cost, because the instrument register has to be verified by someone who understands the dam.
How do we avoid spending six months in data mapping before anything ships?
Onboard one facility, not the portfolio. Take your highest consequence facility, its instruments and its response workflow, ship that in 14 to 20 weeks, and let it catch something before you expand. Groups that attempt every facility at once spend the first half year reconciling naming conventions across consultants who each did things differently, and the project loses its sponsor before it demonstrates value. The same model then rolls outward with the taxonomy questions already answered once.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
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.
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.
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.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
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.
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?