Case Studies

Real problems, real solutions.

Here's a look at some of the work we've done recently. Client details are anonymised, but the problems, systems, and results are all real.

Unified Platform

Single platform replacing five disconnected systems

The Challenge

A UK distribution company was running operations across five separate systems — orders in one platform, accounting in another, stock levels in spreadsheets, purchasing decisions made on gut feel, and product data scattered across shared drives. Nobody had a single view of the business.

What We Built

We built a unified internal platform with 10+ modules covering stock management, sales analytics, purchasing, reorder workflows, product management, pricing, and CRM — all behind a single login. A proxy layer connects to multiple databases, while scheduled jobs sync data from the existing order management system every night.

Unified Platform mockup screenshot
Click to enlarge
0+
Modules built
0+
SKUs managed
0
Automated sync jobs

Results

✓ 10+ operational modules in one platform
✓ 10,000+ SKUs managed with live stock visibility
✓ Nightly automated data sync replacing manual exports
✓ Role-based access for sales, purchasing, and admin teams
Demand-Driven Reordering

Replacing Linnworks’ blind reorder with a demand-driven engine

The Challenge

Linnworks is a capable order and warehouse system, but as a re-order tool it leans on static, hand-typed min/max levels. For a 10,000-SKU battery distributor that meant overstock and stockouts at the same time — it reorders against on-hand (ignoring stock already on a live PO), treats one big trade order as steady demand, and never rounds to supplier minimums. Every suggestion a black box nobody could trust.

What We Built

We built a demand-driven reorder engine on top of the live Linnworks data. A two-formula model (just-in-time vs forecast-driven) counts stock already on order, sizes against per-supplier lead times and order cycles, and scores every line for confidence — so lumpy, spiky demand is flagged for a human instead of silently over-ordered. Cost and margin run off a best-available-cost priority chain, and the whole thing stays read-only: Linnworks remains the system of record.

Demand-Driven Reordering mockup screenshot
Click to enlarge
BeforeAfter

Linnworks reorder

✗Static, hand-typed min/max levels
✗Reorders against on-hand — double-orders stock already on a PO
✗Treats one big order as steady demand
✗Raw quantities, ignores MOQ and pack sizes
✗Black box: re-verify every line by hand
£0
Live stock value managed
0
SKUs flagged for review
0%
Stock value costed from a real PO

Results

✓ Open-PO blindness fixed — stock on order counted before anything new is raised
✓ 1,051 of 2,224 active SKUs auto-flagged Low confidence for review
✓ Every suggestion shows its working — confidence score plus derivation, not a black box
✓ 76% of stock value costed straight from a real purchase order
Customer Intelligence

From zero customer visibility to automated account health scoring

The Challenge

A distribution company's sales team had no way to see which accounts were growing, declining, or about to churn. Customer data was fragmented into thousands of duplicate records due to a name-matching bug that had been silently dropping every matched order for months.

What We Built

We built an account health engine computing rolling revenue windows (7/30/90/365 day), value tiers (A/B/C), churn risk scores, and channel mix. Fixed a critical data bug, cleaned thousands of duplicates, and added account manager assignment with automated reconciliation.

Customer Intelligence mockup screenshot
Click to enlarge
BeforeAfter

The old way

✗No visibility into account health or trends
✗Thousands of duplicate customer records
✗Orders silently failing to match (bug undiscovered for months)
✗No account ownership — leads fell through cracks
✗Revenue data only available via manual spreadsheet compilation
0
B2B accounts tracked
0
Duplicate records cleaned
0
Automated nightly jobs

Results

✓ Critical silent data bug discovered and fixed
✓ Thousands of duplicate records consolidated to clean 1:1 mapping
✓ 975 B2B accounts now tracked with automated health scoring
✓ Nightly automated pipeline: sync, snapshot, cleanup, and reconciliation
Stock Reconciliation

Closing a £605K gap between two inventory systems

The Challenge

A distribution company discovered a £605,000 valuation gap between their accounting system and warehouse platform. Different costing methods, quantity mismatches on 629 SKUs, and truncation issues meant nobody could trust either number.

What We Built

We built an automated reconciliation engine with multi-tier SKU matching (exact, case-insensitive, prefix, whitespace-normalised) that handles the quirks of both systems. Outputs multi-tab workbooks with discrepancies ranked by value impact.

Stock Reconciliation mockup screenshot
Click to enlarge
£0K
Starting valuation gap
0%
Reduction in discrepancies
0
Remaining mismatches

Results

✓ Quantity discrepancies: 629 → 24 (96% reduction)
✓ Value at risk: £334,935 → £5,849 (98% reduction)
✓ Multi-tier matching handles both systems' data quirks automatically
✓ Reconciliation that took days now runs in minutes
Workflow Automation

Digital trade account applications replacing email chaos

The Challenge

New B2B customers applied for trade accounts via email — no tracking, no workflow, no audit trail. A silent bug in the original form meant submissions could show "success" to the customer while never reaching any backend.

What We Built

We built an end-to-end digital workflow: a multi-step application form generating signed PDFs client-side, posting to a database with email confirmations. An admin dashboard with role-based access tracks every application through a defined status pipeline with full audit logging.

Workflow Automation mockup screenshot
Click to enlarge
BeforeAfter

The old way

✗Applications submitted by email with no structure
✗No status tracking — "where's my application?" unanswerable
✗Submissions silently failing without anyone knowing
✗No audit trail or workflow stages
✗Manager assignment via informal handover
0
Workflow stages tracked
0
Applications lost since launch
0
Admin roles with enforced permissions

Results

✓ Zero applications lost — triple-retry with explicit failure handling
✓ Full audit trail from submission to approval
✓ Role-based admin dashboard with manager assignment
✓ Automated email notifications at every stage
Customer-Facing System

Warranty and returns system with customer self-service tracking

The Challenge

Warranty claims were handled entirely by email — no structured process, no SLA tracking, no way for customers to check claim status. The team was losing track of claims and missing deadlines.

What We Built

We built a complete warranty management system: separate trade and retail claim forms with photo uploads, a staff dashboard with editable email templates and SLA tracking, customer-facing tracking pages with direct URL links, and printable return labels.

Customer-Facing System mockup screenshot
Click to enlarge
0
Versions shipped
0
Photos per claim (max)
0
Data fields tracked per claim

Results

✓ Customer self-service tracking via direct URL links
✓ Separate trade (RMA-T) and retail (RMA-R) workflows
✓ SLA tracking with automated status updates
✓ Printable return labels generated per claim
Security & Data Protection

Enterprise-grade security built into every system

The Challenge

Every system we build handles sensitive business data — customer records, financial information, supplier pricing, and internal operations. SMEs often lack the resources to implement proper security, leaving API keys exposed, access controls missing, and no audit trails.

What We Built

Security is built into every project from day one, not bolted on afterwards. We implement role-based access control with row-level security at the database layer, encrypted API key management via environment variables and service accounts, JWT authentication with signed tokens, time-limited signed URLs for sensitive documents, full audit logging on every state change, and triple-retry submission patterns with explicit failure handling to prevent silent data loss.

0
Access roles enforced
0h
Signed URL expiry
0
Security incidents

Results

✓ Row-level security enforced at the database — not just the UI
✓ API keys stored as encrypted environment variables, never in code
✓ JWT/RS256 service account authentication for third-party integrations
✓ Time-limited signed URLs for sensitive documents (24h expiry)
✓ Full audit trail on every status change and data modification
✓ Role-based access: admin, manager, sales, purchasing — each sees only what they should

Got a similar problem? Let's talk about it.

Book a free discovery call