Skip to content
Axiyana Digital

Case study

A multi-outlet retail POS that handles Sri Lankan tax correctly

Replacing branch spreadsheets and a tax workaround with one system that bills correctly, keeps selling offline, and gives head office a live stock picture.

2026Multi-outlet retail group, Western Province

The problem

What was happening

The group ran several outlets on a point-of-sale package written for another market. It could not apply VAT and SSCL in the correct sequence, so staff adjusted totals by hand and the accountant corrected them again at month end. Stock was counted separately at each branch and consolidated into a spreadsheet once a week, which meant head office was always reordering against figures that were several days old. When the connection dropped — which it did — the tills stopped.

The approach

What we did about it

In order, because the order is part of the answer.

  1. Ran a discovery phase across three outlets, documenting the actual billing sequence including the manual tax corrections staff had invented to work around the old system.

  2. Wrote a requirements specification covering tax behaviour at line and invoice level, offline tolerance, and inter-branch stock rules, and had it signed off before development began.

  3. Built the terminal application to operate against local data first, with background synchronisation and defined conflict-resolution rules rather than last-write-wins.

  4. Implemented VAT and SSCL as a configurable tax engine, so rate changes are a settings change rather than a code release.

  5. Migrated product and stock data from the previous system and spreadsheets, then reconciled it against a physical count at each outlet before go-live.

  6. Rolled out branch by branch, with the first outlet running in parallel with the old process for a week.

The stack

What it was built with

  • TypeScript
  • Node.js
  • PostgreSQL
  • Prisma
  • React
  • Docker
  • REST

The outcome

What changed

Described as what the system now does rather than as a percentage we cannot substantiate.

  • Receipts carry correct VAT and SSCL without manual adjustment, and period-end tax summaries export directly for filing.

  • Counters continue billing through connectivity outages and reconcile automatically when the line returns.

  • Head office sees live stock by outlet, replacing the weekly consolidated spreadsheet.

  • Inter-branch transfers require confirmation at both ends, closing the gap where stock previously went missing in transit.

  • Margin and dead-stock reporting is available per branch and per line, which was not previously possible at all.

Next step

Have a similar problem?

If any of this sounds like your business, tell us about it. The first conversation costs you nothing but an hour.