What leaves your shop, and what never does.
Stemalytics compares prices across shops. That only works if you can see exactly what is shared - so here it is, in full, with the mechanism that enforces it.
| Shared, anonymised | Never leaves your shop |
|---|---|
| What you paid per unit, by product | Your sales, revenue or transactions |
| Which vendor, and which region | Your customers, or anything identifying them |
| When you bought it | How much you bought |
| Your invoice numbers, totals or documents | |
| Your P&L, payroll or margins | |
| Your shop's name, attached to any price |
Price per unit, by product and vendor region, is the entire shared surface. Nothing else is sent, in any form.
A price has to be crowded before it appears.
A figure only appears in a benchmark once at least three different shops have bought that product, with at least eight purchases between them, and no single shop making up more than 60% of them. If any one of those fails, Stemalytics returns nothing - not a partial figure, not a greyed-out estimate. Nothing.
Your own prices are never withheld from you.
The threshold governs only the comparison figures drawn from other shops. Your own cost history is yours in full, from the first invoice you import.
Enforced in the database, not in a policy.
- Shops are counted by a one-way hash. To check the three-shop rule the system needs to know that observations came from different shops - not which shops. Each observation carries a hashed shop identifier used only for that count. It is never returned to any screen, any export, or any API response.
- Only arithmetic that balances contributes. A price reaches the shared pool only from an invoice whose lines, freight, tax and total reconcile to the penny. An invoice that does not balance may contain a misread price, and a misread price would corrupt the comparison for every other shop.
- The rule is in the query, not the interface. The threshold is applied where the figure is produced. There is no screen, no setting and no support action that can return a benchmark below it.
We can't look at your books without telling you.
Support can request temporary access to diagnose a problem. When that happens:
- You get an email at the moment it happens, naming the person and the reason.
- It expires within 24 hours, and cannot be extended without a fresh reason.
- It is read-only. Nobody can change your data through it.
- Every access ever granted stays listed in your settings, permanently.
We don't claim nobody can see your numbers. That claim stops being true the first time someone has to fix something. This one survives having employees, and you can check it.
Everyone contributes, everyone sees it.
Every shop contributes prices and every shop sees the result. Your data is not sold - not to wholesalers, not to anyone. If aggregate figures are ever published, they are published at the same thresholds that protect an individual shop here, and never in a form that identifies a shop or its buying.
Where this stands today
Stemalytics has one shop in it. Every benchmark on this page currently returns nothing, because three shops have not yet bought the same product. The threshold, the hashing and the access log are built into the schema rather than planned for later - but the network they protect does not exist yet, and saying otherwise would undercut the point of this page.
Not enough data yet