Problems & solutions · Custom Software

Pole Attachment Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Pole Attachment Management Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in this category is funding a full field audit as the foundation of the system. It feels like the responsible first step, it costs more than the software, and it produces a snapshot that begins decaying the day it is delivered because nothing about how records are maintained has changed. The pattern is well known to anyone who has been through one: the audit finds unauthorised attachments and missing records, both parties negotiate a settlement, everyone declares the inventory fixed, and four years later the two counts have drifted apart again and the next audit is proposed. You have paid twice for a number with a shelf life, while the rental revenue tied to the difference stayed unbilled the entire time.

Why does the audit-first approach keep failing?

Because it treats inventory as a data problem when it is a process problem. A joint use inventory is not wrong because nobody counted carefully. It is wrong because attachments are created at permit time and never verified again, poles get replaced and identity transfers inconsistently, attachers overlash without notification, and contractors attach without a permit. Every one of those continues happening the day after the audit closes.

The second reason is that an audit produces a document rather than a mechanism. Both parties agree a number, the number goes into a settlement, and the settlement is the last artefact. Nothing in the utility's day-to-day work is different afterwards, so drift resumes immediately at the same rate.

The third is sequencing inside the project. When the audit is scoped as a prerequisite, the software waits for it. Field work slips, the audit vendor delivers in a format nobody planned for, and the build starts eight months late against an inventory that is already three months stale.

The fix is to invert it. Build the mechanism first, then let the audit update a living record instead of creating a new one. Every permit, make-ready job, field visit and inspection photograph becomes a timestamped observation attached to a pole, and the current state is derived from observations with a confidence level rather than being a row somebody typed once. Do the audit when the system exists to absorb it, and target it at the poles where confidence is lowest rather than at all of them. Utilities that sequence it this way get an inventory that improves continuously between audits instead of decaying between them.

What goes wrong when you try to join two pole inventories?

Pole identity is the root problem and it defeats naive migrations completely.

Your geographic information system knows a pole by an asset identifier. The attacher knows it by their own tag number, sometimes only by a photograph and a cross street. A pole replacement creates a new physical object that may or may not inherit the old identifier, depending on who filed the paperwork and when. Several poles stand at one intersection. Metal tags fall off. When the two parties compare lists, they are comparing keys that were never designed to join.

Teams that plan a straightforward import discover this in week three, usually when a match on coordinates returns multiple candidates for a meaningful share of poles and a clean match for far fewer than the plan assumed. What follows is either a manual reconciliation nobody budgeted for or, worse, an automated match with a loose tolerance that silently creates wrong joins. A wrong join is more damaging than no join, because it produces a confident bill you cannot defend.

The other migration trap is history. Legacy attachment records often lack the date an attachment was created, which is exactly the field back-rent calculations and dispute defences depend on.

The fix is a persistent crosswalk rather than a one-time match. Every joint job, permit and field visit improves the mapping between your asset identifiers and each attacher's identifiers, so the next comparison starts from the last agreed position rather than from scratch. Score every match with a confidence level and never let an unconfirmed match feed a bill. And where the creation date is unknown, record it as unknown rather than defaulting it, because a defaulted date in a rate dispute is worse than an admitted gap.

Why do the GIS, notification and loading analysis integrations break after launch?

Three integrations decide whether this system stays useful, and each fails differently.

The geographic information system integration breaks on pole lifecycle events. A pole is replaced, the asset record is updated by the operations team on their own schedule, and the attachment records that pointed at the old asset are now orphaned or, more dangerously, silently pointing at the new one as if nothing changed. Loading, height and class may all differ. If your integration only syncs attributes and not lifecycle events, you will not notice.

Notification integration breaks on follow-through rather than on messaging. Systems such as NJUNS do the notification job, but a notification sent is not a transfer completed, and if your build treats an acknowledgement as progress you will report transfers as on track that have not started.

Loading analysis integration breaks on geometry. O-Calc Pro and SPIDAcalc consume specific structural inputs, and a change in how attachment heights or offsets are captured in the field will produce analyses that run without error and describe a pole that does not exist. Nobody catches that in a test suite.

The fixes are concrete. Subscribe to pole lifecycle events, not just attribute updates, and quarantine attachment records whose pole was replaced until a human confirms the disposition. Track transfer completion on evidence, meaning a dated field photograph, rather than on a returned message. And validate geometry going into loading analysis against ranges that make physical sense, with a rejection path rather than a warning nobody reads.

What happens when the regulatory clocks are not built in as data?

This is the gap that turns an administrative problem into a legal one, and it is almost always introduced by a well-meaning shortcut.

The FCC's pole attachment rules set defined windows for reviewing an application for completeness, surveying the poles, providing a make-ready estimate and completing make-ready, with different periods in the communications space and above it, a one-touch make-ready path for simple communications attachments, and a self-help remedy available to the attacher when the owner misses deadlines. Many states have taken back authority and set their own timelines, so a utility operating across state lines is tracking more than one rule set.

The shortcut is encoding those periods as conditional logic in application code because it is faster in week two. Then a commission issues an order, the timeline changes, and updating it requires a development ticket, a test cycle and a release. In the interim, the system is confidently displaying due dates that are wrong, and staff are trusting them.

The second failure is where the clock starts. It starts on receipt, not on the day somebody opened the shared mailbox. Applications that sit unread for eleven days have consumed eleven days, and a self-help notice arriving afterwards means an attacher's contractor is working on your poles under a remedy you did not intend to trigger.

The fix is rule sets held as configurable data with effective dates, per jurisdiction, so a commission order is a configuration change rather than a release. Start the clock automatically at intake. Make the completeness review an explicit gated step that either accepts or returns the application with reasons inside the review window. And escalate to a named supervisor before the deadline rather than after it.

Should you build custom or configure what you already own?

Several things in this category should be bought and never built.

Buy the loading analysis. O-Calc Pro and SPIDAcalc are the standards, engineering firms already know them, and nobody should be writing their own structural analysis of a wood pole.

Buy the collaboration layer if it fits. Alden One is a legitimate joint use system of record, and if your attachers already work in it, fighting that is expensive and probably pointless. Katapult Pro is a sensible answer for an attacher or an engineering firm running permit volume, and if you are on the attacher side with a manageable book, it may be the whole answer.

Below roughly 30,000 jointly used poles with two attachers and stable volume, do not build. Buy one of the above and enforce your agreement, because at that scale the discipline matters more than the tooling.

Before commissioning anything, look hard at what your existing systems already hold. Utilities frequently have attachment data in the geographic information system that nobody reports from, and work management systems that could carry make-ready jobs with modest configuration. A review of what you already own is a few weeks and sometimes reframes the whole project.

The build case starts when two or more of these are true. More than roughly 100,000 jointly used poles. More than four attachers on materially different agreements. A last inventory dispute that ended in a negotiated settlement rather than an agreed number. Operations in more than one state with different attachment rules and clocks. Or permit volume multiplied by fibre buildouts, with regulatory deadlines currently tracked in a shared mailbox.

How do hidden costs get into the quote?

The build estimate tends to be honest about screens and silent about the surrounding work.

  • One rule set per state. Each jurisdiction you operate in is a rule set to encode, test and then maintain as commissions revise it. Two states is not slightly more than one.
  • One billing logic per legacy agreement. Old joint use agreements each carry their own rates, escalators, audit provisions and penalty terms. Count them before anyone estimates, because eight agreements is eight implementations.
  • Owner and attacher are different products. If you are both, you are funding two mirrored workflows, not one system with a toggle.
  • Field capture hardware and photograph storage. Evidence-grade photographs at scale are ongoing storage and retrieval cost, and they are the part that actually settles disputes.
  • Contractor coordination. Bringing make-ready contractors into the workflow means external accounts, access control and a support burden that lands on your team.
  • Historical reconstruction. Populating attachment creation dates that legacy records never held is manual research, and it is the data back-rent calculations depend on.

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

Four things, and the first is a modelling decision made in week one.

Pole identity has to distinguish the asset, the position and each attacher's own identifier as separate concepts joined by a crosswalk. A developer whose answer to pole replacement does not make that distinction will produce reconciliation that fails on exactly the poles that cause disputes, which are the ones that have been replaced, moved or contested.

The second is that double wood is modelled as a multi-party workflow rather than a status field. Per-attacher transfer tasks with dependencies, due dates drawn from the agreement, automatic escalation and a dated photograph at completion. Pole retirement should trigger from the last completed transfer rather than from someone noticing the old pole is still standing. Ask any candidate developer what their system does about double wood. Someone who has worked in this space will talk about tasks and evidence immediately. Someone who has not will describe a dropdown.

The third is that a bill can be reproduced. An annual invoice should be generated from versioned rate rules with effective dates, not assembled, so that two years later when a line is questioned you can regenerate exactly what was billed and show why. That single property is what converts an argument into a conversation.

The fourth is ownership, including the data. Get the code and a full export of the attachment inventory in an open format written into the contract before kickoff. At Digital Heroes the client owns the code from the first commit. Attachment inventories are evidence in rate disputes and complaint proceedings that outlast software vendors, and a proprietary lock on that record is a risk worth refusing outright.

Research & sources

The evidence behind this guide

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

  1. Companies in the top quartile of McKinsey's Developer Velocity Index had 2014-18 revenue growth four to five times faster than bottom-quartile peers, showing that software-building capability is a driver of business performance, not just a support function. Source: McKinsey & Company (2020) →
  2. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  3. Workers can expect 39% of their existing skill sets to be transformed or become outdated over 2025-2030; 77% of employers plan to upskill their workforce, and 63% identify skill gaps as the biggest barrier to business transformation. Source: World Economic Forum (2025) →
  4. Digital Champions expect to achieve about 16% in cost savings and around 15% in revenue gains from digital operations over five years; the study surveyed 1,155 manufacturing executives across 26 countries. Source: PwC / Strategy& (2018) →
Akhilesh T. · Web Developer · Lucknow

Akhilesh builds websites for clients who need them to work on every device and load quickly on a bad connection. Day to day that means writing markup and styles, wiring up content management so non technical staff can edit pages, and fixing the layout bugs nobody notices until launch week.

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

FAQ

Frequently asked questions

Should we do a field audit before building the system?

Build the mechanism first, then let an audit update a living record rather than create a new one. An audit scoped as a prerequisite delays the software by months and delivers a snapshot that starts decaying immediately because nothing about how records are maintained has changed. Once observations from permits, make-ready jobs and field visits are being captured continuously, target the audit at the poles where confidence is lowest instead of at all of them.

Why will our pole inventory not join to the attacher's?

Because the identifiers were never designed to join. Your asset identifier, their tag number, replacements that inherit identity inconsistently, several poles at one intersection and tags that fall off all push the two lists apart. Use a persistent crosswalk that improves with every joint job rather than a one-time match, score every match with a confidence level, and never let an unconfirmed match feed a rental bill, because a wrong join produces a confident invoice you cannot defend.

How should the FCC and state timelines be implemented?

As configurable rule data with effective dates, held per jurisdiction, so that a commission order is a configuration change rather than a software release. Encoding the periods as conditional logic in application code is faster in week two and leaves you displaying wrong due dates for weeks whenever a rule changes. Start the clock automatically at intake rather than when someone opens the mailbox, and gate the completeness review so applications are accepted or returned with reasons inside the review window.

What breaks when a pole is replaced?

Attachment records pointing at the old asset become orphaned, or silently follow the new asset as though nothing changed even though loading, height and class may differ. Integrations that sync attributes but not lifecycle events will not surface it. Subscribe to pole lifecycle events and quarantine affected attachment records until a person confirms the disposition, because a replacement that transfers silently is how a rental line becomes indefensible.

How do we stop transfers stalling and leaving double wood?

Model the transfer as a multi-party workflow with a task per attacher, dependencies, due dates from the agreement and automatic escalation, and require a dated field photograph at completion. Notification systems handle telling everyone, but an acknowledgement is not a completed transfer, and builds that treat a returned message as progress will report jobs as on track that have not started. Trigger pole retirement from the last completed transfer.

Are we too small to justify building?

Below roughly 30,000 jointly used poles with two attachers and stable volume, yes. Buy Alden One or Katapult Pro and enforce your agreement, because at that scale discipline matters more than tooling. The build case starts when you pass roughly 100,000 jointly used poles, carry more than four materially different agreements, operate under multiple state rule sets, or have permit volume from fibre buildouts being tracked against regulatory deadlines in a shared mailbox.

Which costs are usually left out of the quote?

One rule set per state to encode and maintain. One billing implementation per legacy agreement, so count your agreements before anyone estimates. Two mirrored workflows if you are both a pole owner and an attacher. Evidence-grade photograph storage at scale. Contractor accounts and the support they generate. And manual historical research to populate attachment creation dates that legacy records never held, which is the data back-rent depends on.

What single property should the billing module have?

Reproducibility. An annual invoice should be generated from versioned rate rules with effective dates rather than assembled from a workbook, so that two years later a questioned line can be regenerated exactly as billed with the rule that produced it. That property is what turns a rate argument into a conversation, and it is also what makes an unauthorised attachment back-rent calculation defensible in a complaint proceeding.

How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
Our developer disappeared mid-project. Can another team pick up the code?
Yes, this is a routine engagement, provided the code exists somewhere you can access, so your first move is securing the repository, hosting, and domain credentials today. A takeover starts with a one to two week paid code audit that ends in one of three verdicts: continue the build, keep the design but rebuild the weak parts, or start over. Digital Heroes has inherited enough projects to say plainly that sometimes the rebuild is cheaper than the rescue, and an honest agency will tell you which one you have before taking your money.
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.
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.
How long does it take from first call to software my team can actually use?
Plan for four to six months: two to three weeks of discovery, two to four weeks of design, then a 10 to 16 week build with testing. In Digital Heroes delivery experience the schedule killer is not engineering speed but decision lag; a client who takes two weeks to approve wireframes adds two weeks to launch. Book a weekly 30-minute decision slot before kickoff and most of that risk disappears.
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.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
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.
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.
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 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?