Corallis — a B2B portal for a lab services firm
Lab customers see their own prices with the working shown, request and approve quotes, place orders, upload sample manifests and pay invoices in one portal.
Full size- What I was testing
- I was testing whether one pricing function could keep every figure identical from the catalogue through quote, order, invoice, accounting and reports.
- What I found
- It can, but only with integer-cent maths and explicit rounding. A review caught a one-cent drift and a price cliff where 95 samples cost more than 96.
Corallis is a customer portal I built for a fictional lab that sells sequencing and analysis services to universities and biotech teams. It covers services and prices, quotes, orders, sample manifests, documents, invoices, team roles and reports, plus a staff console behind it. Every person, account and figure in it is invented too.
One price, shown with its working
Each customer belongs to a price group, and price per sample drops in volume bands. The main component, “Your price, worked out”, shows the steps: list price, volume band, group adjustment, unit price and line total. Every money figure in the portal comes from that one function. When a quote is issued, its lines are locked as a price snapshot, and the order and invoice copy the same lines. The staff console traces one order through catalogue, quote, order, checkout, a simulated QuickBooks invoice and reports, and a reconciliation check re-verifies every document.
What review changed
I put the first build through two review rounds, one on design and one on B2B pricing. They found real problems: half-up rounding gave $218.79 where the engine said $218.78, and the band boundaries meant 95 samples cost more than 96. The pricing now works in whole cents, and a line never costs more than the next band’s price. Open business questions became staff settings marked “Confirm in discovery”. The visual polish wave is still queued.
In the demo:
- Quote approval and orders over a purchaser’s limit
- A sample-manifest validator with a 96-well plate map
- Invoices paid by purchase order, card or bank transfer


