Dark Fiber IRU Software Problems: The 7 That Cost Real Money, and How to Avoid Them
The most expensive failure in this category is delivering a contract repository when what you needed was an encumbrance register. Every agreement ends up scanned, tagged and alerting on renewal dates, and your sales engineer still cannot say which strands on a route are free to sell without opening files. The double sold strand risk survives the whole project, quoting stays a research task that costs a fortnight of senior time per disputed route, and the uncertainty reappears as a discount when an infrastructure fund runs diligence on the same portfolio.
Why does the contract repository trap catch so many IRU projects?
The brief almost always arrives in the same words: get our indefeasible right of use agreements into a system. That sentence describes a filing project, and a filing project is what gets delivered. Six months later every agreement is scanned, tagged, dated and searchable, renewal alerts fire on time, and nobody can still tell a sales engineer which strands on the route between two markets are unencumbered.
The failure is specific to this asset class. An indefeasible right of use, usually shortened to IRU, is not a service contract with a renewal date. It is a property style interest in named physical fibres, prepaid decades ago, running twenty or thirty years, with a recurring maintenance charge and a set of rights attached to a piece of glass in the ground. What you need in a system is not the document. It is the encumbrance: this counterparty holds these strands, on this segment, from this splice point to that one, until this date, under these terms.
Scope drifts toward the document because the document is easy. It exists, it uploads, and progress is visible in a weekly demo. The encumbrance is hard, because it has to be reconciled against plant records that were never built to carry a commercial obligation, and that reconciliation is slow contested work that produces nothing worth showing for several weeks.
The fix is an acceptance test written before anyone quotes. Pick one real route. The system must return, on a single screen, the total fibre count per segment, lit usage, encumbered strands, the agreement encumbering them and the expiry. If a proposal cannot explain how that screen gets populated, it is a contract repository proposal in different clothing, and you will pay a second time for the part you actually wanted.
What goes wrong when legacy IRU agreements get abstracted?
Abstraction is the process of reading each agreement and encoding its terms as structured data. On IRU portfolios it is the single largest line in the budget, and it is the line most often priced as data entry when it is closer to legal review.
The exhibits are the reason. A 2009 agreement describes strands 25 through 36 on the segment from a named handhole to the north side of an interstate crossing. Since then the route has been spliced, a span was relocated for a road widening, a regeneration site was added and one section's fibre count changed during a cable replacement. The handhole reference may not exist in any current record. Then there are amendments that changed the strand count, an assignment that changed the counterparty, and a side letter that quietly capped the escalator.
Three failure patterns show up repeatedly:
- The abstractor guesses at an ambiguous segment reference and nobody records that it was a guess, so a soft answer becomes hard data.
- An exhibit that cannot be mapped to current plant is skipped, which creates an empty encumbrance, which the availability screen then reports as free capacity. This is worse than having no system at all.
- Amendments are filed as documents but not applied to the abstracted record, so the system holds the original terms with more authority than the amended ones.
The fix is a two pass process with an explicit confidence field. Pass one encodes what is unambiguous. Anything ambiguous goes to an unresolved queue with the exact clause text attached, and someone with authority to decide, usually a network engineer and a lawyer together, works the queue. Nothing enters the availability calculation until it is resolved, and unresolved segments are shown as unknown rather than as available. Unknown is an honest answer that protects you. Available is a claim you cannot support.
Why do the fibre inventory and mapping integrations break after launch?
The encumbrance only means anything because it points at a strand and a segment in your inventory system. That pointer is the fragile part, and it usually breaks quietly some months after go live.
The mechanism is plant change. VETRO FiberMap and 3-GIS both model fibre plant properly and both are the right tools for that job, but records inside them are not frozen. Cables get replaced, segments get split at a new splice point, a route gets relocated and re-identified, and an acquired network gets loaded using a different naming convention. If your integration joins on an identifier that the inventory system treats as mutable, the encumbrance detaches from the plant and points at nothing. No error appears. The availability screen simply starts reporting more free capacity than exists.
Two design decisions prevent it. First, hold your own stable surrogate key for every encumbered segment alongside the inventory system's identifier, so a changed identifier becomes a mismatch you can detect rather than a silent orphan. Second, run a reconciliation job on a schedule that reports every encumbrance whose target no longer resolves, every segment whose fibre count changed since the encumbrance was written, and every segment where encumbered strands now exceed the total count. That report should go to a named person, not a dashboard.
Treat plant change as an event the system has to handle, not an exception. A relocation or a cable replacement should generate a task to reassign the affected encumbrances, with the reassignment recorded and dated, because a counterparty may later ask which fibres they hold and the honest answer has a history.
What happens when escalation, relocation and restoration are left out of scope?
These three get deferred to phase two more often than anything else, on the reasonable sounding argument that the encumbrance model comes first. The trouble is that they are where the money and the disputes actually sit.
The maintenance charge escalates annually by an index or a fixed percentage, sometimes with a cap. Applied by hand, it gets missed in years when the responsible person changes, applied from the wrong index month, or applied to an agreement that had a cap nobody carried forward. Over a twenty five year term that compounds, and it is invisible in the ledger because the ledger records what was invoiced rather than what was owed. Since most operators sit on both sides of IRUs, the same gap means you are also paying incoming invoices nobody checks against the agreement.
Relocation is worse because it is adversarial. A highway agency orders a move, the cost is shared between everyone on the route by a formula that differs in every agreement, and assembling the shares means reading contracts under time pressure while counterparties read theirs and dispute yours.
Restoration is worse again because it happens at two in the morning. The response time commitment, the maintenance obligation and the liability position differ per agreement, and the technician on the cable has visibility into none of it.
The fix in all three cases is the same shape. Hold the charge as a formula, with rate basis, unit count, escalation method, index source, effective month, cap and floor as structured fields, so the annual adjustment produces an invoice and a notice showing the calculation. Attach the cost sharing formula and the restoration terms to the segment through the encumbrance, so a relocation project outputs the participant list and each share, and an outage ticket surfaces the obligations that apply before anyone is dispatched.
Should you build custom or configure what you already own?
For a real share of operators reading this, the answer is configure, and we would say so before quoting.
If your actual problem is that agreements are unsigned, unfiled or scattered across three shared drives, that is a contract lifecycle problem and Agiloft or Icertis solve it properly. Clause libraries, approvals, obligation tracking and date management are mature there and rebuilding them is a waste of your money.
If your actual problem is that your plant records stop at cable level, or that an acquired network was never properly loaded, then no contract system can help you, because the encumbrance has nowhere precise to attach. Fix that first with VETRO FiberMap or 3-GIS. That is inventory work, it is what those products are built for, and the contract layer has to wait for it.
And if you hold a handful of IRUs on one route with a single counterparty, a well maintained folder and a calendar entry is genuinely enough. Spend the money on plant.
Build when the join is the problem: when your commercial team quotes availability without any system check against encumbrances, when agreements have outlived the people who negotiated them, when escalators are applied by hand or cannot be confirmed at all, or when a financing or sale is approaching and encumbrance clarity will affect what you are paid.
How do hidden costs get into the quote?
Four items account for most of the overruns we see in this category, and all four are knowable before you sign.
Abstraction volume priced as a lump. A fixed price to abstract the portfolio, quoted before anyone has read a contract, is a guess. Insist on a sample: give the developer five agreements chosen to include one clean recent one, one from an acquired network and one with amendments, and price per agreement from what that sample actually took.
Inventory readiness assumed rather than checked. If strand level records do not exist for the routes that matter, the build cannot do its job, and discovering that in week six turns into an unbudgeted inventory project. Check three routes before kickoff.
Counterparty portals slipped in as a screen. A portal means authentication, permissions, statement generation, a support path and someone answering questions from a counterparty's asset manager. It is a workstream, not a page.
Index data. Escalation formulas reference published indices, and sourcing those reliably year after year, with the right vintage and the right revision behaviour, is a small ongoing obligation that quotes routinely omit.
What separates a build that works from one that fails here?
Ask the developer to draw the encumbrance object on a whiteboard before you sign anything. The right answer references segment and strand identifiers from your inventory system, carries a term, a counterparty, a charge basis and a version history that survives plant change. If they draw a contract with an attached file, they have built a repository before and will build one again.
Ask what happens to an encumbrance when a cable is replaced. If the answer is vague, your obligations will detach from your plant and you will trust the system right up to the moment it is wrong in front of a customer.
Ask which inventory system they have integrated, by name, and what broke. 3-GIS, VETRO and an internally built spatial database are three different problems, and a developer who asks which system holds strand level truth before quoting is asking the right question.
Settle ownership of the repository, the cloud accounts and the data in the contract before kickoff. At Digital Heroes the client owns it from the first commit. Then do the free version of this project first: pick one route you believe has spare capacity and have someone read every agreement touching it. Whatever that turns up, and however long it takes, is your business case and your scope document at the same time.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Deloitte reports that modern ERP implementations aim to deliver reduced manual effort, greater transparency, a single source of truth, and increased productivity, but many organizations do not capture the full expected benefits (a significantly lower ROI) without disciplined strategy, change management, and data readiness. Source: Deloitte (2024) →
- Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
- WordPress powers 41.5% of all websites and holds 59.2% of the market among sites running a known content management system, making it by far the most-used CMS on the web. Source: W3Techs (2026) →
- Grand View Research valued the global field service management market at USD 4.43 billion in 2022 and projects it to reach USD 11.78 billion by 2030, a 13.3% CAGR, driven by growing field operations in telecom, utilities, construction and energy. Source: Grand View Research (2023) →
Amelia designs the visual side of the products the studio builds: identity systems, typography, colour and the rules that keep an interface looking like one thing. Her posts are for founders who need a brand that survives contact with a real product, not just a logo file.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
How do we know if we need an encumbrance register or just a contract system?
How should we price the contract abstraction work?
What happens if an exhibit cannot be matched to our current fibre records?
Why do encumbrances detach from plant records after go live?
Can we defer maintenance charge escalation to a later phase?
Is Agiloft or Icertis enough for an IRU portfolio?
Our plant records only go to cable level. What should we do first?
What should we ask a developer to prove they have done this before?
What does a $50,000 custom software budget actually buy?
How do we get years of data out of our old system and into the new one?
How much should a small business budget for its first custom app or website?
What should I have ready before I contact a development agency?
How long does it take to build a custom web or mobile app from scratch?
Will custom software work with the tools we already use, like QuickBooks and Stripe?
How do I calculate whether custom software will pay for itself?
If an agency builds my software, who actually owns the code?
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
Our developer disappeared mid-project. Can another team pick up the code?
Should I hire a freelancer or an agency for my software project?
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.