fuzzy

Methodology

What's tracked, how counts are computed, and where the dataset stops. Read this before you cite anything else on /pulse.

What is tracked

fuzzy periodically reads public online dispensary menus on Dutchie and Jane, the two platforms that host most U.S. cannabis retail menus. Cadence varies by source and scan dates are not synchronized. A “menu” is one source storefront, but published retailer totals merge matching storefronts into canonical physical doors. A retailer live on two platforms therefore counts once in a door total. This is not a count of all licensed dispensaries in a state: it includes only physical doors fuzzy observed through the public menus in the published snapshot. Every page names the contributing source-scan range.

How “doors” and growth are computed

A door is one physical retail location carrying a brand, not one platform listing: a retailer live on two platforms at the same address counts once, and so do its separate medical and recreational listings on the same platform. Doors gained/lost uses each included source's latest comparable completed scan pair. Source storefronts are merged to canonical physical doors before a gain or loss is counted, so one location is counted once even when it publishes on several platforms. A brand newly appearing on a retailer that was already tracked counts as a gain; disappearing from a retailer still being tracked counts as a loss. Two things are deliberately excluded from this number:

  • New-coverage rows. A retailer fuzzy just started tracking is not a brand gaining a door, it's fuzzy's crawler catching up. Counting it would make expanding our own coverage look like brand growth.
  • Single-run retailers. A retailer only seen in one of the two scrapes (the newer scrape missed it, or it just closed) never contributes a gain or loss, since there is no second data point to compare against.

Source scan dates are not synchronized. A movement total can combine several source-specific pairs with different start and end dates. The published comparison evidence therefore names the earliest included baseline and the date on or after which every included comparison scan completed; it does not present those two values as one synchronized window. It also names any source omitted for lacking a comparable pair. Missing comparability is reported as unavailable, never as zero movement.

Brand names are canonicalized before ranking. A brand and its sub-brand (e.g. a regional operator's house brand and its umbrella name) are merged so a top-N list never double-counts one brand as two rows.

Licensed storefronts, and what counts as one

Where a state page shows a licensed-storefront count next to the physical doors we track from menu data, that number comes from the state's own published cannabis license registry (California's DCC first, more states as their registries get pulled), refreshed monthly. It counts active retail (storefront) licenses only. Delivery-only licenses are tracked separately and never added into this number, since a delivery license doesn't carry a menu the same way a storefront does. Cultivation, manufacturing, distribution, and testing licenses aren't part of this count at all, they answer a different question. A state with no number shown here hasn't had its registry pulled yet, not zero licenses.

  • California: 1,267 active retail storefront licenses in the state registry as of October 1, 2026. fuzzy observed 531 physical doors on Dutchie and Jane as of November 2, 2026.

The two numbers answer different questions, one counts licenses and the other counts doors we saw a live menu for, so they won't always match. Our count is a floor, not a census. The other launched markets have no registry loaded yet.

Menus are matched to licenses by name and city, same idea as brand matching elsewhere on this site: an exact match, then a fuzzy match above a confidence floor, and anything underneath that floor sits in a review queue rather than getting counted either way. A license with no matched menu might mean we haven't found its menu yet, it might be delivery-only, or the registry might just be ahead of us. A tracked menu with no matched license is usually registry lag, not an unlicensed store.

Refresh cadence

Scrapes run periodically, not on one fixed calendar day, and each source can finish on a different date. Snapshot pages publish the contributing source-scan range; movement pages publish comparison evidence for source-specific scan pairs. These are source timestamps, not page-load timestamps. If no new scrape finishes, the evidence stays as it was instead of silently updating to look fresher than the data.

Honest limits

  • Two platforms outside California, three inside it, and not every licensed dispensary anywhere. Coverage is menu-backed physical doors we track, not a state's full retail footprint.
  • States are published only where coverage is deep enough to be meaningful. Currently live: Michigan, California, New York, Massachusetts, Missouri. Coming soon: Washington, Oregon, Colorado, Illinois, Arizona, New Mexico, New Jersey, Nevada.
  • A small share of tracked menus don't resolve to a known state. Those are crawler artifacts, not a market signal, and are excluded from every state-level figure on this site, though they may still contribute to a national total.
  • Test/demo storefronts used for internal QA are excluded everywhere on this site.

Coverage by state

Each row links to the same figure in the dashboard, computed live rather than typed in here by hand.

StateDoors tracked
Michigan667
California531
New York473
Massachusetts410
Missouri213
Methodology

Source menu scans October 26, 2026–November 2, 2026