You just signed your first control state. Somebody on the commercial side told you the data is easier there, because the state runs the stores and the state publishes numbers. Then you asked for the file, and what came back was a PDF with a filename like CRO000002_Report_20250401.pdf.
That is the whole experience of control-state data in one sentence. More of it is public than in any open state. Almost none of it is shaped like something you can load.
We’re gmware, a software and data engineering firm in Austin, TX, with delivery centers in Bangalore and Mohali, India. We also run Shield Suite, our retail-intelligence platform for beverage-alcohol brands across 60,000+ storefronts. This post is the part nobody writes down: not the legal explainer, not NABCA’s own materials, but the engineering reality of pulling control-jurisdiction data into the same warehouse as everything else you track.
| Term | What it is in one line |
|---|---|
| Control jurisdiction | Government occupies a tier of the trade, at wholesale and often off-premise retail |
| Open / license state | Private wholesalers and private retailers, licensed by the state |
| NABCA | The control jurisdictions’ own association, which organizes their reported data |
| Control State Code | NABCA’s identifier for a brand and size sold in the control states |
| PLCB | Pennsylvania Liquor Control Board, the largest and most public of them |
| Franchise law | Wholesaler protection statutes, a separate axis from control |
Why control changes what data exists at all
In an open state you sell to a private wholesaler who sells to a private retailer. Nobody in that chain has any obligation to hand you a file, and the shelf is a black box unless you go measure it. That’s the situation our on-premise vs off-premise data guide works through from the channel side.
In a control jurisdiction, one of the tiers is a government agency. Governments keep records, publish reports, and answer to auditors and legislatures. So the same transaction that vanishes into a private wholesaler’s ERP in Texas gets recorded by a public body in Pennsylvania.
That is the entire reason control-state data feels abundant. Not generosity. Public accounting.
It also sets the ceiling. A state agency records what a state agency does. Wholesale tier, wholesale movement. Runs the stores too, and you get its own retail. Whatever the private licensees sell alongside those state stores is simply not in the file.
Nobody agrees on how many control states there are, including NABCA
This is worth getting right, because the number gets quoted confidently in decks and it does not survive a click-through.
NABCA’s own control state directory says in its introduction that “Seventeen states and jurisdictions in Alaska, Maryland, Minnesota and South Dakota adopted forms of the ‘Control’ model.” A section heading further down the same page reads “18 Control Jurisdictions,” and the directory below it carries eighteen entries, one of which is Montgomery County, Maryland rather than a state. Two of the individual write-ups on that page describe their state as one of 17; another says one of eighteen. Wikipedia’s control state article puts the count at 17 and lists seventeen states with no Maryland entry at all.
None of these is wrong. They’re counting different things, and the definitions fork three ways.
Wholesale against retail is the first fork. NABCA’s page says all of these jurisdictions exercise control at the wholesale level, and that “Thirteen of those jurisdictions also exercise control over retail sales for off-premises consumption,” through government-operated package stores or designated agents. Second, which beverages: the agencies control distilled spirits and, in NABCA’s wording, “in some cases, wine and beer.” Idaho’s control applies to beverages above 16% alcohol, which is a threshold rather than a category. Third, what even counts as a jurisdiction. NABCA’s directory carries an entry for Montgomery County, Maryland while stating plainly that “Maryland is considered a license state,” and Minnesota’s control is municipal, in small cities that opened their own stores.
So if you need a number in a slide, cite it to a source and say which definition you used. If you don’t need a number, describe the categories instead. We’d rather do the second thing.
The control footprint, as NABCA states it
What NABCA is, and what its data is not
NABCA is the association the control jurisdictions belong to. Its own site describes it as a forum for alcohol control systems, government agencies, public health organizations, media, and industry, and describes its analytics work as gathering, validating, and organizing data that helps guide policy and inform choices about inventory, sales, and pricing.
Two things it publishes are directly useful to know about even before you talk to anyone:
Control State Codes. NABCA describes these as “a unique code identifying alcoholic beverage BRANDS and SIZES sold in the Control States.” Read that carefully, because it’s the most load-bearing sentence in this post. A shared brand-and-size identifier across the control jurisdictions is a real gift. It’s also scoped to the control jurisdictions. It is not a UPC, it is not a retailer SKU, and it does not follow your product into an open state. So it becomes a column in your product master, not the primary key of it.
A data availability table. NABCA posts a SAM data availability page: a grid of jurisdictions against a load date and the periods currently available. Spend ten minutes on that table and you learn more about this data than any explainer will teach you. We’ll come back to it in a second.
Now the part that matters more than any of it. NABCA data is reported movement and reported sales from control agencies. It is not a shelf feed. It carries no facing count, no display verification, no promotional-execution evidence, and no consumer price from the store next door in an open state. If your question is “did my program actually get built in that store,” this is the wrong dataset, and it will stay the wrong dataset no matter how much of it you buy.
What it costs and what you’re allowed to do with it afterwards, we won’t guess at. Ask NABCA directly. Licensing terms for industry data get negotiated, not posted.
Read the availability table before you scope the project
Four things in that grid matter to whoever builds the pipeline.
The same state appears more than once. Pennsylvania has a standard row, a separate row labelled as a calendar month, and a third labelled PA-SLO that runs on a seven-day period instead of a month. Utah likewise has a standard row and a calendar-month row. Oregon, Maryland, and North Carolina each split into a store-level line and an account-level line.
Read that again: “Pennsylvania data” is not one thing, and the calendar-month variant existing at all tells you the default is something other than a calendar month. If your dashboard joins a control-state month to a retail 4-4-5 month to a distributor’s Saturday close, you have built three different definitions of July into one chart.
The columns diverge too. The table carries a Green Book period alongside the account-data period, and the account-level rows for several jurisdictions carry no Green Book period at all. So the richer grain and the richer measure set do not always arrive together.
And the latency spreads. For a single reporting month, the load dates across jurisdictions in that table fan out over about three and a half weeks, from under a fortnight after period close to well over a month. The weekly Pennsylvania line lands within days of its period closing. Which means a national control-state rollup is only as fresh as its slowest member, and if you refresh on a fixed date you will silently publish a month where some states are in and some aren’t.
Control jurisdiction vs open state, four dimensions
Pennsylvania, the marquee case
The PLCB is the one worth studying because it publishes the most and demonstrates the format problem most vividly. Everything below is on its Reports and Publications section or the state’s open data portal.
| What PLCB posts | Format | Cadence |
|---|---|---|
| Quarterly price listing | Quarterly, Jan/Apr/Jul/Oct | |
| Method and rationale for product pricing | Annual | |
| FWGS store sales by county | Open data portal | Annual figures, by fiscal year |
| Malt and brewed beverage report | Report page | Listed as monthly |
The quarterly price listing runs back to late 2016 without a gap, which is a genuinely useful decade of price history sitting in the open. It is also forty-odd PDFs served from an application host, some of the links still on plain HTTP, filenames generated by a report engine, and no published column definitions. If you want that history as a time series you are writing a PDF parser and then hand-checking it, because a layout change between quarters will silently shift your columns and you will not get an error, you will get wrong numbers.
The pricing-methodology report is annual and exists because Act 39 of 2016 requires it. Useful context for why a price is what it is. Useless as a feed.
The county sales dataset is the sharpest lesson. It gives dollar sales at state Fine Wine & Good Spirits stores by county and fiscal year. Then it tells you the figures include the 18% liquor tax but exclude state and local sales taxes, and that they leave out licensee service center sales, FWGS.com orders, off-site wholesale transactions, and Lottery sales. Every one of those exclusions is defensible. Together they mean the number is not comparable to any other number you have, including a different Pennsylvania report. Read the exclusion notes before you put a control-state figure next to a national one, or you’ll spend a week explaining a variance you created yourself.
If your job is price compliance rather than volume, that quarterly PDF is where your Pennsylvania baseline comes from, and it’s exactly the kind of input that has to be reconciled against real shelf reads. Our MAP and MSP enforcement guide covers what happens when the posted price and the observed price disagree, which in a control state is a much more interesting question than people expect.
The format problems, ranked by how much time they’ll cost you
None of these are exotic. All of them will happen.
- PDFs as the primary distribution channel. Not an export. The document is the deliverable, and the layout is whatever the report engine did that quarter.
- Reporting periods that aren’t calendar months. The existence of separate calendar-month feeds is the tell. Anything you aggregate across jurisdictions needs an explicit period-normalization step with the source period retained.
- No single product key across the country. Control State Codes cover the control jurisdictions. Your open-state data keys on UPC, retailer SKU, or a distributor item code. You need a crosswalk, and it has to be versioned, because sizes get added and discontinued.
- Outlet identity that doesn’t match your account master. State stores and agency stores aren’t chains you already track, and store-level and account-level feeds of the same state may not resolve to the same outlet list.
- Measure sets that vary by feed rather than by state. The same jurisdiction can appear twice with different available columns.
- Latency you can’t control and shouldn’t average. Publish per-jurisdiction as-of dates on the dashboard itself. Users who can see which states are current stop filing bugs about the ones that aren’t.
Unifying control and open states, in order
Step three is where these projects actually live. The pattern is the same one we described for distributor feeds in our depletion data guide: the connector takes days, the master data takes months. Control states just add a fourth naming authority to the pile, and it happens to be the only one that publishes its codes.
Franchise laws are a different axis, so stop stacking them
“Control state” and “franchise state” get used interchangeably by people who should know better. They describe different things.
Control is about who occupies a tier. Franchise laws, sometimes called wholesaler protection laws, constrain what a supplier can do to a distributor relationship, including termination and transfer. The Brewers Association maintains a wholesaler protection laws database describing how each state protects wholesalers through franchise and similar statutes. It’s member-gated and it carries a last-updated date, which tells you something: this is a moving target, and it’s a legal question, not a data question.
We’re not going to hand you a list of franchise states, because getting that list wrong in a distributor conversation is expensive and it isn’t our lane. Ask your counsel.
What it means for your pipeline is narrower than people fear. Franchise status changes who your counterparty is and therefore who controls the data and whether you can get it. It doesn’t change the file format. Control status changes the file format.
What control-state data still can’t tell you
Everything past the state’s own transaction.
It doesn’t tell you where on the shelf you landed, or if you landed on it at all versus sitting in a back room. It won’t verify that the endcap you paid for got built. And what the private licensee across the street charged is a real slice of that market which never enters the file.
And it says nothing at all about the open state next door, which is usually where the pricing question actually gets decided. A shopper twenty minutes over the border pays a number that no state publishes anywhere. That gap between the posted price and the paid price is precisely what Price to Consumer exists to close, and control-state data is the input it gets reconciled against rather than a substitute for it.
What we’d recommend
Start with the boards, not with a vendor. Request an extract from the two or three jurisdictions that matter most to your volume and read what actually arrives. You’ll learn the grain, the period convention, the redistribution terms, and how that particular board wants to be asked. That last one is genuinely per-board, and anyone who tells you there’s a uniform process is describing a system that doesn’t exist.
Then decide honestly if a unified feed is worth it yet. In one control state and a handful of open states, a quarterly manual pull of the PLCB PDF into a spreadsheet will hold for a while, and building a parser for a single jurisdiction is a poor use of money. The line moves when several control jurisdictions with different period conventions land on you at once and someone senior starts asking national pricing questions that need all of it in one place. That’s the moment. Not before.
When it is the moment, treat the mapping layer as the project. The ingest is the easy half, and the same dual-shore model behind Shield Suite is how we keep that reconciliation work at sane economics: onshore architecture and account oversight out of Austin, heavier data engineering run by our India delivery teams. That’s the shape of the data analytics and business intelligence work we do for beverage-alcohol brands.
Tell us which control jurisdictions you’re in, what you’re getting today, and what format it arrives in, and we’ll give you a straight answer on whether a unified control-and-open feed is worth building for you right now.