Transmission Planning Study Management Problems: The 7 That Cost You a Rerun, and How to Avoid Them
The most expensive failure in planning tooling is being unable to reproduce a result you have already published. An interconnection customer's consultant asks why your study shows a thermal violation on a 138 kV line that their model does not, and answering it requires knowing which base case vintage was used, whether the retirement list included a unit still under evaluation in March, what transfer level was dialled in and which contingency file version applied. Two of those four facts usually exist only in an email thread. A planning engineer then spends three days on archaeology and arrives at a number that is close to the original rather than provably the original, which is not an answer that survives a proceeding. Case lineage is the entire product here, and no solver vendor sells it because it is not their job.
Why does the project get scoped as a results dashboard instead of case lineage?
Planning groups drown in results, so the request that starts the project is almost always about seeing them: a violation browser, filters by season and scenario, charts by circuit. That is genuinely useful and it is quick to build against whatever output files exist today.
What it does not fix is the reason the results are untrustworthy. Every violation in your report is the output of a specific composition: a model version, an assumption set, a contingency definition, a set of parameters and a code path. Change the load forecast vintage and the violation moves. Change one retirement assumption and it disappears. Build a dashboard on top of a folder tree named 2026_Summer_Peak containing forty one saved cases with names like base_final_v3_rev2_USE_THIS, and you have made untraceable results easier to browse. The dashboard then gets quoted in a report, somebody disputes it, and the same three days of archaeology happen with a nicer front end.
Make lineage the first release and the dashboard the second. Model the study as a directed graph: a base case is a node, every transformation is an edge carrying the script, its parameters and who ran it, and the derived case is a node that can be regenerated rather than stored. Every results record references the node that produced it. The acceptance test is that an engineer picks any published violation from last year and reproduces it by replaying a path, in under an hour, without opening an inbox.
What goes wrong when you bring in the existing folder tree of saved cases?
Teams assume the migration is copying files into managed storage. It is not, because the files are opaque binaries and the meaningful information is not inside them, it is the relationship between them. What made base_final_v3_rev2 different from base_final_v3 is a change list nobody wrote down: this generator dispatched down, this line added, this load scaled.
Two failure modes follow. The first is volume: saved cases across seasons, scenarios and sensitivities grow into tens of terabytes fast, and a team that decides to preserve everything hands the utility a storage bill for data almost none of which will ever be opened again. The second is worse. Importing cases without their derivation gives you a catalogue that looks like lineage and is not, so engineers trust it, and the first dispute reveals that the system knows a case existed but not how it was made.
Reconstruct forward rather than backward. Bring in the base cases and the assumption sets that are still live, register them as nodes, and start capturing derivation from the next study cycle onward. For historic studies that carry real exposure, meaning anything under active dispute or feeding a project in a rate proceeding, reconstruct the lineage deliberately with the engineer who ran it, and mark everything else as archived with no derivation claim. An honest gap is defensible. A catalogue that implies lineage it does not have is not.
Why do the solver integrations break after launch?
Driving PSS/E through its Python interface, PowerWorld through its automation interface and TARA through its own is three integrations, not one, and each fails on its own terms. What breaks after launch is usually not the interface. It is the environment around it.
Licensing is the reliable one. Solver licences constrain how much you can parallelise, and a job runner that ignores licence accounting will either exhaust the pool and fail loudly or serialise itself into uselessness. Then a licence server moves, a version is upgraded, or a seat is reassigned during a busy week, and a batch that ran fine on Friday stalls on Monday. The second is version drift: a solver upgrade changes output formatting or default behaviour, and the parser that reads results keeps working while quietly misreading a column. The third is the script layer, since the transformation scripts your engineers write are the actual product and they evolve constantly.
Make licence awareness a first class feature of the queue, not an afterthought. Concurrency should be bounded by available seats with jobs queued rather than failed. Pin and record the solver version against every result, so a version change invalidates the right runs instead of silently producing incomparable numbers. And treat the transformation scripts as versioned artefacts inside the lineage graph, because a result produced by script version 4 is not the same result as one produced by version 3 even with identical parameters.
What happens when non convergence and reporting formats are not covered?
A batch of 600 cases runs overnight on a workstation under somebody's desk. Case 340 fails to converge. The script may keep going or may stop, and either way nobody finds out until morning, at which point the engineer reruns everything because they cannot tell which results are stale. That is the visible cost. The invisible one is far worse: if non convergent cases are quietly dropped, the study reports fewer problems than exist, which is the single worst failure available in this domain.
The second gap is reporting. The format arrives from your regional transmission organisation's business practice manuals and it is not negotiable, so somebody spends two weeks reshaping data by hand. Underneath that sits the deduplication problem: the same physical violation appears across dozens of contingencies, seasons and sensitivity runs, and the useful output is not a list of violations but a ranked list of distinct problems. Doing that reduction by pivot table is where planning engineers lose their weeks.
Require explicit non convergence handling in the specification: flag, classify and preserve the failing inputs for inspection, never drop. Give each violation a stable identity based on the monitored element and limit type so cross run analysis becomes a query. Land results in a columnar store and keep the raw output, because your grouping logic will change and you do not want to rerun 600 cases to change how a report is grouped. The regulator facing format then becomes a rendering step, so a manual change is a template edit rather than another fortnight.
Should you build custom or configure what you already own?
Buy the solvers, always. Siemens PSS/E, PowerWorld Simulator, DIgSILENT PowerFactory, PowerGEM TARA and PSCAD represent decades of validated numerical work, and any proposal that involves building your own power flow or dynamics engine should end the conversation on the spot. Keep paying for them and keep upgrading them.
Do not build the workflow layer at all if your group runs a handful of studies a year on a small footprint with two engineers who genuinely do hold the composition in their heads. Disciplined naming conventions and a shared assumption spreadsheet carry a small transmission owner further than people expect, and the money is better spent on solver licences and compute. We say this to groups regularly and it is usually correct for them.
Build when at least two of these are true. Cluster study deadlines under the current interconnection process make your throughput a compliance exposure rather than a workload problem. You have been asked to reproduce a result more than a year old and struggled. Your case count per assessment cycle runs into the thousands. More than three engineers touch the same study track. Or a result of yours has already been challenged by a developer or an intervenor, which is the moment lineage stops being a convenience and becomes evidence.
How do hidden costs get into the quote?
The number of distinct solvers is first and it is the one people understate, because a group that mostly uses PSS/E will mention TARA in passing and expect it to be free. It is a separate adapter with its own job semantics, its own failure behaviour and its own result parsing. Name every solver on the first call, including the one used by a single engineer for a single annual task.
Electromagnetic transient work in PSCAD alongside steady state is the second and it is not an increment. The data volumes and runtimes differ by orders of magnitude and the post processing question is different, so it belongs in its own phase with its own budget. Stability work is the third for the same reasons: dynamic simulation results are much larger and screening them is a different problem from thermal and voltage.
The fourth is footprint. Multiple regional transmission organisations means multiple business practice manuals, multiple report formats and multiple process conventions, and each is real work. Start with one study type, usually the annual thermal and voltage assessment, and one solver. Groups that try to model every study the department performs before shipping anything spend a year specifying and deliver nothing, and the $80,000 to $170,000 first release band over 12 to 18 weeks assumes the narrower scope.
What separates a build that works from one that fails here?
Ask a candidate developer whether they will store derived cases or regenerate them. The right answer is regenerate from lineage and store selectively, and a team that has not thought about it will propose keeping every binary and hand you a storage problem measured in tens of terabytes. Ask how they handle solver licence limits in the job queue, because orchestration that ignores this fails the first time it tries thirty concurrent jobs against a pool that allows eight.
Ask what happens to a non convergent case. The answer must include flagging, classification and preserving the failing inputs. Anything that quietly drops them produces a study that understates problems, and in this domain that is the failure with the longest tail. Ask how stale results are detected: when a base case is corrected, the system should mark exactly the downstream results that are now invalid rather than leaving an engineer to guess, and that single behaviour removes most of the wasteful rerunning.
Put ownership in the contract before kickoff, including the right to export the results store in an open format, because study evidence may need to be produced in a proceeding years after the developer relationship ends. Then run the test that costs nothing: hand a candidate one real past study and ask them to sketch how their model represents it. A planning engineer in the room will know within fifteen minutes whether the sketch survives contact with your actual process.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- 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) →
- An independent Forrester Total Economic Impact study of OutSystems found a 363% three-year ROI with payback in under 6 months, illustrating that faster, lower-labor build approaches can materially shift the payback math. Source: Forrester Consulting (commissioned by OutSystems) (2024) →
- In Gartner's 2025 AI in Finance Survey of 183 CFOs and senior finance leaders (fielded May-June 2025), 59% reported using AI in their finance function, with accounts payable process automation adopted by 37% of respondents (the second-highest single use case, behind knowledge management at 49%). Source: Gartner (2025) →
- 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) →
Oliver runs UK client accounts day to day, chairing the calls where scope, budget and timeline meet reality. He is useful reading for anyone about to commission custom software and wondering what a healthy agency relationship should feel like from the client side.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
Can we automate contingency runs without changing solvers?
Yes, and it is the only sensible approach. The solver stays the solver: PSS/E is driven through its Python interface, PowerWorld through its automation interface, TARA through its own, and what you are building is the queue, the lineage and the results store around them. The orchestration layer schedules cases, respects the licence pool, retries transient failures and records exactly which inputs produced which results. Nothing about the numerical work changes, which is also why any proposal to build your own solver should be refused.
How far back should we reconstruct lineage for old studies?
Reconstruct deliberately only for studies that carry live exposure, meaning anything under dispute, anything feeding a project in a rate proceeding, and anything a developer has already questioned. Do that work with the engineer who ran it, while they are still available. Everything else should be archived and marked explicitly as having no derivation claim. An honest gap is defensible in a proceeding. A catalogue that implies lineage it cannot support is worse than no catalogue, because engineers will rely on it before discovering the limit.
What do we do about cases that fail to converge?
Flag, classify and preserve the failing inputs for an engineer to inspect, and never drop them silently. A batch that quietly discards non convergent cases produces a study reporting fewer problems than actually exist, which is the most damaging error available in transmission planning. Classification matters too, since a case that fails because of a genuinely infeasible dispatch is a different finding from one that fails because a solution parameter needed adjustment, and only the second is a technical housekeeping item.
How do we stop assumptions drifting between study tracks?
Make assumption sets versioned, named objects with effective dates and an owner, referenced by studies rather than copied into them, and make applying one a transformation edge in the lineage graph. Then when a load forecast is revised in April, the system can list every case and every result that used the prior vintage rather than leaving someone to remember which tracks were updated. Silent divergence between two engineers applying the same assumption slightly differently is the hardest class of error to find, because the results converge perfectly and are perfectly wrong.
How much storage does this actually need?
Far less than people fear if derived cases are regenerated rather than stored, and far more than budgeted if they are not. Saved case binaries across seasons, scenarios and sensitivities reach tens of terabytes quickly and most are never reopened. Keep base cases, keep the transformation scripts and parameters, and keep the raw results, because your grouping and reduction logic will change and rerunning hundreds of cases to alter a report is the thing you are trying to stop doing.
Can one system drive PSS/E, PowerWorld and TARA together?
Yes, but budget it as three integrations with a consistent job layer above them, not as one integration with three settings. Each has its own interface, file formats and failure behaviour, and each needs its own adapter and its own result parsing. Adding PSCAD for electromagnetic transient work is a fourth and considerably heavier problem, since the data volumes and runtimes differ by orders of magnitude, so it belongs in its own phase with its own budget rather than folded into a steady state release.
How does this help with cluster study deadlines?
Mostly by removing rework rather than by making the solver faster. Cluster processes with firm deadlines turn throughput into a compliance concern, and the throughput lost in most groups goes to reruns caused by not knowing which results are stale, plus manual reshaping of output into the required report format. When a base case correction automatically marks exactly the downstream results that are now invalid, and reporting is a rendering step off a results store, a cycle that ran on overtime becomes one that fits the calendar.
What should the first release deliberately leave out?
Stability and electromagnetic transient work, secondary regional footprints, and anything beyond your single highest volume study type, which for most groups is the annual thermal and voltage assessment. Get lineage, licence aware orchestration and the results store working on that one study with one solver, and prove reproduction against a real past result. Groups that attempt to model every study the department performs before shipping anything spend a year in specification and go live with nothing an engineer has used in anger.
What does it cost to keep custom software running after launch?
How much should a small business budget for its first custom app or website?
How do I vet a development agency for an internal tools project?
Should we build the whole internal tool at once or start with an MVP?
When does a company outgrow Airtable?
What are the most common mistakes companies make when building internal tools?
How do we migrate years of spreadsheet or Airtable data into a new internal tool?
Can we start on Airtable or Retool now and move to custom software later?
How do I calculate the ROI of a custom internal tool?
What does it cost to keep an internal tool running after launch, and do we need to hire a developer?
How many people should be working on my software project?
Who can build a custom internal tools system?
Digital Heroes builds custom internal tools 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 internal tools 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.