Industry guide · Supply Chain

Drayage Software: Stop Demurrage and Per Diem From Eating Your Margin

The short answer

If you are running 40 or more trucks out of two or more ports and your dispatch board still lives in Excel next to a Vector or Envase screen, a custom build usually pays back inside a year. Honest range from Digital Heroes delivery experience: a focused first release covering container lifecycle, chassis, per diem and appointment tracking runs $60k to $130k and ships in 12 to 16 weeks. A full drayage platform with driver app, terminal integrations, billing and customer portal runs $150k to $400k phased across 6 to 12 months. Below roughly 25 trucks and one terminal, stay on the off-the-shelf TMS and spend the money on people instead.

Why drayage software makes or breaks a container trucking operation

Drayage runs on clocks, not miles, and the software either tracks those clocks or your margin quietly walks out the gate. Last free day. Per diem free time on the chassis. The appointment window at the terminal. The pier pass cutoff. The customer's receiving hours. Miss one and the move that quoted at $475 becomes a $1,240 move with $600 of demurrage nobody will pay you for.

Here is what the stack actually looks like at a 60 truck operation running Long Beach and Oakland. Vector or Envase or Compcare handles the dispatch board and invoicing. Somebody has eModal, the terminal websites and TIR portals open in eight browser tabs. Appointment slots come from Voyage Control or the terminal's own booking page, and someone refreshes them by hand at 4am when the drops release. Container status comes from the steamship line site, or a spreadsheet the customer emails on Monday. Chassis pool balances live in a Google Sheet that one dispatcher maintains and nobody else fully trusts. Driver messages are on WhatsApp. Delivery orders arrive as PDFs in a shared inbox and a coordinator retypes container numbers, seal numbers, LFD and weight into the TMS at maybe 90 seconds each, and a transposed digit sends a driver to the terminal for nothing.

The scene that tells you everything: it is Thursday, 6:15pm. A dispatcher is comparing a terminal appointment page against a per diem billing statement against the TMS load list, on three monitors, by eye, because there is no single record that knows a container's last free day, its chassis start date, its appointment, and whether the customer's warehouse can even take it Friday. She finds two containers going into demurrage tomorrow. She catches those. She does not catch the third, because there is no query that could have caught it. That third container ran nine days of demurrage. Take whatever your terminal charges per day, multiply by nine, then by however many of those slip through in a month, and you are looking at real money leaking on the exact thing your software was supposed to prevent.

Problem 1: nothing owns the container as an object with clocks on it

Off-the-shelf TMS products model a load: pickup, delivery, driver, rate. Drayage does not work that way. One container might be a pull, a yard drop, a live unload three days later, an empty return, and a chassis flip in the middle. Each of those legs has its own clock and its own cost, and they all belong to the same container.

Because the incumbent tool models a load, dispatchers create four loads for one container and then keep the relationship in their heads. The last free day gets typed into a notes field. Chassis start date lives nowhere. When per diem invoices arrive from TRAC or DCLI 45 days later, nobody can dispute them because there is no defensible record of when the chassis left the pool and when it came back.

A custom build starts from the container as the root entity, not the load. Container number, size, type, steamship line, bill of lading, vessel, discharge date, last free day, per diem free days, chassis assignment with start and stop timestamps, appointment reference, and every leg hanging off it as a child. Then the clocks become computable. Demurrage risk stops being a note and becomes a field: days remaining until LFD, refreshed against terminal availability. Per diem exposure is a running dollar number per container, per customer, live. One screen: every container in the system ranked by dollars at risk in the next 72 hours. That query does not exist in the tools you are paying for, and it is the single highest value screen in the entire build.

Problem 2: appointments are a manual 4am job, and the slots are gone by 4:07

Terminal appointment systems release slots on their own schedule, and the good windows evaporate in minutes. So somebody sits on eModal refreshing, or you pay a person to work nights doing nothing but booking. If the container is not yet available, the appointment cannot be made. If the appointment is made but the container gets a hold, the slot is wasted and may cost a no-show fee.

Generic TMS platforms will not solve this because they do not want to own the terminal relationship. Some offer a booking integration bolted on the side, but it does not know your dispatch constraints: which driver is near which terminal, which chassis is under which box, which customer can actually receive Friday morning.

What a custom build does: a polling service against terminal availability and eModal, running continuously, matched against your own container list. When a container flips to available and its hold status clears, the system books against your priority rules automatically, at 4:03am, without a human awake. Priority rules you define: closest to LFD first, then highest per diem exposure, then customer SLA tier. This is the part of the build where a model does real work. It can read the messy signals, hold status text, terminal notes, vessel updates, and decide whether a slot is worth taking given the driver plan for that morning, rather than blindly grabbing the first open window. It also handles the after-hours booking window that you are currently staffing with a human, or losing entirely.

Problem 3: delivery orders arrive as PDFs and someone retypes them

Every customer sends the delivery order differently. Some are clean PDFs from a forwarder's system. Some are scans. Some are an email body with container numbers in a paragraph. A coordinator opens each one and retypes container number, seal, weight, LFD, commodity, delivery address, and appointment requirement into the TMS. At 200 containers a week that is roughly 5 hours of pure transcription, plus the errors, and a wrong container number means a driver goes to the terminal for nothing.

Incumbent tools offer EDI, which works beautifully with the two customers big enough to have EDI, and does nothing for the other thirty. So the manual channel stays.

Document extraction with a vision model is solved well enough to rely on now, and this is the clearest AI win in the category. A watched inbox, an extraction pipeline that pulls the fields, a confidence score per field, and a human review queue that only surfaces the low-confidence ones. Container number validation is free: the ISO 6346 check digit tells you instantly if the number is garbage before a driver wastes a turn. We build this so the coordinator reviews the exceptions instead of typing every document. The extraction also learns per customer, because the same forwarder sends the same layout every time, and once it has seen enough of that sender's documents the reviewer stops seeing them in the queue at all.

Problem 4: chassis are invisible until the bill arrives

Chassis is where drayage operators bleed and do not know it. A driver flips a chassis at a yard, nobody records it, and 45 days later a per diem invoice arrives from the pool for a chassis you gave back three weeks ago. You cannot dispute it, so you pay it. Nobody ever adds up the annual total of that, which is precisely why it keeps happening.

The off-the-shelf TMS has a chassis field, and a field is where data goes to be ignored. It does not track pool, ownership, in and out timestamps, flips, or which container was on it at each moment.

A custom build treats chassis as its own first-class entity with an event log: out of pool at timestamp, mounted to container X, flipped at yard Y, returned to pool at timestamp, with the driver's geolocation and photo attached at each event through the driver app. Now when the DCLI invoice hits, you run a reconciliation: their charged days versus your event log, container by container. Disputes go out with photographic and GPS evidence attached. Digital Heroes has shipped this reconciliation view on several logistics builds, and it is usually the feature the CFO points to when the project gets re-approved for phase two.

Problem 5: the customer calls, and you cannot answer

Your biggest account calls at 2pm: where are my 18 containers. The answer requires a dispatcher to check the TMS, then the terminal site, then a driver on WhatsApp. Twenty minutes for one call. You get that call fifteen times a day. That is a full-time person answering questions your software should have already answered.

Off-the-shelf portals exist but they show what the TMS knows, which is the load status a dispatcher last typed. They do not show terminal availability, hold status, or a real ETA.

The custom answer is a customer portal fed by the same container object: live status, LFD countdown, appointment time, driver ETA from the driver app's GPS, POD photo the moment it is taken, and per diem exposure visible to the customer so they stop blaming you for their own warehouse delays. Add proactive alerts: an email at 48 hours to LFD saying we need a delivery window or you will incur demurrage, with the dollar figure. That email single-handedly kills a category of argument. AI helps on the follow-up side: draft the exception notes and the customer updates from the event log, so a dispatcher approves a message instead of composing one from scratch.

What this costs and how long it takes

These bands are Digital Heroes delivery experience across 2,000-plus projects, not an industry survey. A focused first release, meaning the container object with clocks, chassis event tracking, appointment automation against one or two terminals, document extraction, and a driver app, runs $60k to $130k and ships in 12 to 16 weeks. A full platform, adding billing and per diem reconciliation, customer portal, EDI, multi-terminal, yard management and reporting, runs $150k to $400k phased over 6 to 12 months.

What pushes price up specifically in drayage: the number of distinct terminals you touch, because every terminal portal is its own integration with its own quirks and no two behave alike. Steamship line data, which ranges from a clean API to screen scraping. Chassis pool integrations, which are the least standardized data in the business. A driver app in two languages with offline capability, because drivers lose signal inside terminals and the app has to queue events and sync later. And multi-entity billing if you run separate operating authorities per port. What pushes it down: starting with one terminal and one chassis pool, proving the demurrage-risk screen pays, then expanding.

Build versus buy: take the honest position

Buy if you run under about 25 trucks, one terminal, and one chassis pool. Envase or Vector at their list pricing will cost you a fraction of a build and your volume does not generate enough clock-management pain to justify custom code. Buy also if your growth plan is to stay exactly this size.

Build when these signals show up together: you are past 40 trucks or 150 containers a week, you touch two or more terminals, you have a person whose job is substantially copying data between systems, and you cannot produce a per diem dispute with evidence. One more signal that decides it: when you have already bought a second tool to compensate for the first one, a separate appointment bot, a separate yard sheet, a separate billing spreadsheet, you are already paying for a custom system, just an unintegrated one held together by people. At that point the build is the cheaper option, and it is the one you own.

How to choose a developer for drayage software

Ask them to model the data before they quote. If their proposal has loads at the root and containers as an attribute, they have built freight software, not drayage software. The right answer puts the container at the center with legs, chassis events, and clocks hanging off it. This one question filters most of the market.

Ask specifically what they have integrated. Not "we do integrations." Which terminal portals, which chassis pools, which steamship lines, and what broke. Anyone who has actually done eModal or a TIR portal has stories about session handling and rate limits. Anyone who has not will say it is straightforward.

Ask how they handle the driver app going offline. Drivers lose signal inside terminals, every day. If the answer does not involve a local queue and conflict resolution on sync, they have not shipped a driver app that survived contact with a real yard.

Ask who owns the code and where the data lives. You want the repository in your organization, the infrastructure in your cloud account, and the container history exportable on day one. Also ask about FMCSA hours of service handling and how ELD data flows in, and if you move bonded or in-bond freight, ask what they know about CBP and ACE filings before you sign anything.

Research & sources

The evidence behind this guide

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

  1. In a survey of 579 supply chain professionals (July 31 to October 1, 2024), only 29% had built at least three of the five capabilities Gartner identifies as needed for future competitiveness (agility, resilience, regionalization, integrated ecosystems, and enterprise-wide strategy). Source: Gartner (2025) →
  2. 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) →
  3. McKinsey Global Institute estimated that about half of all work activities globally have the technical potential to be automated by adapting currently demonstrated technologies, though few occupations can be fully automated. Source: McKinsey Global Institute (2017) →
  4. 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) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

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

FAQ

Frequently asked questions

How much does custom drayage software cost for a 60 truck operation?
Expect $60k to $130k for a focused first release covering the container object with LFD and per diem clocks, chassis event tracking, appointment automation for one or two terminals, document extraction and a driver app. That ships in 12 to 16 weeks. A full platform adding billing, per diem reconciliation, customer portal and multi-terminal coverage runs $150k to $400k phased over 6 to 12 months. These are Digital Heroes delivery bands, not an industry average.
Is custom software better than Envase or Vector for drayage?
For under about 25 trucks at one terminal, no. Envase and Vector cover dispatch and invoicing at a fraction of build cost. Past roughly 40 trucks and two or more terminals, the gap shows up in what those tools do not model: chassis event logs, per diem exposure per container, and automated appointment booking against your own priority rules. That is where a custom build starts paying for itself.
Can custom drayage software integrate with eModal and terminal appointment systems?
Yes, and it is usually the highest value integration in the build. A polling service watches container availability and hold status, then books slots automatically against your priority rules, including at 4am when slots release. Be aware that every terminal portal behaves differently, and the number of terminals you touch is the single biggest driver of integration cost.
How do we migrate our container and customer data off our current TMS?
Export container history, customers, rate tables and open loads, then map them into the new container-centric model. The tricky part is not the export, it is that legacy records keep LFD and chassis data in notes fields, so a parsing pass is needed to recover it. Plan two to three weeks inside the project timeline for migration and a parallel-run period where both systems are live before cutover.
How long does it take to build drayage software from scratch?
A focused first release takes 12 to 16 weeks: container model, chassis events, appointment automation, document extraction and a driver app. Full platforms run 6 to 12 months phased. The realistic constraint is not engineering speed, it is terminal and chassis pool integration, which depends on portals and partners you do not control.
Who owns the code if we hire a developer to build our drayage system?
You should, without exception. Insist the repository sits in your organization, the cloud infrastructure runs in your account, and your container history is exportable from day one. If a developer proposes hosting your operational data on their platform with no exit path, that is a lock-in arrangement, not a custom build.
Can AI actually reduce demurrage and per diem charges?
Yes, in two specific places. Document extraction pulls container numbers, LFD and seal data off delivery order PDFs so nothing enters the system late or wrong, and automated appointment booking grabs slots the moment containers release, including overnight. The underlying win is still the data model: once the system knows every container's LFD and chassis start date, a ranked dollars-at-risk screen catches the boxes a human eye misses.
What compliance requirements matter for drayage and container trucking software?
FMCSA hours of service is the baseline, so ELD data needs to flow into dispatch planning rather than sit in a separate app. If you handle bonded or in-bond freight, CBP and ACE filing touchpoints matter. Port-specific programs also apply depending on where you run, and any driver app collecting GPS and photos needs a clear retention policy since that evidence is exactly what wins per diem disputes.
Should we build a driver app or use WhatsApp and phone calls?
Build it, once you are past roughly 40 trucks. The driver app is not about messaging, it is the capture point for chassis in and out events, geolocation and photos, which is the evidence that lets you dispute per diem invoices instead of paying them. It must work offline with a local queue, because drivers lose signal inside terminals every single day.
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.
We are a growing distributor. Should we pick SAP Business One or go custom?
If you need full accounting, purchasing, and inventory in one system today, SAP Business One is the faster path; if your pain is operational workflows the ERP handles badly, custom is usually the better spend. Business One gives you a proven ledger and stock control, but changing its workflows means paying certified consultants, and the customization quotes Digital Heroes clients share commonly run $150 to $250 per hour for changes you never own. A pattern Digital Heroes builds often is Business One or QuickBooks as the financial core with a custom order, warehouse, or logistics layer on top.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
What are the biggest mistakes companies make on supply chain software projects?
The top three: replacing every system at once instead of one workflow at a time, skipping data cleanup so the new system inherits years of bad SKUs and phantom stock, and designing screens without the warehouse staff who will use them daily. A fourth is underscoping integrations and discovering mid-project that the ERP connection is half the work. Digital Heroes sees more supply chain projects fail from scope and data problems than from any technical cause.
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.
What does it cost to maintain custom supply chain software each year?
Budget 15 to 20 percent of the original build cost per year, so roughly $9,000 to $12,000 annually on a $60,000 system, covering hosting management, dependency updates, bug fixes, and small enhancements. Across its maintenance contracts, Digital Heroes sees supply chain systems need more upkeep than typical web apps because carrier APIs, EDI specs, and ERP versions keep changing underneath them. Hosting itself is usually minor, often $100 to $500 per month for a mid-size operation.
What security and compliance requirements should supply chain software meet?
At minimum: role-based access control, encryption in transit and at rest, audit logs on inventory and order changes, and tested backups, because the system holds supplier pricing and customer purchase history your competitors would love to see. If enterprise customers connect to it, expect security questionnaires and possibly SOC 2 expectations; food, pharma, and aerospace add traceability rules like FDA lot tracking or ITAR data handling. Raise these in the first scoping call, since retrofitting audit trails onto a live system costs far more than designing them in.
Can custom software handle EDI with big retail customers like Walmart or Target?
Yes, and this is one of the most common reasons distributors go custom, because retailer scorecards penalize late or malformed documents. The typical build covers EDI 850 purchase orders in, 855 acknowledgments, 856 advance ship notices, and 810 invoices out, usually through a network like SPS Commerce or TrueCommerce rather than raw AS2. In Digital Heroes builds, onboarding your first major retailer adds 4 to 8 weeks and $10,000 to $25,000, with each additional trading partner far cheaper once the pipeline exists.
What tech stack is best for custom supply chain software?
Boring and mainstream wins: a typed backend such as Node with TypeScript, Python, or C#, PostgreSQL for transactional inventory data, a React web frontend, and hosting on AWS, Azure, or GCP. Real-time needs like scanner feeds or live shipment tracking add a message queue such as Redis or RabbitMQ. Be wary of any agency pitching an exotic stack; in Digital Heroes handover work, systems built on niche frameworks are consistently the hardest and most expensive for a new team to take over.
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?