Skip to content

Now partnering in every legal market, across the US and abroad.Talk to us [email protected]

Platform

The rules run before the money does

Written from primary sources and checked against them. As of 2026-09-06. How that is done.

Short answer

What does the Bloom register do that an ordinary till does not?

It prices the cart from the catalogue, runs the rule pack for that licence, and computes tax from rules published for that state, all before payment. A budtender learns a sale is refused while the customer is still deciding, and the refusal names the rule that caused it. Everything the engine decided is written down with the version of the rule that decided it.

What happens between the last item and the receipt

The employee session is resolved to a facility, a licence and a jurisdiction. The rule pack and the tax rules for that jurisdiction are loaded. The packages are locked. Anything not sellable, or belonging to another licence, is rejected. Prior purchases inside the rule's own window are gathered, using a calendar month when the rule says calendar month. The engine evaluates. Tax is computed per line. The tender is taken. Then the receipt, the lines, the tax lines, the inventory decrement, the ledger, the cash event, the evidence row and the queued state report are written in one transaction, so either all of it happened or none of it did.

Limits are measured the way the rule measures them

There are five different ways a state expresses a purchase limit and Bloom implements all five. Independent category caps. Everything converted to grams of flower. Everything converted to milligrams of THC. A shared allowance where each category consumes a fraction and the fractions must not exceed one. And a nested ceiling, where an ounce carries a tighter carve out for concentrate rather than an additional allowance.

That last one matters more than it sounds. Treating an ounce "of which not more than five grams may be concentrate" as two separate allowances permits a thirty three gram sale in a state that caps twenty eight, which is an unlawful sale that looks compliant.

Refusing is a recorded act

A block writes an evidence row before it refuses, so the record of what was prevented exists whether or not anyone remembers the shift. An override has to name the exact rule, carry a reason and an approver who is not the same person, and it is itself written down and surfaced in the inspection packet.

Questions people ask next

What happens when a sale is refused?
The screen names the rule that refused it, with the citation and a link to the state's own text, and says what would make the sale compliant where that is computable. A refusal is also written to the evidence log, because an inspector may ask about the sale you did not make.
Can a manager override a block?
Only by naming the exact rule being overridden, with a reason and an approver who is a different person. The override is time limited, written to the evidence log, and appears in the inspection packet. A blanket override does not exist.
How does it stop two registers selling the same gram?
The commit locks the packages before it re-evaluates. The second register is refused rather than taking the package quantity negative, which is the failure that makes a reconciliation impossible to explain later.
Is the quote trusted at payment?
No. Commit re-evaluates from scratch, because the cart may have changed, a rule may have been published, and another register may have sold the stock in between.
What if the internet drops mid shift?
The register keeps the current rule pack and tax table cached and signed, queues sales locally with an idempotent identifier, and drains them on reconnect. A sale the cached rules would refuse stays refused, because a cache must not become a way around the rules.