> For the complete documentation index, see [llms.txt](https://crushsuite.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://crushsuite.gitbook.io/docs/compliance/state-compliance-reference/how-the-state-compliance-engine-works.md).

# How the State Compliance Engine Works

### What the Engine Does

At every compliance checkpoint (state selection, product browsing, cart update, pre-checkout), the engine evaluates:

1. **State eligibility** — Is the merchant licensed to ship to this state? Is the state enabled in CrushSuite?
2. **Product restrictions** — Are there specific products that can't ship to this state based on type, ABV, or category?
3. **Quantity limits** — Does the current cart comply with per-shipment limits? (Cumulative monthly volume limits are enforced downstream by Vinoshipper, not here.)
4. **Temperature holds** — Is there an active temperature hold preventing shipment?
5. **Dry county restrictions** — Is the customer's delivery address in a county that prohibits alcohol delivery?
6. **Address validation** — Is the shipping address valid and deliverable?

### How It Stays Updated

**Vinoshipper users:** State compliance data syncs from Vinoshipper, which maintains and updates state-level rules as laws change. When Vinoshipper updates a state's rules, the changes flow through to CrushSuite during your next sync.

**Self-compliance users:** You're responsible for keeping your state configurations current. When state DTC shipping laws change, update your settings in CrushSuite accordingly.

### What Data the Engine Uses

The engine cross-references:

* Your merchant-level state shipping configuration
* Product-level compliance attributes (ABV, volume, category, per-state restrictions)
* Customer data (shipping address, date of birth)
* Real-time state law data (from Vinoshipper or manual configuration)

### What the Engine Checks Before Checkout vs. After

Not every rule can be enforced before a customer pays. Knowing which is which prevents surprises.

**Checked before checkout (best effort):**

* Whether the destination state is enabled in your configuration
* Product-level state availability
* Per-shipment quantity limits on the current cart
* Age confirmation and address validity

**Surfaced after checkout, as a Vinoshipper order issue:**

* Cumulative monthly volume limits (9L / 12 × 750ml per customer per month)
* Destination-state licence and permit validity for that specific shipment
* Product-level restrictions that exist in Vinoshipper but did not reach CrushSuite in the last sync

An order in the second category will complete checkout and take payment. You will need to resolve it manually, and in some cases refund the customer. Check your Orders page in CrushSuite regularly rather than assuming a completed checkout is a compliant one.

### Disclaimer

CrushSuite enforces the rules you configure. It does not independently verify your licensing status or guarantee legal compliance. Work with your compliance counsel to ensure your configurations are accurate and current.

> 📸 **Screenshot:** Diagram showing the state compliance engine evaluation flow
