Logistics & supply chain
Logistics software is an integration problem wearing a UI.
The dashboard is the easy part. The hard part is that your largest customer sends an EDI 856 through a value-added network older than most of your engineers, your carrier rates arrive from three REST APIs that disagree about what a valid address is, and your driver is in a dead zone holding a signed proof of delivery on a phone with no bars. That’s what custom logistics software development has to solve.
Carriers, warehouses, inventory
Where the quoted rate and the invoiced rate stop matching.
Carrier API integration looks trivial until you compare a quote with an invoice. FedEx, UPS and DHL each expose rate, label and tracking endpoints with their own OAuth lifecycles, their own address models and their own opinion about what counts as residential. Address validation is the quiet killer. A normalisation that silently reclassifies a commercial address as residential adds a surcharge you never quoted, and it doesn’t return an error while doing it. Dimensional weight does the rest, since billable weight is the greater of actual weight and volume divided by the dimensional divisor in your contract, 139 being the common US domestic figure. Add address correction fees, liftgate, delivery area and fuel surcharges, and the gap between what you charged the customer and what the carrier billed you becomes a monthly reconciliation job. Design for it on day one rather than bolting it on in month six.
Label generation deserves the same respect. Creating a label is a financial event rather than a PDF render. Once it’s manifested the carrier can bill it whether or not the parcel ever moves, void windows are finite, and a naive retry loop that generates duplicates on timeout costs real money before anyone notices. Idempotency keys on every rate and ship call, and a stored carrier response for every label, are not optional here.
On the warehouse side the first question is which system owns what. A WMS owns location-level stock, licence plates, putaway and pick paths. An ERP owns the financial value of inventory and the purchase and sales orders. Your application usually owns the promise you made to a customer, and that’s the only one of the three you should store as truth. Writing directly into a WMS database is a decision you regret at the first vendor upgrade, when your inserts bypass the triggers maintaining their allocation tables and you discover the support contract no longer covers you.
Then the data-model problem this vertical owns outright. Inventory is an eventually-consistent number rather than a fact. On-hand, allocated, available-to-promise and in-transit are four different quantities that disagree at any given second. Soft reservations expire, hard allocations don’t, cycle counts reconcile against a physical reality neither system observed, and a picker who can’t find a case creates a short-ship that has to unwind an allocation, a customer promise and possibly a payment. Model reservations explicitly with expiry, keep an event log of every quantity change, and never expose a single integer called stock to your checkout.
Route optimisation
Anyone promising optimal routes is selling you a heuristic.
What you’re asking for is the vehicle routing problem with time windows and capacity constraints. It generalises the travelling salesman problem, it’s NP-hard, and exact methods stop being practical well below the size of a real urban fleet. You’re running a heuristic either way. The question is which one, and what it costs you.
In practice: a Clarke-Wright savings or cheapest-insertion pass to reach a feasible plan quickly, then local search with 2-opt, Or-opt, relocate and swap moves, then a metaheuristic such as large neighbourhood search or guided local search if you can afford the runtime. Google OR-Tools covers most of that without anyone writing a solver. The tradeoff is blunt. Five seconds of search and five minutes of search usually differ by a few percent of distance, and dispatchers care far more about a plan that stays stable between runs than about those few percent.
Two things sink these projects. First, the travel-time matrix. Five hundred stops means 250,000 pairs, and live traffic matrix calls are typically the largest running cost in the whole feature, so cache aggressively and batch. Second, the objective function. Optimising pure distance produces routes drivers refuse to run. The real objective mixes driver hours and overtime, missed-window penalties, vehicle access limits and territory familiarity, and tuning those weights against your own historical days is the work that decides whether anybody uses the output.
The regulatory surface
What the rules demand of the architecture.
Not a summary of the law, which your counsel owns. These are the points where a regulation reaches into the data layer and changes what you have to store, log, retain and prove.
FMCSA ELD mandate
49 CFR Part 395, Appendix A
If your app records duty status it’s an electronic logging device, and you have to self-certify it against the published technical specification and register it on the FMCSA list. Most builds should read hours from an already-registered provider instead of becoming one.
Hours of service
11-hour drive, 14-hour window, 30-minute break
Planning constraints as much as compliance rules. A route plan that ignores the 14-hour window and the 60 or 70-hour cycle produces schedules dispatchers cannot legally run.
Records of duty status
Six-month retention, 49 CFR 395.8(k)
Retention is an architecture decision. Duty records and their supporting documents have to survive device loss, driver turnover and your own data-pruning job.
Customs and export filing
ACE, ISF 10+2, AES
Importer Security Filing data is due before vessel lading, not before arrival, so the system has to hold commercial-party and container-stuffing detail far earlier in the flow than a domestic-only build ever would.
Hazardous materials
49 CFR Part 172
Shipping papers and emergency response information must physically accompany the load. A digital bill of lading is an addition to the paper in the cab, never a replacement for it.
Food transport
FSMA sanitary transportation, 21 CFR Part 1 Subpart O
Written procedures, precooling and temperature records, and defined retention periods. Cold-chain telemetry stops being a dashboard and becomes an evidentiary record you must be able to produce.
Pharmaceutical distribution
DSCSA, EPCIS, GS1 identifiers
Unit-level serialisation and interoperable EPCIS event exchange between trading partners, plus authorised-trading-partner verification. Software doesn’t confer that status on anyone; the licence does.
Driver personal data
GDPR lawful basis, works council agreements
Continuous location is personal data about an identifiable employee. In Germany that means agreement with the works council before rollout, and everywhere it means retention minimisation and a documented purpose.
Being plain about the limits saves everyone a wasted call. EdgeBrain Studios is an engineering studio. We hold no SOC 2 attestation, no C-TPAT validation and no customs brokerage licence, and we are not a registered ELD provider. If your buyer or your insurer requires any of those, you bring the accreditation or the accredited vendor and we build against it: reading hours from a registered ELD platform rather than recording duty status ourselves, filing through a licensed broker rather than direct. Where the open question is whether a model belongs in a regulated step at all, that’s what an AI readiness assessment is for.
Budget and timeline
What a build like this costs.
Our published bands, in USD, with a $7,500 minimum on build work. The readiness sprint sits below that line and is credited back against the build. In this vertical one variable moves the estimate more than any other: how many external systems you have to speak to, and how badly each one behaves.
Integration readiness sprint
from $3,500
1 to 2 weeks
We map the real integration surface: which partners are on EDI and which are on APIs, which carrier contracts you hold, what your WMS or ERP will and won’t expose, and where the data model already contradicts itself. You get a written architecture and a build estimate, and the fee is credited in full against a build that starts within 30 days.
Integration pilot
from $8,000
3 to 4 weeks
One end-to-end slice running against real data. Usually a live 204 to 990 to 214 loop with a single trading partner, or rate shopping and label generation across two carriers, so the risky part is proven before the platform is scoped.
Platform build
from $28,000
10 to 16 weeks
The API-first core, the translation layer at the boundary, the operational dashboards and the position store. Most projects across the studio land between $18,000 and $45,000, and work of this shape sits in the upper half of that depending on how many partners and carriers are in scope.
Driver or warehouse app
from $20,000
6 to 10 weeks
Offline-first React Native, local queue, background location, scanning and proof-of-delivery capture. Priced separately because the sync layer is the expensive component and it deserves its own estimate.
Document extraction pipelines are priced as production workflows, from $12,000. Ongoing support runs from $2,500 per month, which in this vertical mostly buys somebody who notices a trading partner changed their 214 mapping before your customers do.
The bands above are estimates, shown in US dollars and drawn from comparable work already delivered, because no two projects carry the same scope. Your own quote is not an estimate: it is fixed in writing after scoping, before kickoff, and it does not move.
Send us the integration list.
Name the systems: the trading partners, the carriers, the WMS or ERP, the telematics provider. We come back with an architecture and a number inside two working days.