Ship Agency and Port Call Software Problems: The 5 That Cost Real Money, and How to Avoid Them
The most expensive failure in a ship agency build is treating the proforma and the final account as two separate documents. When they are not the same object, a variance can only ever be explained in prose, and prose is what principals dispute. Every unrecovered variance on a call is margin the agency has already spent, and across a few hundred calls a year that quiet leakage exceeds anything the same team could save on efficiency. Agencies rarely know the number, which is precisely the problem.
Why do agency builds start with the port call workflow and stall before disbursements work?
Operations feels like the urgent problem, so the first specification describes the call: appointments, task lists, notifications, a status board, a message thread with the master. Six months later the agency has a competent coordination tool and is still arguing about final accounts in email, because the money side was scheduled for phase two and phase two got deferred.
This ordering happens because the coordination pain is visible daily and the variance pain is invisible annually. Nobody logs an unrecovered disbursement line. It just becomes a slightly worse month.
The fix is to build the disbursement object first and let the workflow attach to it. Model the call as a single object whose lines move from estimate, to commitment when the service is ordered, to actual when the supplier invoice is matched, each carrying a variance and a reason code. Once that exists, the operational tasks become events against the same object rather than a parallel system, and the status board is a byproduct instead of a build. Agencies that sequence it the other way end up with two systems and reconcile between them, which is the situation they were paying to escape.
If budget is genuinely constrained, build the tariff and disbursement layer only. For many agencies that alone resolves most of the pain at the lower end of the first release band, and the coordination side can wait a year without anything breaking.
What goes wrong when tariffs and historical disbursements are migrated?
Port charges are formulas: tonnage dues on a scale, pilotage by length overall and draught with night and weekend factors, towage by bollard pull and duration with a minimum, berth dues per metre per period. That logic currently lives in an experienced agent's head and in a spreadsheet nobody else opens. Modelling it is the real work of the project, and it is routinely quoted as data entry.
Two specific failures follow. The first is tariffs modelled as flat rate tables because a rate table imports quickly. Within a year the port revises its tariff, and because there is no effective date on the rule, every historical reconciliation silently changes. Variance analysis becomes meaningless and nobody notices for months.
The second is historical disbursements imported as totals. A closed call arrives as a single figure with no line structure, so it cannot be compared with anything, and the comparative reporting the agency actually wanted is not available on any historical call.
Model tariffs as versioned calculation rules with an effective date, and record on every proforma line which rule version and which inputs produced it. A call three weeks out then uses the tariff that will be in force, and a call being reconciled uses the one that applied at the time. For history, import only what has line structure, accept that older calls come across as reference documents, and be honest in the plan about which year your comparative reporting actually starts. Start with your top three ports by call volume, which usually covers most of your traffic and lets the modelling approach prove itself before you commit to the whole network.
Why do supplier invoice capture and accounting integrations break after launch?
Supplier invoices are where the operational time goes, and they are the integration everyone underestimates. They arrive as PDFs in dozens of layouts, from a national towage company with a structured format and from a launch boat operator at a small port whose invoice is a scan of a typed page. Document extraction proposes a match against commitments and a human confirms it, which works well. What breaks is the assumption that the proposal rate stays constant. A supplier changes their template, or a new supplier joins, and matching quality drops without anyone measuring it.
Accounting integration breaks for a different reason. Client money must reconcile exactly, so the interface is not a nightly summary post. Every receipt, disbursement, exchange difference and return has to land against the right call and the right principal, and any drift is a reconciliation problem rather than a reporting inconvenience. Chart of accounts changes made by the finance team without telling anyone are a common trigger.
Statutory filing is the third. Reporting has moved substantially towards electronic single window systems, including the European maritime single window environment consolidating reporting formalities for calls at member state ports. Each implementation has its own interface and its own validation rules, and those rules change. A filing that was accepted last quarter can be rejected this quarter on a field nobody has touched.
Treat all three as monitored surfaces. Track match rate per supplier and alert on a drop. Reconcile the ledger daily rather than monthly. And make filing rejections a visible queue with an owner, because a silent rejection becomes a berthing problem.
What happens when client money accounting and approval records are not covered?
Funds in advance sit in the agent's account and belong to the principal. Agencies that run this inside a general accounting package can produce a company position and cannot easily produce the position per principal per call, which is the only view that matters operationally.
The failure is not usually fraud or even error. It is timing. Nobody knows a call is underfunded until the vessel arrives and a supplier who has not been paid does not attend. The vessel is then delayed for a reason that has nothing to do with shipping, and the agency absorbs both the cost and the relationship damage. Multi currency makes it worse, because a receipt and a settlement weeks apart at different rates leave a difference that belongs to a specific party and is frequently absorbed by the agent because nobody tracked it.
Approval records fail the same way. A principal approves an overspend by email, the person who sent it leaves, and six months later the approval cannot be produced during a query. The disbursement is then argued from memory.
Hold funds as a ledger per principal per call, recording receipts, disbursements, exchange differences and returns against that call, and surface underfunded calls before arrival rather than after. Capture approvals in the system against the specific line and threshold, with the named approver, so the record survives the email account. Configure thresholds and approvers per principal, because they genuinely differ and re-keying into each principal's format is a cost most agencies have stopped noticing.
Should you build custom or configure what you already own?
Do not build if you are a single port agency handling a couple of hundred calls a year with a handful of principals. A disciplined proforma template, a good accounting package and one experienced agent will outperform anything you could afford, and we would tell you to put the money into staff. This is a genuinely small business and software will not change that.
ShipNet and Softship are serious agency and liner systems with real depth, and if your requirements sit close to how they already work, configuring one is a shorter road than a build. On the principal side, Marcura DA-Desk does a useful job auditing disbursement accounts at scale, and a shipping line whose only problem is inconsistent challenge across many agents should evaluate that before commissioning anything.
Build when you operate across several ports with different tariff regimes, when you handle enough principals that re-keying into their formats is a measurable cost, or when client money is large enough that your funds position needs to be knowable rather than reconstructable. Lines with an internal port cost function have a related case: their build is about recomputing expectations from tariffs so disbursements can be challenged consistently. Either way the trigger is identical, which is that the gap between what should have been charged and what was charged is currently invisible.
How do hidden costs get into the quote?
Ports are priced per port and quoted as a network. A tariff for a straightforward port is hours. A complex one with scales, night factors, extended stay charges and local exceptions is days, and it needs an agent's time as well as a developer's. Get the port list named in scope with a per port price and a defined process for adding one later.
Supplier invoice capture is the second. A quote covering invoice matching without naming an expected match rate, an exception queue and a rework path has priced the good invoices only.
Statutory filing is the third, and it is quoted as an integration when it is a specification exercise per jurisdiction. Each single window has its own fields and validations.
Then the ones that show up late. Accounting integration testing, which is heavier than expected because client money must reconcile to the currency unit. Principal onboarding, since every new principal format is configuration somebody has to do. Parallel running through a full month end so the funds position can be proven against the old process. And the ongoing cost of tariff maintenance, which is nobody's job until it is, and which quietly determines whether the system is still accurate in year three.
What separates a build that works from one that fails here?
Ask a prospective developer to model a disbursement on a whiteboard before you sign anything. A team that has done this draws one object whose lines move through estimate, commitment and actual with a variance and a reason on each, and asks within the first two minutes whether the funds are client money. A team that draws quotes and invoices has built an accounting tool and has not understood that the proforma and the final account are the same thing at different times.
Give them a real tariff, one with a scale and a night factor, and watch what they do with it. If it becomes a rate table with one amount per service, the system will be wrong within a year of the next revision and every historical comparison will move underneath you.
Ask how supplier invoices get matched and listen for extraction proposing a match against commitments with human confirmation, plus a named exception queue. Anything claiming full automation has not seen a launch boat invoice from a small port.
Settle ownership of the code, the cloud accounts and the tariff library in writing before kickoff. At Digital Heroes the client owns the code and the data from the first commit. The tariff models are your accumulated local port knowledge and are the most valuable thing in the system. A developer who wants to keep them as their platform content is taking the one asset that makes your agency worth appointing.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Inventory carrying cost commonly runs about 20% to 30% of inventory value, covering capital cost, storage/warehousing, insurance, taxes, handling, shrinkage, and obsolescence - a recurring cost that better inventory and warehouse software aims to reduce. Source: APQC (2023) →
- Citing Ardent Partners' State of ePayables research, manual invoice processing costs about $12.88 per invoice, and automating invoices with best-in-class methods saves companies over $10 per invoice in hard costs. Source: Bottomline Technologies (citing Ardent Partners) (2024) →
- Total US training expenditure rose 4.9% to $102.8 billion; learning management systems were used at 89% of organizations (90% of large, 97% of midsize, 84% of small companies), with average training at 40 hours per employee and $874 spent per learner. Source: Training Magazine (2025) →
- One in four US employees report lacking career advancement opportunities; 48% of employees who participated in mentorship programs report high job satisfaction versus 29% of non-participants, and access to advancement opportunities ranges from 33% at organizations under 10 employees to 74% at those with 1,000+. Source: Gallup (2025) →
Divyansh manages client relationships after a project starts, which is when expectations and reality meet. He runs check ins, unpicks confused requirements, and gets answers back to the build team quickly. For readers, he explains what good agency communication looks like and what to ask for when it goes quiet.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
How many ports should we model in the first phase?
Start with your top three by call volume, which in most agencies covers the large majority of traffic and lets you prove the modelling approach on real reconciliations before committing to the network. Adding a port later should be configuration by a trained person rather than a development ticket, so make that requirement explicit in the scope. If a developer cannot show you how a fourth port gets added without their involvement, the tariff model is not finished.
What happens to our numbers when a port revises its tariff?
Nothing, if the rules are versioned with effective dates. The new version applies from its effective date forward and every historical proforma keeps the rule version that produced it. Without versioning, a revision retroactively changes every past reconciliation, which is how variance analysis quietly becomes meaningless. Ask specifically how a mid month revision is handled, because ports do not align their changes to your reporting calendar.
Can we still compare this year against last year after migration?
Only for calls whose historical data has line structure. Totals imported without lines cannot be compared against anything, so be explicit in the plan about which year your comparative reporting genuinely begins. Most agencies import the last one or two seasons where the detail exists and keep everything older as reference documents attached to the call, which is honest and much cheaper than manufacturing structure that was never recorded.
How do we stop discovering an underfunded call at the quay?
Compute the funded position per principal per call continuously rather than at settlement, and surface calls that are short before arrival with enough notice to request funds. The operational consequence of missing it is not accounting: a supplier who has not been paid does not attend, and the vessel is delayed for a reason unrelated to shipping. This is usually the first thing the operations team notices working after go live.
Who carries the exchange difference between receipt and settlement?
It belongs to a specific party under your agency agreement, and the point of the system is that the amount is recorded against the call rather than absorbed silently. Hold receipts, disbursements, exchange differences and returns on one ledger per principal per call so the difference is visible and attributable. Agencies that only discover these at year end typically find they have been carrying them, which is a policy decision nobody actually made.
How well does automated invoice matching really work?
Well enough to be worth it and never well enough to run unattended. Extraction proposes a match against the commitment and a person confirms it, with anything unmatched landing in an exception queue. What matters more than the initial rate is monitoring it per supplier, because a template change or a new supplier degrades matching quietly and the first symptom is a slower month end rather than an error.
Do electronic single window filings reduce the work?
They move it rather than remove it. Reporting has consolidated substantially into single window systems, including the European maritime single window environment for calls at member state ports, and each implementation has its own interface and validation rules that change over time. The practical requirement is entering vessel and voyage data once and feeding filings, supplier orders and the disbursement from that record, plus a visible queue for rejections so a failed filing never becomes a berthing problem.
Who maintains the tariffs after the project ends?
Somebody in your agency, and it should be a named role rather than an assumption. Tariff maintenance is the difference between a system that is accurate in year three and one people stop trusting. Insist that rules are editable by a trained agent with an effective date and a change record, not by a developer on a support ticket, and check that requirement in the demo rather than in the proposal.
What can custom accounting software do that QuickBooks, Xero, and FreshBooks can't?
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
Will an app built for 10 users survive growing to 500?
How many developers does it take to build accounting software?
Can we migrate years of data out of our current system into new custom software?
Will custom accounting software scale as my company grows?
What happens to my accounting software if the agency shuts down?
What should I prepare before contacting an agency about accounting software?
Who can build a custom accounting software system?
Digital Heroes builds custom accounting 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 accounting 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.