# 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 order comply with per-shipment and annual purchase limits?
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, order history for annual limits)
* Real-time state law data (from Vinoshipper or manual configuration)

### 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://crushsuite.gitbook.io/docs/compliance/state-compliance-reference/how-the-state-compliance-engine-works.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
