Problems & solutions · Inventory Management

Tank Terminal Management Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Tank Terminal Management Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure is a system that stores a quantity as a number and a unit. In a custody business that is not a quantity, it is an assertion. What you need on record is observed volume with its temperature, observed density with its source, the correction standard applied and the resulting standard volume and mass, all immutable. Without that provenance, the forty cubic metre gap between what the tank gauge says and what the movement records say cannot be decomposed, so month end produces one unexplained loss line allocated pro rata across storage customers. The product in that tank is not yours. Every discrepancy is either a claim against you or a gift to a customer, and the query you cannot answer with evidence is the one you settle commercially.

Why does the custody transfer scope failure happen so often?

Because inventory software is a solved category and terminals look like inventory. A developer with warehouse or enterprise resource planning (ERP) experience models a tank as a bin with a quantity, receipts as increments, loadings as decrements, and produces something that demonstrates beautifully. It is wrong in a way that only shows up commercially.

Volume at observed temperature is not the number anyone is billed on. You correct to standard conditions using the volume correction factors in the American Petroleum Institute Manual of Petroleum Measurement Standards, the contract decides whether settlement is on gross standard volume, net standard volume or mass in air, sediment and water get handled accordingly, and the density source may be a laboratory certificate, an inline densitometer or a contractual fixed value depending on the arrangement. Select the wrong correction table for the product group and you are wrong by an amount that matters on a thirty thousand tonne parcel.

The fix is a single question you can ask on the first call. Ask the developer to explain, without prompting, how they would store a receipt quantity. If the answer is a number and a unit, walk. If the answer is observed volume, temperature, density with its source, the standard applied and the derived results, all immutable with an audit trail, they have done custody transfer rather than inventory. Then insist that table selection is driven by product group as configuration rather than hardcoded, because your product slate will change and a code release should not be the mechanism.

What goes wrong when you migrate tank, meter and movement history?

The tank master is the easy part. What breaks the plan is that the operational knowledge which makes a tank usable is not in any system.

Which tanks can take a nominated parcel depends on the current heel, on the last product stored and whether it is a compatible predecessor, on roof type against vapour pressure, on heating coils where the product needs them, on the customer's contracted capacity against what they are actually using, and on whether the tank is due for internal inspection. Most of that lives on a laminated card in the control room and in the scheduler's head. Migration surfaces it for the first time, and reconciling the card against the tank master is a genuine discovery exercise rather than a data load.

Meter history is the second trap. Proving records commonly sit in a maintenance system as documents rather than as validity periods, so there is no structured record of which transactions were measured on an in proof meter. Import movements without that and you have a history you cannot defend.

The fix is to model the tank as a resource with a service history, a compatibility relationship and a connection topology that determines which manifold and which pump can move product where, and to model the meter with a proving register carrying validity dates. Then migrate the operational attributes deliberately, with the scheduler and the terminal manager in the room, because they are the only two people who know what the laminated card actually means.

Why do the automation and metering integrations break after launch?

Because reading and driving are different jobs, and only one of them is safety adjacent.

Pulling tank levels from a gauging system over a serial or network protocol is a read. Driving a batch controller preset at a loading rack is a command issued to equipment that moves hazardous product, and the failure behaviours you have to design for are entirely different. Quotes routinely price both as integration. Ask specifically which vendors, which models and which transports the team has driven on a live site, and treat a vague answer as a no.

The vintage problem is the second one. A terminal assembled over decades carries a modern setup alongside a twenty year old programmable logic controller on a serial link, and the second one is not the same job as the first. Register maps as documented by the vendor and register maps as implemented in a specific firmware version are not always the same document, which is why a lab unit and a site validation belong in the plan rather than in the optimism.

The third is availability. If the rack depends on your software being reachable, you have built a system that stops trucks at 02:00 when a network link drops. That is not a support incident, it is a design failure.

The fix is to require offline loading with later reconciliation as a stated requirement, to budget a lab unit and a commissioning window per controller family, and to accept that site access and commissioning windows around a terminal that never stops are usually the real schedule risk rather than the code.

What happens when proving, tariff terms and ownership splits are not covered?

Three separate exposures, and each one arrives as a dispute rather than as a bug report.

Proving first. When a meter fails proving, the commercial question is which already billed transactions to restate, and that is a design decision rather than a support incident. Without a proving register with validity periods, out of proof transactions are not flagged as they happen, they are discovered during an audit after the affected volumes have been invoiced and consumed. Decide the restatement policy and the approval path for credits and rebills before go live.

Tariff terms second. Storage terminals invoice on more moving parts than outsiders expect: storage per cubic metre per month on contracted capacity, throughput per tonne with tiered rates, minimum guaranteed throughput with a shortfall charge, heating charges by day and temperature band, blending and additisation, nitrogen blanketing, line displacement, vessel and barge handling, and demurrage where the berth is contested. When these are computed in a spreadsheet from an inventory report, every ambiguity resolves in favour of whoever argues fastest, shortfall charges quietly go unraised and heating days go uncounted.

Ownership splits third. If tanks or throughput carry a joint venture ownership arrangement, that has to appear in reporting from the data model outward. It cannot be added as a reporting layer later without recomputing history.

The fix is to model the tariff as versioned data tied to the contract, with effective dated rate cards applied automatically to movement events the terminal already captured, so the invoice becomes a report over facts rather than a monthly project. Then disputes get answered from underlying records in minutes.

Should you build custom or configure what you already own?

Buying is the right answer more often than vendors of custom software like to admit, and this is one of the categories where it is clearest.

If you run a single product terminal with a handful of tanks, one or two customers and a rack that already works, buy. Implico OpenTAS, Toptech and Honeywell Enraf implement custody transfer measurement properly, which is exactly why they exist, and rebuilding correction logic that is already correct in a proven product is wasted capital. If you are part of a major with a group standard, that is not a software decision and fighting it is not a good use of your year.

Configuring properly is also underused. Many terminals have never structured their tariffs inside the product they own, never converted the laminated tank card into tank master attributes, and never turned proving records into validity periods. Those three pieces of work sit inside your existing licence and would remove a large share of the pain described above.

Build when at least two hold. You store for third parties across multiple products and the allocation and reconciliation is a person rather than a system, which makes that person a single point of failure in a business moving tens of millions of litres. Your tariff has terms the packaged products can only represent through custom configuration, which is common with minimum guaranteed throughput and blending arrangements. You run more than one site and want one commercial view. A joint venture ownership split has to appear in reporting. Or your automation vendor has quoted an integration project costing more than the terminal system itself, which happens more often than vendors like to admit.

How do hidden costs get into the quote?

Five places, all of them physical rather than logical.

First, the number and vintage of automation systems. Integrating a modern setup is not the same job as integrating a twenty year old controller on a serial link, and "integrate with your automation" as one line has priced the easy one.

Second, marine interface. Vessel and barge operations with ship and shore figure reconciliation are a distinct module from truck and rail, with their own documentation and their own disputes, and they get folded into scope by assumption.

Third, rail loading, which brings weighbridge integration and car sequencing problems that share very little with the truck rack.

Fourth, hazardous area constraints. What looks like a driver tablet becomes a certified device conversation the moment it has to operate in a classified zone, and that changes both hardware cost and the options available.

Fifth, multiple terminals under one roof, where tariffs and product slates diverge per site so the configuration surface multiplies rather than adds. Then budget the commissioning windows honestly, because factory acceptance testing against equipment you cannot take out of service for convenience is a schedule cost even when it is not an invoice line.

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

Scope discipline at the start. In Digital Heroes delivery experience the builds that work take one terminal, the truck rack and the top ten customers by throughput, deliver nominations, tank allocation, inventory by product and customer, custody transfer calculation and reconciliation in 16 to 24 weeks, and leave marine and rail for phase two. By the time phase two starts you know what your own data model actually needs, which you do not know on day one no matter how thorough the workshops were.

The second differentiator is whether reconciliation decomposes the gap. A system that reports a single unexplained loss line has not helped anyone. A system that names the contributors, meaning line displacement from a product change, temperature effects, meter uncertainty since last proving, and an unjournaled movement, tells you whether you have a measurement problem or a product problem, and those have completely different remedies.

The third is a question worth asking before you sign: what happens if a meter fails proving retrospectively. If the answer is that support would investigate, the restatement policy does not exist and you will be inventing it under commercial pressure.

Last, settle ownership in writing before kickoff. You should hold the repository, the cloud and on premise infrastructure accounts, and the right to bring in any other supplier. On a system that computes the quantities you invoice on and sits against safety adjacent automation, a supplier holding the source is an operational risk rather than a commercial inconvenience.

Research & sources

The evidence behind this guide

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

  1. Global retail loses an estimated $1.73 trillion annually to inventory distortion (out-of-stocks and overstocks), equal to about 6.5% of global retail sales, despite $172 billion spent on improvements in the past year. Source: IHL Group (2025) →
  2. Inventory carrying cost commonly runs about 20% to 30% of inventory value, covering capital cost, storage/warehousing, insurance, taxes, handling, shrinkage, and obsolescence - a recurring cost that better inventory and warehouse software aims to reduce. Source: APQC (2023) →
  3. 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) →
  4. This World Bank report argues that digital technology adoption raises SME competitiveness, productivity and resilience, while documenting that smaller firms consistently lag larger ones in digital adoption - a gap that constrains their growth and market reach. Source: World Bank (2022) →
Ananya I. · Director of Shopify Practice · Delhi

Ananya leads the Shopify practice at Digital Heroes, covering store builds, replatforms, app development and the merchant side of running a product catalog. Her posts help retailers weigh theme level work against a full custom build, and understand what each choice commits them to.

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

FAQ

Frequently asked questions

Why do our book inventory and tank gauge never agree?
Because they measure different things through different paths. The gauge reflects what is physically in the tank now, including heel, line displacement from product changes and temperature effects. Book inventory is the sum of measured movements, each carrying its own meter uncertainty and correction assumptions, and meters drift between provings. The software problem is not eliminating the gap, which is impossible, it is decomposing it into named contributors so you know whether you have a measurement problem or a product problem.
What is the single question that separates a custody transfer developer from an inventory developer?
Ask how they would store a receipt quantity, and do not prompt. A number and a unit is the wrong answer. The right answer is observed volume with temperature, observed density with its source, the correction standard applied, and the resulting standard volume and mass, all immutable with an audit trail. Table selection should be driven by product group as configuration rather than hardcoded, because your product slate will change and that should not require a code release.
Can custom software actually drive the loading rack or only record it?
It can and should drive it, because halfway automation is where terminals bleed. The flow is driver identification, carrier and dangerous goods qualification checks, compartment plan validation against the order, stock allocation, additive recipe selection, preset authorisation to the batch controller, then ticket capture and correction. A manual keying step in the middle of a custody transfer at 02:00 under time pressure produces exactly the errors you find in the monthly reconciliation.
What happens at the rack when the network drops?
Trucks have to keep loading, which makes offline capability a design requirement rather than a feature. The rack must operate locally and reconcile afterwards, and any system whose loading path depends on a cloud service being reachable will stop your terminal on the night the link fails. Ask a prospective developer this before anything else, because if it is not already in their answer, they have not worked on an operating terminal.
What should happen if a meter fails proving after transactions have been billed?
Decide it before go live rather than during the incident. You need a proving register with validity periods so out of proof transactions are flagged as they happen, a defined restatement policy for the exposure period, and a named approval path for credits or rebills. Terminals that treat proving as a maintenance record rather than a commercial control discover the problem during an audit, once the affected volumes have already been invoiced and consumed.
How do we bill throughput and storage without a spreadsheet?
Model the tariff as versioned data tied to the contract rather than as logic in code. Effective dated rate cards cover storage on contracted capacity, tiered throughput, minimum guaranteed throughput shortfalls, heating days, blending and additisation, and vessel or barge handling. The invoice then becomes a report over movement events the terminal already captured, which means shortfall charges get raised on time and disputes are answered from the underlying records rather than from memory.
We already run OpenTAS. Is there a case for building anything?
Sometimes, but not the measurement layer. Those products implement custody transfer correctly and rebuilding it is wasted money. The case for building sits in the commercial layer: tariffs the packaged product can only express through custom configuration, a single view across several sites, or a joint venture ownership split that has to appear in reporting. Before committing, check whether the tariff structuring and tank master attributes you need already exist in your licence and have simply never been configured.
What usually drives the schedule on a terminal software project?
Site access rather than code. Automation integration, commissioning windows and factory acceptance testing all have to fit around a terminal that never stops, and you cannot take equipment out of service for convenience. Plan a lab unit per controller family before site work, because a vendor's documented register map and the map implemented in a specific firmware version are not always the same document, and discovering that on site costs a commissioning window.
How many SKUs are too many for managing inventory in Excel or Google Sheets?
Excel and Google Sheets typically start failing past roughly 1,000 SKUs, more than one sales channel, or more than two or three people editing stock levels. The failure mode is not the row count but stale, conflicting edits that cause oversells and phantom stock. If someone on your team spends hours each week reconciling the sheet against the shelf, you have already outgrown it.
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.
How does custom software stop us overselling across multiple sales channels?
By keeping one authoritative count per SKU and recording every change as an atomic movement, so two orders can never both claim the last unit. Channel integrations sync through a queue with idempotency checks, meaning a webhook that fires twice does not subtract stock twice. Ask any vendor to demonstrate concurrent orders against a single unit of stock; naive builds and generic connectors both fail that test.
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.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
What's a realistic timeline for building a custom inventory system?
A usable first version covering receiving, stock movements, scanning, and low-stock alerts ships in 8 to 12 weeks across Digital Heroes inventory builds. Full multi-warehouse systems with Shopify, Amazon, and accounting integrations run 4 to 6 months. Any quote under 6 weeks usually means the vendor has not scoped concurrency handling or data migration.
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.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
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 calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
Who can build a custom inventory management software system?

Digital Heroes builds custom inventory management 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 inventory management 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?