Pepulux
Case study

Building jewellery POS and ERP software: the DiamondOar case study

Why off-the-shelf retail software breaks at a jewellery counter, and what we built instead — gold-rate billing, exchange by weight and purity, and books an auditor accepts.

16 September 2026 · 7 min read · DiamondOar

The problem

A jewellery shop cannot run on ordinary retail software, and the reason is arithmetic. A price tag assumes the price is fixed. In a jewellery shop the gold rate moves during the trading day, so the same chain is one price at ten in the morning and another at four in the afternoon, with making charges and wastage layered on top.

The shops we spoke to were solving this with a calculator beside the till and a notebook behind it. It worked, in the sense that the shop stayed open. It also meant that nobody could answer a question about last quarter without reconstructing it.

Business context

We did not start DiamondOar as a product. A jeweller needed a system, we built one, and it became clear during the build that the problem was not specific to that shop — every jewellery counter in the region had the same three or four impossible bits.

That is the origin of the studio’s position: we stopped handing over files because this build only worked by staying with it.

Users

The person at the counter is not an accountant and is not going to read a manual. They are serving a customer, often with someone waiting behind them, and they need the common transaction to take seconds.

The owner has a different problem: they need to know what stock exists, what it is worth today, and whether the books will survive an audit.

Constraints

  • The gold rate changes during the day and every price depends on it
  • Part-exchange is routine, not an edge case, and is valued by weight and purity
  • Stock is two quantities at once: pieces and grams
  • Sri Lankan VAT has to be right at the point of sale, not reconciled later
  • Staff turnover means the till has to be learnable in an hour

What we built

Rate-aware billing, so the invoice and the day’s rate can never disagree. Gold-for-gold exchange as a first-class transaction: old gold valued by weight and purity, applied against the new piece, difference billed and the whole chain recorded. Inventory that tracks pieces and grams together so counts reconcile instead of drifting.

Underneath it, VAT applied at sale and an audit trail from every figure back to the entry that produced it.

UX and product decisions

We optimised the common sale, not the feature list. The transaction that happens two hundred times a week gets the fewest taps; the rare one is allowed to take longer.

We also refused a request more than once — the honest version of this case study includes that we argued about scope. Features that would have slowed the counter down did not ship.

Results

DiamondOar is live and running jewellery businesses today, including Haran Jewellers and New Velmurugan Jewellers, both named here with permission.

We are not publishing percentage improvements. We have not measured them in a way we would be willing to defend, and a number we cannot defend is worth less than the sentence above.

Lessons

The valuable part was not the code — it was sitting at a counter long enough to see which transaction actually hurt. Everything good in DiamondOar came from watching, and everything wrong in the first version came from assuming.