Problems & solutions · Custom Software

Short Line Railroad Operations Software Problems: The 5 That Cost Real Money, and How to Avoid Them

Short Line Railroad Operations Software workflow illustration showing common problems and fixes.
The short answer

The most expensive failure in short line railroad software is capturing the move in the office instead of in the field. A conductor writes the day's work on a switch list, a clerk keys it at the end of the shift, and the event time recorded is when the clerk typed rather than when the coupling happened. That gap is invisible until a car hire or demurrage dispute turns on a four hour difference, at which point you are arguing with a connecting Class I whose systems are automated and whose position is the default. Add the moves that never reach an invoice at all, a bad order set out that keeps accruing car hire and a placement billed as a repositioning move, and the loss is a few hundred dollars a day per property, every day, on a business with thin margins.

Why does the switch list get scoped as a data entry screen so often?

Because that is what the office asked for. The visible pain is a clerk retyping a wet piece of paper, so the obvious brief is a faster typing screen. Build that and you have made the transcription quicker without changing the fact that the record is a transcription.

The event and the message have to be the same fact. A car handling event, an interchange, a placement or a release is generated where it happens, on a tablet or a phone in the cab, with the timestamp of the actual move. The industry message is then produced from that record automatically rather than reconstructed later. Two versions of an event, one on paper and one in a system, is precisely the condition that loses you a settlement dispute.

Field capture also looks harder than it is worth until somebody counts the leakage. It is not exotic engineering, it is offline first capture with a switch list a conductor can work from in poor light with gloves on, and local validation so an impossible move is caught before it becomes a rejected message.

The tell in a scoping conversation is a cheap question. Ask the developer to explain constructive placement and how it affects the demurrage clock. It takes two minutes and it tells you whether you are talking to a railroad software team or a general logistics team who will learn on your budget. Follow it with a car set out bad order and later repaired on your property, because that single scenario touches car hire, mechanical, the repair billing files and the interchange report at once.

What goes wrong when you migrate switching agreements and car histories?

Agreement discovery is the schedule risk in this category, and it is almost never in the plan.

Every customer arrangement is different. One pays per car switched with the first two moves free. Another pays a monthly minimum against a per car rate with a volume break. A third has a haulage arrangement at a divisional rate that changes annually. A fourth sits on a track lease with an embedded switching allowance. The industrial park has a reciprocal switch arrangement that applies only to certain commodities. And somewhere there is a paper agreement from years ago whose terms live in the general manager's memory.

Turning that into versioned rate rules is real work involving your general manager and your commercial people rather than the developer, and it takes weeks. It also surfaces disagreements about how a deal has always been interpreted, which is uncomfortable and valuable, because those disagreements are already costing you money.

The second migration problem is the car history itself. Event times in the old system reflect when a clerk keyed rather than when the move occurred, so any analysis built on that history carries the same bias the new system exists to remove. Load it, keep it, and mark it as office keyed so nobody later mistakes it for field captured evidence.

The third is the rate change trap. If your current system edits rates in place, last year's invoices cannot be reproduced, because recalculating them uses today's rate. Rates need effective dates from day one, and if you are migrating history you need to know which rate applied when. Ask what happens to prior invoices when a rate changes, because an answer of edited in place means your historical billing is unreproducible and your first audit will be unpleasant.

Why do interchange messaging and Railinc integrations break after launch?

Because sending is easy and being accepted is not, and most builds only instrument the first half.

Short lines live inside a fixed messaging vocabulary: waybill and shipment information, advance interchange consists, car disposition, car handling events, terminal and ramp activity. The formats are documented and rigid, and equipment characteristics come from the Railinc Umler registry whether you like the data or not. A message can validate perfectly against the format and still be rejected or quietly ignored by the connecting carrier because a car is not where their system thinks it is, or an event sequence is impossible from their point of view.

The design that survives monitors outcomes rather than sends. Every message carries a state: sent, acknowledged, rejected with a reason, or unacknowledged past a threshold. Unacknowledged is the dangerous state and the one most builds do not model, because absence of a rejection looks like success. A system that fires messages and assumes they landed drops events silently, and you find out at settlement, which is the worst time and the weakest position.

The second breakage is asymmetry with the connecting carrier. Their view of your property and yours will diverge, and reconciling monthly is too late. Compare the two views on a regular cycle so a mismatch is found in the same week rather than at settlement when a Class I has already booked their number.

The third is having several connecting carriers. Each relationship has its own reporting expectations and its own settlement quirks, so integration should be priced per carrier rather than as one line.

What happens when car hire, demurrage and constructive placement are not covered?

You run one clock badly and the other not at all.

Car hire accrues against you while a foreign car sits on your property. Demurrage and storage accrue in your favour while a customer holds a car beyond free time. They are the same underlying clock read in two directions, and both depend on precise placement, constructive placement and release times. Prompt and accurate release reporting stops car hire accruing on cars you have already handed back, which is money you keep rather than money you earn, and it is invisible on every report you currently produce.

Constructive placement is the specific killer. The customer's track is full so the car waits on your siding, and whether the clock runs depends on notification and on the terms in your tariff. If the notification was a phone call, you have nothing. Making notification a system event with a timestamp and a delivery record converts an argument into a document, and it is a small piece of software that pays for a meaningful slice of the project.

The second gap is the bad order car. Set out on the house track, it changes car hire liability, opens a mechanical record, eventually flows through the industry repair billing exchange if it is a foreign car you repair, and has to be reflected in the interchange report as being on your property and not moving. Handled manually, that is the most common place a short line loses money in both directions at once, because the same missing record understates what you should bill and overstates what you owe.

Should you build custom or configure what you already own?

License RMI RailConnect and put the money into ties if you are a single property moving under a few thousand cars a year. It is the default for a reason: it handles the industry messaging properly and the connecting carriers know it. Its limit is that the operating model is the vendor's, so when your property does something unusual the change request joins a queue with everyone else's, but at that size the unusual things are few.

Look at Bourque Data Systems if your pain is concentrated in billing and waybilling for a smaller property. It is lean and well regarded on that side, and correspondingly lighter when you also want mechanical, track and crew management in the same system.

PS Technology brings genuine Class I operating pedigree as a Union Pacific subsidiary, and that is exactly the tension. The products reflect big railroad practice and scale down with more process than a three person office wants, so evaluate them against how much administrative overhead your team can absorb rather than against the feature list.

Build at holding company scale, when several properties arrive with different switching agreement structures, transload operations and a car repair shop, and the gaps between the packaged model and each property are absorbed by clerks and spreadsheets. The honest arithmetic is that at that point the annual cost of the workaround, meaning the clerk hours plus the leakage nobody measures, exceeds the build. Start with one property, the waybill and event core and the two clocks, because that is where the recoverable money is and it funds the rest.

How do hidden costs get into the quote?

The number of properties is the first, and whether they share a rate structure. Each property tends to arrive with its own history, its own customers and its own arrangements, so a second property is not a copy of the first.

The number of connecting carriers is the second. Each relationship has its own reporting expectations and settlement quirks, and a quote with one interchange line has priced one carrier.

Third is transload and warehousing, which is a separate inventory business bolted to a railroad. It is not a module of a railroad system, it is a second system that shares customers, and it should be priced as such.

Fourth is mechanical depth, particularly if you bill outside work, because bad order tracking is one thing and producing correct industry repair billing files for foreign cars is another. Fifth is passenger or excursion operations if you run them, which brings ticketing and an entirely different safety and reporting posture. Sixth is agreement discovery, since writing switching agreements, haulage arrangements and track leases down as rules is your general manager's time, takes weeks, and is on the critical path because billing cannot be tested against rules that do not exist yet. It appears in no proposal.

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

The builds that work are offline first and mean it. Much of a short line's territory has no coverage, so the field application must capture a full shift with no signal, validate locally, and queue synchronisation for when coverage returns. It also needs conflict handling, because the office may have amended a record while the crew was out of contact, and the resolution rule has to be decided by you rather than by whichever write arrives second.

They model rate agreements as versioned rules attached to the customer and the track, with effective dates, so switching, storage, weighing, transloading and every other accessorial lands on the invoice because the event happened rather than because a clerk remembered. That is the mechanism that recovers revenue you have already earned, and it is more valuable than any reporting feature.

They instrument the messaging rather than trusting it, with unacknowledged treated as a failure state, and they reconcile against the connecting carrier's view weekly rather than at settlement.

They give shippers a portal early. Your customers currently phone the office to ask where their cars are, and that call is a person's whole morning. It is a modest piece of software with an immediate and measurable effect on how the office spends its day.

Finally, they settle ownership before kickoff. You should own the repository, the infrastructure accounts and the unrestricted right to appoint another supplier, written into the contract. At Digital Heroes the client owns the code from the first commit. For a railroad this matters more than usual, because the operating record inside the system is also your legal record in a dispute or an investigation, and it should never sit on a supplier's account.

Research & sources

The evidence behind this guide

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

  1. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
  2. Median SaaS spend reached $9,455 per employee, and organizations leave an average of 36% of their SaaS licenses unused. Source: Zylo (2026) →
  3. Sensor Tower's State of Mobile 2026 reports that global users spent 5.3 trillion hours in iOS and Google Play apps in 2025 (+3.8% YoY), roughly 3.6 hours per day per mobile user. (Note: the page does not itself contrast app time vs. mobile-browser time, so the 'overwhelming majority of time in apps vs browsers' framing is not directly supported by this source.). Source: Sensor Tower (2026) →
  4. McKinsey found that currently demonstrated technologies can fully automate about 42% of finance activities and mostly automate a further 19%, indicating roughly 60% of finance work is technically automatable. Source: McKinsey & Company (2018) →
Veer S. · Senior iOS Engineer · Delhi

Veer builds iOS applications at Digital Heroes, working in Swift on everything from the interface layer to the networking and offline handling underneath. Readers get engineer level detail on how features are actually implemented, and why some requests are far more expensive than they look.

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

FAQ

Frequently asked questions

How do we tell whether a developer understands railroad operations?
Ask them to explain constructive placement and how it affects the demurrage clock. It takes two minutes and it separates a railroad software team from a general logistics team who will learn on your budget. Then ask how they would handle a car set out bad order and later repaired on your property, because that one scenario touches car hire liability, the mechanical record, the industry repair billing files and the interchange report simultaneously.
Why do we lose car hire and demurrage revenue we have already earned?
Because the event times in your records are when a clerk keyed rather than when the coupling happened, and a dispute with a connecting Class I turns on exactly that difference. Capture events in the field with real timestamps, then generate the industry message from that record. Constructive placement is the specific weak point, since a notification made by phone leaves no evidence, so make notification a system event with a delivery receipt.
Our messages validate but events still go missing. What is happening?
Sending is not the same as being accepted, and most builds only instrument the send. A message can be perfectly formatted and still be rejected or quietly ignored because the car is not where the connecting carrier's system thinks it is, or the event sequence is impossible from their point of view. Model unacknowledged as a failure state rather than as success, and reconcile against the carrier's view weekly rather than at settlement.
What is actually hard about writing our switching agreements into software?
Finding them. Per car rates with free moves, monthly minimums with volume breaks, haulage at a divisional rate, track leases with embedded switching allowances and reciprocal arrangements that apply only to certain commodities all exist, and some of them live as a paper document plus the general manager's memory. Translating them into versioned rate rules with effective dates takes weeks of your commercial team's time and it is on the critical path.
Will the field application work with no cell coverage?
It has to, because much of a short line's territory has none. That means capturing a full shift offline, validating locally so an impossible move is caught before it becomes a rejected message, and queuing synchronisation for when coverage returns. Conflict handling matters as well, since the office may have amended a record while the crew was out of contact, and you should decide the resolution rule rather than letting the later write win by default.
Is RMI RailConnect enough for us?
For a single conventional property moving under a few thousand cars a year, yes, and building would be hard to justify. It handles the industry messaging properly and the connecting carriers know it. The build case appears at holding company scale, where several properties arrive with different agreement structures, transload operations and a car repair shop, and the gaps between the packaged model and each property get absorbed by clerks and spreadsheets.
Which costs get missed most often in a short line software quote?
The number of properties, since each arrives with its own customers and arrangements rather than being a copy of the first. Then the number of connecting carriers, because each relationship has its own reporting expectations. Then transload, which is a separate inventory business rather than a module. Then mechanical depth if you bill outside repair work. Then agreement discovery, which is your general manager's weeks and appears in no proposal.
Can we reproduce last year's invoices after a rate change?
Only if rates carry effective dates rather than being edited in place. Ask any prospective developer what happens to prior invoices when a rate changes, and if the answer is that the rate record is updated, your historical billing becomes unreproducible the first time a customer negotiates. Effective dated rules mean a recalculation of an old period uses the rate that applied then, which is what an auditor and a disputing customer both expect.
What happens if I stop paying for maintenance after launch?
Nothing breaks on day one, which is what makes it dangerous. Within 6 to 18 months, unpatched dependencies accumulate known vulnerabilities, an integrated API like Stripe ships a breaking change, and the first fix requires a developer to relearn a stale codebase at full price. Budget 15 to 20% of the build cost per year for upkeep; it is the difference between a $500 patch and a $15,000 emergency.
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.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
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.
Is a solo freelancer enough for my project, or do I really need an agency?
A solo freelancer is a fine choice for a well-defined build under roughly $15,000 to $20,000 with a limited lifespan: an internal calculator, a scripted integration, a prototype. Above $50,000, or for any system your business will depend on for years, you are buying continuity as much as code: enforced code review, cover when someone is ill, and support that outlasts one person's career plans. Price the risk of a single point of failure, not just the hourly rate.
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.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
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.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
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.
What is the biggest mistake first-time software buyers make?
Choosing the lowest quote without asking why it is the lowest. A bid 40% under the field usually gets there by skipping tests, documentation, and code review, which are invisible in a demo and brutal to pay for later; every stalled project Digital Heroes has been asked to rescue tells some version of that story. The second mistake is signing without a written scope, which reliably turns the winning cheap quote into 1.5x to 2x the price by launch.
How do I calculate whether custom software will pay for itself?
Divide the build cost by the monthly benefit, where benefit is hours saved times loaded hourly cost, plus subscription fees replaced, plus any revenue the software unlocks. Three staff saving 10 hours a week each at a $40 loaded rate is about $62,000 a year, which pays back a $60,000 build in roughly 12 months. Across Digital Heroes internal-tool projects, 12 to 24 months is the normal payback range, and anything projecting under 6 months usually means the spreadsheet is hiding costs.
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?