Implementation details that determine whether figures stay correct over months
rather than days.
- Concurrent sales
-
Two terminals selling the same product queue on the stock row. One completes,
the other is refused with the quantity actually available. Checked before each
release against parallel requests spread over several server processes.
- Money arithmetic
-
Totals, discounts and tax use fixed-point decimals rather than floating point,
to two places, rounded half up. Line totals always sum to the order total, and
an order discount is allocated across lines with the remainder placed on one
line rather than lost.
- Cost at the time of sale
-
Each sale line stores the unit cost that applied when it sold, so changing a
product cost today does not rewrite last month’s margin.
- All or nothing
-
A sale writes its number, lines, stock movements and log entry together. A
failure part-way through leaves none of it, rather than a sale with no stock
deduction.
- Separation between businesses
-
Every query is scoped to your business in the data layer, not by a filter each
screen has to remember to apply. Records are never identified by an id supplied
by the browser alone.
- Reversals, not deletions
-
Voids and refunds are separate records against the original sale. Products,
customers, suppliers and staff are archived rather than removed, so historical
documents keep their links.
- Your timezone
-
Timestamps are stored in UTC and every report converts to the business’s
own timezone, so a day boundary falls where you expect it.
- Getting your data out
-
Sales, product performance, expenses and inventory export to CSV from inside
the app, including while an account is read-only.