About Opsnic
One record of the business
Opsnic exists to remove the gap between what a retail business thinks is happening and what is actually happening by keeping buying, stock, selling, customers and money in a single connected system.
The problem we set out to solve
Most independent retailers do not lack data. They have plenty, but it is scattered. Purchase costs sit in a supplier's email. Stock lives in a spreadsheet that was accurate last Tuesday. Sales are in the till. Customer details are in a phone. Each record is individually defensible and collectively useless.
The cost of that fragmentation is not administrative inconvenience. It is buying more of something that is not selling, discounting an item that was never profitable, chasing an invoice that was already paid, and discovering at year end that the margin was never what it looked like.
Why fragmentation becomes risk
Costs decouple from sales
When purchase cost is not attached to the stock it bought, every margin figure afterwards is an estimate dressed as a fact.
Stock drifts from reality
Counts that are corrected without a recorded reason cannot be audited, so nobody learns where the loss came from.
Cash position goes stale
Receivables and supplier balances tracked separately from the sales and orders that created them are always slightly out of date.
Decisions become anecdotal
Without velocity and history per SKU, buying is driven by recent memory rather than by what actually moves.
The lifecycle we support
Each stage passes real data forward. Cost captured at receiving is what makes margin meaningful at the end; movement records are what make stock explainable.
Procurement
Suppliers, purchase orders, landing cost
Inventory
Catalogue, variants, stock on hand
POS
Cart, discount, checkout
CRM
Customers, history, segments
Invoicing
Branded invoices, delivery, reminders
Intelligence
Margin, forecast, reorder
Separation is not a feature
Opsnic is multi-tenant, which means several businesses are served by one system. That only works if isolation is structural rather than something a query remembers to do.
Scope comes from the session, not the request
A client cannot ask for another workspace’s data, because it has no way to name one. Tenant scope is carried by the signed token itself.
Absence, not denial
A record belonging to another workspace is reported as not found rather than forbidden, so its existence is never revealed by the error alone.
What we optimise for
Clarity
One number for one thing. If the dashboard and the stockroom disagree, the software has failed.
Control
Who may discount, adjust stock or see costs is explicit, and enforced by the server rather than by hiding a button.
Automation
Document numbers, cost batches, stock movements and message logs are produced by the system, not by discipline.
Actionable intelligence
A forecast that says “not enough history yet” is more useful than a confident number built on nothing.