Tiraverse logo

Case Study

SFA & Logistics Platform

A national distribution company in the medical supply sector was spending 17 hours per day processing orders and invoices across disconnected systems. We replaced the entire operation with a single, purpose-built platform.

94%

Reduction in daily processing time

Sector

Medical distribution

Scale

Thousands of orders daily

Codebase

18,000+ lines of Python

Deployment

On-premise, client-owned

The Challenge

Our client is a national distribution company operating in the pharmaceutical and medical supply sector. The business handles a high volume of orders daily, sourced from a wide range of partners and delivered across an extensive distribution network.

When we first spoke with them, their operations were running on a collection of disconnected systems — a legacy ERP, manual spreadsheets, email inboxes, and paper-based records that had accumulated over years. Every incoming order, regardless of how it arrived, required a member of staff to read it, interpret it, and manually re-enter the relevant details into the business's own systems.

The problem was compounded by the variety of formats involved. Orders arrived by email, as attached PDFs, over the telephone, and through EDI integrations with larger partners. Each format had its own quirks, and staff had to handle them all differently. Invoice matching — reconciling supplier invoices against orders placed and goods received — was entirely manual and had grown to consume 17 hours of staff time per day across the team.

There was no unified view of the order pipeline. At any given moment, nobody could say with confidence exactly where a given order stood: whether it had been received, processed, dispatched, or delivered. Questions that should have taken seconds to answer required staff to chase through email threads, check spreadsheets, and make phone calls.

The consequences were predictable. Errors crept in. Duplicate work happened. The team was focused on data entry rather than customer relationships or operational improvement. Scaling the business would have meant hiring more people to do more of the same manual work.

The Solution

We designed and built a comprehensive SFA and logistics platform tailored specifically to this client's operational structure — not a configured off-the-shelf product, but a system written around how their business actually works. The platform handles the full order lifecycle, from the moment an order is received to the point it is delivered and reconciled.

The codebase runs to over 18,000 lines of Python with more than 335 discrete functions, covering every layer of the operation: ingestion, processing, matching, dispatch, reporting, and administration. It runs on the client's own servers. No third-party cloud subscription. No vendor dependency. The client owns the software and the infrastructure.

Multi-format order ingestion

Orders arrive in four distinct formats: email body text, PDF attachments, manual entry by staff, and structured EDI feeds from larger trading partners. The platform parses all four. Email orders are read automatically from connected inboxes; PDFs are extracted using document parsing logic trained on the client's own supplier formats; EDI feeds are ingested via a standards-compliant parser; and a clean web interface allows manual entry for telephone orders. Every order, regardless of origin, enters the same processing pipeline.

Intelligent invoice parsing and article matching

Supplier invoices are parsed automatically. The system extracts line items, quantities, unit prices, and totals, then cross-references each line against the client's internal article catalogue. Where a supplier's product code or description differs from the client's own naming convention — as is common in pharmaceutical distribution — the matching engine handles the translation automatically. Ambiguous matches are flagged for a single human decision rather than requiring end-to-end manual processing.

Order lifecycle tracking

Every order moves through a clearly defined set of states: received, processed, allocated, dispatched, and delivered. The platform tracks this progression in real time and makes it visible to every relevant member of staff. Status changes are timestamped and logged. Any staff member can pull up the current state of any order in seconds, without contacting a colleague or searching through email.

Partner and supplier management

The platform maintains a centralised registry of all partners and suppliers, including contact details, order format preferences, pricing agreements, and historical transaction records. Onboarding a new supplier — including configuring how their documents will be parsed — is handled within the system itself, without requiring developer involvement.

Sales analytics and reporting dashboard

Management has access to a real-time analytics dashboard covering order volumes, processing throughput, revenue by partner, product performance, and trend analysis over time. Reports that previously required manual compilation from multiple sources are generated on demand. The dashboard is available to authorised users from any device on the internal network.

Role-based access and full audit trail

Different roles within the business — warehouse staff, account managers, administrators, and management — see different views of the system, with permissions set accordingly. Every action taken within the platform is recorded with a timestamp and the identity of the user who performed it. This audit trail satisfies the client's internal compliance requirements and supports GDPR accountability obligations.

Technical Approach

The platform is built in Python using a Flask application server, backed by SQLite in WAL mode for reliable concurrent access and JSON-based stores for configuration and catalogue data. The architecture was chosen specifically to suit on-premise deployment on commodity hardware: no database server licensing, no container orchestration overhead, and a straightforward operational footprint that the client's own IT team can maintain.

The server-rendered interface is built with Jinja2 templates and Bootstrap 5, keeping the front end simple and predictable. This was a deliberate choice: when the primary users are warehouse and office staff who need to work quickly without training, a familiar, conservative interface outperforms a technically impressive one.

Data never leaves the client's premises. There is no reliance on external APIs for core functionality, and the system continues to operate fully during internet outages — a practical requirement for a distribution operation that cannot afford downtime.

The Results

The platform went into full production use across the client's operations. The impact was measurable from day one.

94%

Reduction in processing time

< 1 hour

Daily processing (was 17 hours)

Seconds

Per order (was minutes each)

Full

GDPR audit trail in place

The 17 hours of daily manual processing collapsed to under one hour. Orders that previously required minutes of individual attention — reading, interpreting, and manually entering data — now process in seconds. The team is no longer a bottleneck in the distribution chain.

Staff who spent their days on data entry are now focused on customer relationships, partner management, and the kind of work that genuinely requires human judgement. The reduction in repetitive work has also reduced errors — the system validates data at the point of ingestion rather than relying on staff to catch discrepancies under time pressure.

The client now has visibility over their operation that simply did not exist before. Management can see order throughput, processing times, and revenue trends in real time, without asking anyone to compile a report. The audit trail and GDPR-compliant data handling gave the client's compliance team the assurance they needed without any additional tooling.

What This Project Shows

Distribution businesses at this scale often assume that solving operational complexity requires an expensive, all-in-one enterprise platform. In practice, the right solution is usually more focused: a system built around the specific workflows that are causing the most friction, rather than a generic product that must be configured to approximate how the business actually operates.

The investment in a bespoke platform paid for itself rapidly. The hours recovered — 16 per day, every working day — represent a substantial and ongoing saving, quite apart from the improvement in accuracy and the new analytical capability the platform provides.

On-premise deployment was not a compromise. For a business handling commercially sensitive pharmaceutical distribution data, keeping all data on their own infrastructure was the right call — both operationally and from a regulatory standpoint. The system does not need a cloud subscription to function, and it will not break if a third-party service changes its pricing or terms.

Interested in this type of solution?

Read more about our SFA and logistics capabilities, including how we approach order ingestion, invoice automation, and on-premise deployment.

View the SFA & Logistics Solution →

Facing a similar challenge?

Book a free 30-minute consultation and we will give you an honest assessment of what automation could save you.

Get in Touch