Problems & solutions · Business Intelligence Dashboards

Peering and Transit Cost Management Software Problems: The 7 That Waste the Saving, and How to Avoid Them

Peering AND Transit Cost Management Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure in this category is a peering session that was justified on monthly volume and saved nothing. Transit is billed on the 95th percentile of five minute samples, so your invoice is set by a few dozen intervals out of roughly eight thousand in a month. A candidate whose traffic is large but sits outside those intervals moves your bill by zero, and you have still paid for the port, the cross connect, the exchange membership and the engineering time to turn it up. Worse, nobody finds out, because almost no organisation records the prediction it made at decision time, so the same optimistic assumption gets reused next year on the next candidate.

Why does a peering analysis build turn into a full network observability platform?

The question that starts the project is commercial and narrow. What would that session actually save, under our contract, this year. It is answerable, and answering it is worth real money.

Then scope arrives from every direction, because flow data is interesting to everybody. Security wants anomaly detection. The network operations centre wants alerting. Capacity planning wants forecasts. Someone wants per customer traffic reports for the sales team. Six weeks in, a costing tool has become a general purpose observability platform, competing directly with products that have been developed for years and are genuinely good at that job.

This matters more here than in most categories because the two things need different data fidelity. Observability tolerates approximation and rewards breadth. A commercial model has to reproduce your invoice to the byte, and if it cannot, nobody in finance will act on it. Chasing breadth first means you get neither.

The discipline that works is a single acceptance test before anything else is built: reproduce last month's billed number for one supplier port from your own flow data, within a stated tolerance. Nothing else ships until that passes. In Digital Heroes delivery experience the first release that clears that bar and adds prefix level attribution and candidate modelling runs $60,000 to $130,000 in 10 to 14 weeks. The full platform, with commit optimisation across suppliers, exchange port sizing, cache modelling and payback tracking, runs $150,000 to $350,000 over 6 to 10 months. Buy Kentik, Nokia Deepfield or Flowmon for the observability half. Build only the part that touches your contracts.

What goes wrong with flow data and routing table history?

The data problem in peering analysis is not volume, it is truthfulness, and it hides well because every number that comes out looks plausible.

Three specific traps. The first is sampling. On high speed interfaces sFlow sampling rates mean small flows are statistically unreliable, so a candidate whose projected saving is small relative to its port cost may be entirely noise. A build that presents a sampled figure as exact is worse than one that presents nothing, because it produces confident wrong decisions.

The second is destination resolution. Resolving a flow to a destination autonomous system number using a public mapping disagrees with reality precisely where your policy is doing something interesting, which is exactly where the money is. Localpref, communities on customer routes, selective announcements at one fabric and backup paths that only activate under failure all live in your routing information base and in none of the public datasets.

The third is time. Attribution has to resolve each flow record against the routing table as it was at that timestamp, not as it is now. A table that changed midway through the billing month makes last month's numbers unreproducible if you only ever kept the current view.

The fixes are all decided before the first line of code. Ingest the routing table properly, via Border Monitoring Protocol (BMP) from the border routers where the platform supports it, and keep the historical view. Carry sampling rates through every calculation and render confidence bounds rather than hiding them. Decide retention deliberately: full prefix level detail for the last quarter, aggregates beyond that, because most decisions live in recent months and a year of full detail carries a storage bill that surprises people.

Why do the flow export, BMP and invoice feed integrations break after launch?

This category has an unusual failure pattern. The integrations do not break loudly, they degrade, and the model keeps producing answers from partial data.

A border router is upgraded and its flow export configuration is not carried across, so one port silently stops reporting. The percentile reconstruction for that supplier now understates, and it understates in the direction that makes everything look fine. A BMP session drops after a maintenance window and nobody re-establishes it, so route resolution quietly falls back to the last table it saw. Sampling rate is changed on one interface during a capacity upgrade and the pipeline keeps applying the old multiplier, which scales that port's traffic wrongly by a constant factor that nobody spots because the shape looks right.

The invoice side breaks differently. Contract terms change at renewal, a new commit level or a revised overage rate takes effect, and if those terms live as numbers typed into a configuration screen once, the model is confidently pricing against an agreement that expired.

The fixes are specific. Every flow source reports its own liveness, and a port that stops exporting raises an alarm rather than simply contributing nothing. Sampling rate is read from the device rather than configured by hand. BMP session state is monitored like any other session. Contract terms carry effective date ranges, exactly like the agreements they represent, so a calculation run against March uses March's terms. And the reproduce-the-invoice test that gated the first release runs every month as a regression check, because that single test catches almost every silent degradation before it reaches a decision.

What happens when contract terms and commit position are not modelled?

This is the gap that turns a technically excellent build into a report nobody acts on.

Traffic engineering only changes your bill in specific commercial circumstances. If you are comfortably below a committed level you never approach, shifting traffic off transit saves you nothing at all until the contract renegotiates, and a model that reports a saving in that situation is simply wrong. If you carry tiered pricing, the marginal rate at your current volume is not the headline rate. If you buy from several suppliers under different terms, the same shifted traffic is worth different amounts depending on which port it leaves.

Term remaining matters too. A saving that only materialises after renewal has a different value to your finance director than one that lands next month, and presenting both as one number invites a fair objection you will not be able to answer in the meeting.

The other commonly missed obligation is inbound. Half the peering questions that matter concern traffic you do not control directly and can only influence through what you announce and how. A model that only reasons about outbound will confidently recommend sessions that do nothing for your largest cost driver.

The fix is to make the contract a first class object in the model rather than a spreadsheet somebody consults. Commit floors, overage rates, tiers, regional terms, term end dates and any minimum revenue commitments all become parameters, so every candidate is evaluated as marginal cost change under the agreement that will actually be in force. Then a candidate's output is a payback period rather than a volume, and payback is a number a chief financial officer can act on.

Should you build custom or configure what you already own?

For a large number of networks the honest answer is buy, and we say so regularly.

If you take transit from one supplier on a flat commit you never exceed, there is no commercial optimisation problem to solve. Nothing you do to your traffic changes the invoice until the contract renegotiates. Buy Kentik, use it well for engineering and capacity work, and revisit the build question when you add a second supplier or start approaching the commit. Building in that situation is a hobby with a project code.

If what you actually need is to see traffic by autonomous system, spot anomalies quickly and answer engineering questions, Kentik does that genuinely well and you should not write it yourself. Nokia Deepfield is the right choice at carrier scale for subscriber and distributed denial of service work. Flowmon is a sensible pick where security is the primary driver. None of these is a weak product and none of them fails at its own job.

Configuration runs out at one boundary and it is a clean one. These products model traffic. Your problem is a commercial optimisation over traffic, under contracts they cannot see and should not be expected to model. The moment the contract arithmetic is the hard part, the contract arithmetic has to live in software you control, because your commercial terms are not going into a vendor's product.

So the usual shape is both. Keep the visibility product for engineering. Build the thin, contract aware layer that reads the same flow data and answers the money question. That is a smaller and much safer project than replacing anything.

How do hidden costs get into the quote?

Three things drive cost in this category and only one of them is normally quoted.

Flow volume is an architecture decision rather than a configuration. Ingesting a few thousand records per second and a few hundred thousand are different systems, and a proposal that does not state the assumed rate has not been sized. Ask for the number the quote assumes and what happens when you exceed it.

Router estate is the second. Flow export and BMP behave differently across vendors and across software versions, and older platforms are usually the harder ones. A quote written against a homogeneous modern estate will not survive contact with the two legacy boxes still carrying real traffic. Name every vendor and version before you take a price.

Retention is the third, and it is the one that turns into a monthly bill rather than a project line. Holding a year of prefix level detail rather than aggregates is a storage design problem with a real cost attached, and it should be a deliberate decision made with a number in front of you.

Then the unquoted items. Legal or commercial review time to extract your contract terms into something modelable, which is your team's work and usually takes longer than anyone expects because the agreements live with different people. Ongoing running cost for ingestion and storage. And the fact that the reproduce-the-invoice test may fail first time for a reason that turns out to be a misconfigured export rather than a bug, which is time well spent but is time.

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

Ask a candidate developer to explain percentile billing before anything else. If the answer involves monthly averages or total bytes, the conversation is over. The right answer mentions five minute samples, ranking, and the observation that a small number of intervals sets the bill. Someone who says that unprompted has done the work.

Then ask how they would resolve a flow record to a destination autonomous system. A public dataset is the weak answer. Your own routing table at the timestamp of the record, ingested via BMP where supported, with any fallback clearly labelled approximate, is the strong one.

Ask what they will do about sampling. Anyone who has run flow analytics at scale raises sampling rates and confidence bounds without being prompted and refuses to present a sampled number as exact. That instinct separates practitioners from readers.

The builds that succeed start with the invoice reproduction test and refuse to move past it. The builds that fail start with a dashboard, look impressive in month two, and never get used for a decision because nobody trusts the numbers against the bill.

Finally, insist that the model's output at decision time is stored as a commitment, and that actual percentile movement after turn up is measured against it. That single habit calibrates the model against your own network within a few cycles, and it is the only way you will ever know whether the last session was worth the port. Settle ownership of the repository and the infrastructure accounts before kickoff, because this system holds your commercial terms and you should never need a vendor's cooperation to read them.

Research & sources

The evidence behind this guide

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

  1. 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) →
  2. In a survey of 113 supply chain leaders (conducted late March to mid-April 2022), 67% had implemented digital dashboards for end-to-end visibility, and those companies were about twice as likely as others to avoid supply chain problems during the disruptions of early 2022; 71% expected to revise inventory policies going forward. Source: McKinsey & Company (2022) →
  3. Technology 'Leaders' grow revenue at more than twice the rate of 'Laggards'; laggards surrendered 15% in foregone annual revenue in 2018 and stood to miss out on as much as 46% in revenue gains by 2023 if they did not change their enterprise technology approach. Based on a survey of more than 8,300 organizations across 20 industries and 20 countries. Source: Accenture (2019) →
  4. Poor software quality cost the US economy an estimated $2.41 trillion in 2022, including roughly $1.52 trillion in accumulated technical debt, driven partly by unsuccessful development projects and low-quality legacy systems. Source: Consortium for Information & Software Quality (CISQ) - Herb Krasner (2022) →
Vikram R. · VP Engineering · Delhi

Vikram runs the engineering function at Digital Heroes, from how teams are structured to how code gets reviewed and released. He writes about the trade offs behind build decisions: what to buy, what to build, and where technical debt is worth taking on deliberately.

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

FAQ

Frequently asked questions

What should a first release actually deliver before we fund anything else?
One thing: reproduce last month's billed number for one supplier port from your own flow data, within a stated tolerance. Everything downstream depends on that being true, and if it is not, no attribution or candidate model built on top of it is trustworthy. Make it a contractual acceptance criterion rather than a milestone, and hold the rest of the scope behind it. In our experience it also surfaces flow export misconfigurations that were quietly distorting numbers long before the project started.
How do we decide between building this and buying Kentik?
Ask whether your hard question is about traffic or about money. If you need to see traffic by autonomous system, spot anomalies and answer engineering questions, buy the visibility product and use it properly. If your hard question is what a session saves under your commit, your tiers and your remaining term, that arithmetic depends on contract data no vendor has and it belongs in software you control. Most networks that build end up running both, with the custom layer reading the same flow data.
Why did the last peering session we turned up not reduce the bill?
Three usual reasons, and they are distinguishable from the data. The traffic that moved sat outside the intervals that set your percentile, so the bill never noticed. Or you were below a commit you do not exceed, in which case nothing you shift changes the invoice until renewal. Or the peer announces only a subset of prefixes at that fabric, so most of the volume you attributed to them stayed on transit. Recording the prediction at decision time is what lets you tell which one happened.
Can flow data alone tell us which prefixes set our percentile?
Not on its own. Flow gives you source, destination, bytes and interface, but not the path taken or which supplier carried it, and public autonomous system mapping disagrees with your routing table wherever your policy is doing something interesting. Correct attribution joins each flow record against your own table as it was at that timestamp, which means keeping historical routing state rather than only the current view. Getting that decision wrong at the start is expensive to correct later.
How should sampling uncertainty be presented to a finance audience?
As a range with the sampling rate stated, never as a single exact figure. Large aggregate flows survive sampling well, which is why the top of a candidate list is usually trustworthy, but the tail is often within the noise and should be labelled as such. The practical rule we apply is that any candidate whose projected saving is close to its port and cross connect cost gets flagged as undecidable from the available data rather than recommended, because a confident wrong recommendation costs more than an honest gap.
Do we need to model inbound traffic as well as outbound?
Yes, and skipping it is a common reason these builds disappoint. Inbound is frequently the larger share of the billed direction and you influence it only through what you announce and how, so a model that reasons purely about outbound will recommend sessions that do nothing for your actual cost driver. That means keeping a record of your announcements at each fabric over time, not just your traffic, so a change in what you announce can be correlated with a change in what arrives.
How do we keep the model honest after contract renewals?
Make contract terms effective dated objects rather than numbers typed into a settings screen once. A calculation run today against last March should use March's commit level, overage rate and tiers, otherwise every historical comparison silently becomes wrong at each renewal. Pair that with a monthly regression that reproduces the current invoice from flow data, which catches both a terms change nobody entered and an export that quietly stopped reporting.
Is an on net cache worth the rack space, and can the same system answer that?
It can, once percentile decomposition exists, because the question becomes arithmetic rather than argument. What matters is whether the traffic that cache would serve falls inside your peak intervals and where you sit relative to your commit, not the headline volume the programme quotes. Below a commit you never exceed, the answer this year is often that it saves nothing, which is a useful thing to know before you allocate power and space.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
We already pay for Microsoft 365. When does building custom actually beat Power BI?
Keep Power BI for internal reporting; at $14 per user per month for Pro it is hard to beat for employee-facing analytics. Custom wins in three cases: you are showing dashboards to customers, since embedded Power BI is priced on capacity and gets expensive fast, you need a fully white-labeled experience inside your own product, or your team keeps fighting the tool to support a specific workflow. Most companies we build for keep Power BI internally even after launching a custom customer-facing dashboard.
What should the first version of a dashboard include, and what can wait?
Version one should answer 5 to 7 questions your team already asks every week, pull from your 2 or 3 most important data sources, and refresh daily. Real-time data, custom report builders, scheduled email exports, and write-back features can all wait for version two. Across our projects, teams that launch a narrow version one reach a dashboard people actually use roughly twice as fast as teams that try to cover every department at once.
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.
How long does it take to build a custom BI dashboard?
A working first version usually ships in 4 to 8 weeks, and a full production build with multiple integrations and permissions takes 3 to 6 months. In Digital Heroes delivery experience, schedules slip on data access, meaning credentials, API approvals, and cleanup of source data, far more often than on the dashboard screens themselves. Lining up access to every data source before kickoff routinely saves 2 to 3 weeks.
Will a custom dashboard stay fast once our data hits millions of rows?
Yes, if it aggregates before it displays; no dashboard should scan millions of raw rows on every page load. The standard techniques are pre-aggregated summary tables, incremental refresh, and caching, which keep typical page loads under 2 seconds even on datasets in the hundreds of millions of rows. Ask your vendor how the dashboard behaves at 10 times your current data volume; a good one gives a specific answer about aggregation, not just a bigger server.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
Who can build a custom business intelligence dashboards system?

Digital Heroes builds custom business intelligence dashboards 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 business intelligence dashboards 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?