$ . . ., mPower Beverage runs a pricing page whose answer is that it does not publish prices, and VinSystems serves /pricing as a 200 with a 114‑byte body.
Two hundred and seventeen stores, and 2.78 people in each
There is a version of this article that opens with the size of the North American beverage‑alcohol retail technology market and a compound annual growth rate quoted to two decimal places. It would tell a Baltimore package store absolutely nothing. So here is the local picture instead, counted rather than modeled, taken from the Census Bureau’s County Business Patterns file for 2023 — still the most recent county‑level release — which we downloaded and filtered ourselves on 1 September 2026.
The industry code is NAICS 445310, beer, wine and liquor stores. Across Maryland the file reports 1,282 establishments with paid employees, 6,099 employees and $192.1 million of annual payroll. The interesting part is where those stores are.
| Where | Establishments | Employees | Annual payroll | Employees per establishment | Payroll per employee | Payroll per establishment |
|---|---|---|---|---|---|---|
| Baltimore City | 217 | 603 | $16,500,000 | 2.78 | $27,363 | $76,037 |
| Baltimore County | 197 | 935 | $28,538,000 | 4.75 | $30,522 | $144,863 |
| Prince George’s | 170 | 773 | $25,509,000 | 4.55 | $33,000 | $150,053 |
| Montgomery | 156 | 746 | $31,274,000 | 4.78 | $41,922 | $200,474 |
| Anne Arundel | 111 | 796 | $26,755,000 | 7.17 | $33,612 | $241,036 |
| Howard | 63 | 300 | $8,788,000 | 4.76 | $29,293 | $139,492 |
| Maryland, all counties | 1,282 | 6,099 | $192,102,000 | 4.76 | $31,497 | $149,846 |
Baltimore City has more beer, wine and liquor stores than any other jurisdiction in Maryland, and it has the smallest ones. At 2.78 employees per establishment it sits at 58.4% of the statewide average of 4.76, and at 38.7% of Anne Arundel County’s 7.17. Payroll per establishment tells the same story more bluntly: $76,037 in the city against $144,863 in Baltimore County next door, which is to say the county store spends 1.91 times as much on wages as the city store, and against $241,036 in Anne Arundel, which is 3.17 times.
Divide the city’s payroll by its headcount and you get $27,363 per employee per year. A full‑time year at Maryland’s $15.00 minimum wage is $31,200. The average Baltimore package‑store job pays 87.7% of that, which is the arithmetic signature of a counter staffed in shifts rather than in salaries. And it comes with the usual caveat, which matters more here than in most trades: County Business Patterns counts only establishments with paid employees. Every store run entirely by the family that owns it is invisible in that 217. The real number of storefronts is higher, and the real number of people whose whole working life is behind that counter is smaller than 603.
Two hundred and seventeen stores with an average of 2.78 employees is not a market that can absorb a system nobody has time to configure. It is a market where the software has to be right on the day it is installed, because there is no operations manager to fix it in month three.
There is a second count worth putting beside the first, because the two are measuring different things and the gap is instructive. The Department of Legislative Services published an evaluation of the Board of Liquor License Commissioners for Baltimore City in September 2024, and it records exactly what the Board issued in license year 2023: 171 Class A beer, wine and liquor licenses, 7 Class A‑2 beer, wine and liquor (packaged goods) licenses, and 16 Class A beer and wine licenses. That is 194 package‑goods licenses against 1,116 alcoholic beverage licenses of every kind. Restaurants and taverns dominate the book — 334 Class B licenses and 384 Class B‑D‑7 licenses — but the package store is the form the city argues about, and it is the form with the strangest rules.
What the software costs, on the days anyone will say
We checked twenty‑two products on 1 September 2026 the same way we check every category: request the vendor’s own /pricing page directly, record the HTTP status, and read the numbers off the page that comes back rather than off an aggregator’s summary of it. This is worth doing every single time, because aggregators quote prices that stopped existing years ago and vendors move their price pages without redirecting them.
The four that publish
KORONA POS is the most transparent product in the category and it is not close. Its pricing page states plainly that Core is $59 per terminal per month, Retail is $79 and Plus is $99, that features are cumulative, and that there are no setup fees and no forced contracts. It then prices every module separately and in the open: KORONA Food at +$10 per register per month, KORONA Invoicing at +$10 per register per month, KORONA Ticketing at +$50 per entry gate per month, KORONA Franchise at +$30 per franchisee per month, and KORONA Integration at +$45 per token per month. A store can build its own quote in about ninety seconds without speaking to anybody, which in this category is close to a radical act.
OrderPort, which serves the direct‑to‑consumer side of the trade, publishes a complete ladder: One at $0 per month, Plus at $150 per month, Pro from $300, and Restaurant from $400. It also does something almost nobody does, which is publish the one‑time number: “A one‑time onboarding fee is required for each program, starting at $1,000,” covering data migration and a branded webstore. Its hardware line is equally frank — a card reader at $59 on its own stack against $500+ on the alternative.
Bottle POS publishes a page headed “Plans & Pricing” with three tiers named Starter, Growth and Premium. Starter carries $59 /Month. The other two carry, as the literal text of the page, the characters $ . . . — and so does Starter’s second column. We counted five occurrences of that string in the raw HTML. Above them sits a “Pricing Configurator” inviting you to “Provide a few details to see your customized pricing,” and a headline offer of 75% off the standard hardware bundle for new customers, with a further 25% rebate for adopting dual pricing.
And Square, which is not a liquor‑store product but is the default fallback for a small store that wants to stop thinking about it, publishes everything: a free tier, per‑device add‑ons at $30 and $50 a month for its kiosk and kitchen apps, MarketMan at $99 per location per month, and an invitation to negotiate custom rates above $250,000 of annual processing.
The eighteen that do not
mPower Beverage deserves its own paragraph, because its pricing page is the most honest opaque page we have found in three years of doing this. It is titled “Pricing.” It contains no dollar figures. And it explains itself:
“We don’t publish a rate card because your store isn’t the same as the one next door.” — mpowerbeverage.com/pricing, read 1 September 2026
The same page says “No tiers, no games — pricing tailored to your store and explained by a real person before you sign anything,” claims installs in 46 states plus DC, and offers a choice of three integrated processing partners rather than one forced processor. We are not going to pretend that is unreasonable. It is a coherent position, stated openly, and a store that wants a conversation will get one. It is simply not a number, and a store comparing four vendors on a Tuesday evening cannot compare a conversation to $79.
City Hive, one of the two platforms most often recommended when a Maryland package store asks how to get online, serves a page at /pages/pricing whose entire visible answer is “Please login/sign up to see prices.” An e‑commerce platform sold to independent retailers on the strength of letting their customers see prices without calling the store puts its own price behind a login. BevSpot offers a genuinely free tier alongside a “Pro” plan described as “Customized Just For Your Business” with a “Get Your Quote Now!” button and no figure. Lightspeed, a publicly listed company, serves a retail pricing page of roughly twelve thousand characters containing no dollar amount at all.
Then the failures, which are their own kind of data. VinSystems answers /pricing with HTTP 200 and a body of 114 bytes — not a 404, not a redirect, an empty page served successfully — while its home page returns a healthy 200. Liquor POS answers automated requests with a 403. BottleCapps, Cheers POS, Atlantic Systems and Provi all return a bare 404 on /pricing. fintechinc.com/pricing resolves to a HugeDomains listing offering the domain for sale. And parkstreet.com/pricing redirects to a blog post from 2013 about pricing mergers and acquisitions in the wine business, which is not a rate card by any reading.
| Product | /pricing | What the page actually says |
|---|---|---|
| KORONA POS | 200 | Core $59, Retail $79, Plus $99 per terminal per month; modules +$10, +$30, +$45, +$50; no setup fee, no contract |
| OrderPort | 200 | One $0, Plus $150, Pro from $300, Restaurant from $400 per month; onboarding from $1,000; card reader $59 vs $500+ |
| Square | 200 | Free tier; kiosk $50 and kitchen display $30 per device per month; MarketMan $99 per location; custom rates above $250,000 processed |
| Bottle POS | 200 | Starter $59/month; Growth and Premium shown as the literal characters $ . . .; 75% off hardware, 25% rebate for dual pricing |
| mPower Beverage | 200, no price | “We don’t publish a rate card because your store isn’t the same as the one next door”; 46 states + DC; three processing partners |
| City Hive | 200, no price | “Please login/sign up to see prices” |
| BevSpot | 200, no price | Free tier; Pro is “Customized Just For Your Business” behind “Get Your Quote Now!” |
| Lightspeed Retail | 200, no price | ~12,000 characters of pricing page, no dollar amount |
| VinSystems | 200, empty | 114‑byte body; home page returns a healthy 200 |
| Liquor POS | 403 | Blocks automated requests |
| BottleCapps | 404 | — |
| Cheers POS | 404 | — |
| Atlantic Systems | 404 | — |
| Provi | 404 | — |
| fintechinc.com | 200 | Domain parked and listed for sale |
| Park Street | 200 | Redirects to a blog post from 2013 about pricing mergers in the wine business |
Six products out of twenty‑two will tell you a number without a phone call, and only four of those six are actually built for a package store. That is worse than the auto repair category and better than dental. It is worth saying clearly what this does and does not prove: an opaque price is not a high price, and several of the vendors above are well‑liked by the stores that use them. What it proves is that a two‑person store cannot run a comparison in an evening, which is the exact moment when most of these decisions actually get made.
What the priceable stack actually comes to
Assume a Baltimore package store with two registers — which the CBP figure of 2.78 employees per establishment makes about right — that wants a real point of sale, wants distributor invoices to land in it rather than being keyed in twice, and wants a storefront on its own domain. Every line below is a published rate. Nothing is estimated.
| Line | Published rate | Quantity | Per year |
|---|---|---|---|
| KORONA POS Retail | $79 per terminal per month | 2 terminals × 12 | $1,896.00 |
| KORONA Invoicing module | $10 per register per month | 2 registers × 12 | $240.00 |
| OrderPort Plus storefront | $150 per month | 12 | $1,800.00 |
| Subtotal | — | — | $3,936.00 |
| Maryland 3% technology tax | 3% of the above | — | $118.08 |
| Total, year one and every year after | — | — | $4,054.08 |
| One‑time onboarding | from $1,000 | once | $1,000.00 |
| Three‑year run | — | — | $13,162.24 |
Thirteen thousand dollars over three years, for a stack that is entirely sensible and which we would recommend to plenty of stores. Hold that number; we will come back to it once you have seen what it does not do.
Opening time is a function of geometry
Here is the part that no national platform models, and the reason we wrote this article rather than another one.
Ask any point‑of‑sale system in the category what time your store opens and it will show you a settings screen with seven rows and two time pickers. Store hours are a property of the store. That is true almost everywhere in the United States. It is not true in Baltimore City.
Maryland’s Alcoholic Beverages and Cannabis Article §12‑2004(a)(1)(i) sets the hours of sale for a Class A beer, wine and liquor license in Baltimore City. It does not give one answer. It gives three, and it chooses between them by where the licensed premises physically is.
The first is the area specified in the Park Heights Master Plan adopted by the City in 2006: 9 a.m. to 10 p.m., Monday through Saturday. The second is a polygon in northeast Baltimore, which the statute does not name and does not map. It describes it, in a single sentence, as a walk:
“from the intersection of Belair Road and Anntana Avenue, southwest on Belair Road to the intersection of Belair Road and Frankford Avenue, southeast on Frankford Avenue to the intersection of Frankford Avenue and Sipple Avenue, west on Sipple Avenue to the intersection of Sipple Avenue and Crenshaw Avenue, southeast on Crenshaw Avenue to the intersection of Crenshaw Avenue and Goodnow Road, southeast on Goodnow Road to the intersection of Goodnow Road and Sinclair Lane, northeast on Sinclair Lane to the intersection of Sinclair Lane and Radecke Avenue, west on Radecke Avenue to the intersection of Radecke Avenue and Anntana Avenue, then north on Anntana Avenue…” — Md. Alcoholic Beverages & Cannabis §12‑2004(a)(1)(i)2
Inside that walk, a Class A store opens at 9 a.m. and closes at 10 p.m. One block outside it, holding an identical license issued by the same Board on the same day, a store opens at 6 a.m. and closes at midnight. The statute says so in the third limb: “from 6 a.m. to midnight in all other locations in the City.”
That is thirteen hours a day against eighteen. Over a six‑day week it is 78 hours against 108 — a gap of 30 hours every week, or 1,560 hours a year, between two stores that hold the same class of license and pay the same annual fee for it.
| Where the front door is | Statute | Weekday window | Hours per day | Days | Hours per week | Hours per year | Annual fee | License cost per selling hour |
|---|---|---|---|---|---|---|---|---|
| Park Heights Master Plan area | §12‑2004(a)(1)(i)1 | 9 a.m. – 10 p.m. | 13 | 6 | 78 | 4,056 | $2,060 | $0.5079 |
| The Belair Road / Sinclair Lane polygon | §12‑2004(a)(1)(i)2 | 9 a.m. – 10 p.m. | 13 | 6 | 78 | 4,056 | $2,060 | $0.5079 |
| All other locations in the City | §12‑2004(a)(1)(i)3 | 6 a.m. – midnight | 18 | 6 | 108 | 5,616 | $2,060 | $0.3668 |
The same license, the same fee, and 38.5% more license cost per hour of trading depending on which side of a line drawn along Sipple Avenue you are standing. There is a public‑health argument for those restricted zones, and it is a real one that we are not going to relitigate here. Our point is narrower and purely technical: a field that varies by geography is not a store setting. It is a lookup. And no configuration screen in this category is shaped like a lookup.
Two license classes, two different maps
It gets stranger one section earlier. §12‑2003(a)(1)(i) does the same job for a Class A beer and light wine license — the smaller license, sixteen of them issued in license year 2023 — and it lists only two areas: the Park Heights plan area at 9 a.m. to 10 p.m., and 6 a.m. to midnight everywhere else. The Belair Road polygon is not in it.
Two stores on the same block of Belair Road. One holds a beer and wine license and may open at 6 a.m. The other holds a beer, wine and liquor license and may not open until 9. The map is not a property of the neighborhood. It is a property of the license class, and there are two different maps.
Any system that models this as “restricted zone: yes/no” is already wrong. The correct shape is a function of two arguments — license class and location — and the answer is a time range. That is four lines of code and one table, and it is genuinely not hard. It is just not the shape anybody shipped.
And one rule about crossing a street
For completeness, and because it is the single best illustration of how fine‑grained this gets: §12‑1104 provides that alcohol purchased from a licensed establishment at 511 through 529 East Belvedere Avenue may be consumed within any indoor or outdoor seating area at those addresses, and also “while crossing from the south side of East Belvedere Avenue to the north side of East Belvedere Avenue during a permitted special event that results in the closure of East Belvedere Avenue.” That is a geofence one street wide, conditional on a road closure, written into state law, applying to nineteen street numbers.
We are not suggesting a package store needs to model that. We are pointing out what it tells you about the category: in Baltimore, the rules about alcohol are spatial down to the width of a street, and the software that runs these stores has no spatial vocabulary at all.
Seven days, ten fewer hours
Now hold the location constant and vary the license. Baltimore City has three package‑goods classes that sell the identical product off the identical shelf, and the statute gives each of them a different clock.
Class A (§12‑901) is the ordinary liquor store license: sell at retail, deliver in a sealed package that may not be opened on the premises, $2,060 a year. Its hours come from §12‑2004 — 6 a.m. to midnight, six days, in most of the city.
Class A‑2 (§12‑902) is the package‑goods license, and it carries its hours in its own section: “The hours and days of sale for the license are from 9 a.m. to midnight, Monday through Saturday.” The fee is also $2,060. It comes with a one‑way door written into subsection (c): a Class B‑D‑7 may not be reissued as a Class A‑2, and a Class A‑2 “may not be converted or substituted for any other class of license.” Seven of them existed in license year 2023.
Class A‑7 (§12‑902.1) is the seven‑day package‑goods license: “A holder of a Class A‑7 license may sell beer, wine, and liquor on Monday through Sunday from 10 a.m. to midnight.” The fee is $2,336. And you cannot simply apply for one. Subsection (c) allows only a holder of a valid Class B‑D‑7 issued on or before 1 July 2018 to apply to exchange it, and only after the license holder “first obtains approval by resolution of the Baltimore City Council.” A city council resolution, per store.
There is a fourth path, and it is the most peculiar provision we found. §12‑905(g) lets the Board reissue a Class B‑D‑7 as a Class A‑2 — but only if the licensed premises is within the 41st legislative district and is “equipped with high‑definition cameras that provide continuous, 24‑hour monitoring inside and outside the licensed premises.” A hardware specification, in a licensing statute, gated on a legislative district that gets redrawn every ten years. The resulting license runs 9 a.m. to midnight, Monday through Sunday, and subsection (g)(3) attaches a specific penalty schedule to it: a first sale to a person under 21 draws a fine of not less than $1,500 or more than $3,000, and a second draws suspension or revocation.
| License | Statute | Window | Days | Hours per week | Hours per year | Annual fee | Cost per selling hour |
|---|---|---|---|---|---|---|---|
| Class A beer, wine & liquor | §12‑901, §12‑2004 | 6 a.m. – midnight | 6 | 108 | 5,616 | $2,060 | $0.3668 |
| Class A‑2 (package goods) | §12‑902(d), (e) | 9 a.m. – midnight | 6 | 90 | 4,680 | $2,060 | $0.4402 |
| Class A‑7 | §12‑902.1(d), (e) | 10 a.m. – midnight | 7 | 98 | 5,096 | $2,336 | $0.4584 |
| B‑D‑7 reissued as A‑2, 41st district | §12‑905(g)(2) | 9 a.m. – midnight | 7 | 105 | 5,460 | $2,060 | $0.3773 |
| Class A, Park Heights or Belair Road | §12‑2004(a)(1)(i)1–2 | 9 a.m. – 10 p.m. | 6 | 78 | 4,056 | $2,060 | $0.5079 |
Read the first and third rows together, because they contain the finding that gave this article its shape. The Class A‑7 is the seven‑day license. It is the one a store buys because it wants to be open on Sunday. And it sells 98 hours a week against the plain Class A’s 108 — ten fewer hours, a 9.3% reduction — while costing $276 more a year, which is 13.4% more. Per selling hour that is $0.4584 against $0.3668: 25.0% more.
The seven‑day license buys you Sunday and charges you four mornings a week for it. Monday through Saturday it opens four hours later than the six‑day license — twenty‑four hours gone — to hand back fourteen on Sunday. The net is minus ten.
Whether that trade is good depends entirely on your street, your customers and what a Sunday afternoon actually rings in your neighborhood, and for plenty of stores it is clearly worth it. But it is a real trade with a real number attached, and we have not yet met a store that had ever seen the multiplication done. It takes one row of a spreadsheet. Nothing in the category does it for you, because nothing in the category treats hours as something to compute.
The Sunday you have to buy in September
A plain Class A store is closed on Sunday. Almost. §12‑2004(a)(1)(ii) opens a door, and the shape of the door is the interesting part:
“on the Sundays that fall between Thanksgiving Day and New Year’s Day, from 1 p.m. to 9 p.m., if, on or before September 30 of that year, the license holder has paid a supplementary license fee of $120 for each Sunday the privilege is to be exercised.”
Four separate facts are packed into one sentence, and a database has to hold all four. The window is 1 p.m. to 9 p.m., which is eight hours — not the store’s ordinary hours, and not any other license class’s hours either. The season is bounded by a moving holiday at one end and a fixed date at the other. The price is per Sunday, not per season. And the deadline to buy is 30 September, which is roughly two months before the first eligible Sunday and about eleven weeks before the one that actually matters.
Then §12‑2004(a)(2) adds a second, differently‑shaped privilege on top: the holder may sell for off‑premises consumption on two additional Sundays during the calendar year, at $120 each, paid at least two weeks before each time the privilege is exercised. Same price, different deadline, different counting rule, no seasonal restriction. Two adjacent subsections, two incompatible booking rules.
How many Sundays is “the Sundays between Thanksgiving and New Year’s Day”?
It is not a constant. Thanksgiving is the fourth Thursday in November, so it moves between the 22nd and the 28th, and the number of Sundays that fall after it and before 1 January moves with it.
| Year | Thanksgiving | Eligible Sundays | Season fee at $120 each | Selling hours bought | With two discretionary Sundays | Total hours |
|---|---|---|---|---|---|---|
| 2025 | Thu 27 Nov | 5 | $600 | 40 | $840 | 56 |
| 2026 | Thu 26 Nov | 5 | $600 | 40 | $840 | 56 |
| 2027 | Thu 25 Nov | 5 | $600 | 40 | $840 | 56 |
| 2028 | Thu 23 Nov | 6 | $720 | 48 | $960 | 64 |
| 2029 | Thu 22 Nov | 6 | $720 | 48 | $960 | 64 |
| 2030 | Thu 28 Nov | 5 | $600 | 40 | $840 | 56 |
So the check a store writes at the end of September is $600 in most years and $720 in 2028 and 2029, and the difference is decided by a calendar rule nobody in the building is thinking about in September. A hard‑coded “five Sundays” is right this year, right next year, and wrong the year after that.
Is a December Sunday worth $120?
This is the kind of question a system should answer and none of them do, so here is the arithmetic in the open. Take the Baltimore City payroll figure from earlier — $76,037 per establishment — and assume wages run at 10% of sales, which is a reasonable band for a package store where labor is thin and cost of goods is heavy. That models a store at roughly $760,000 of annual revenue. Spread across a plain Class A’s 5,616 selling hours, the average hour rings $135.33.
At a 27% gross margin, a Sunday has to ring $444.44 to cover its own $120 fee. Over an eight‑hour window that is $55.56 an hour, which is 41.1% of what an average hour does. So a December Sunday afternoon only has to perform at about two‑fifths of a normal hour to pay for itself, and December Sunday afternoons in a liquor store do considerably better than two‑fifths.
The Sunday almost certainly pays. The reason stores skip it is not economics. It is that the decision is due on 30 September, when nobody is thinking about Christmas, and no system in the category raises its hand.
Put it the other way round to see how odd the pricing is. The base license costs $0.3668 per selling hour. A supplementary Sunday costs $120 ÷ 8 = $15.00 per selling hour. That is 40.9 times the base rate. It is still worth buying — that is the point — but it is the single most expensive hour of trading the store will do all year, measured in license cost, and it deserves to be a decision rather than an oversight.
This is an eight‑line feature. A store record holds the license class and the address; the address resolves to a zone; the zone and the class resolve to a weekday window; the calendar rule computes this year’s eligible Sundays from Thanksgiving; and a reminder fires in the first week of September with the number of Sundays, the total fee, and last December’s Sunday takings sitting next to it. We have built that. It is not a research project.
Nine percent, six percent, and one product record
Maryland taxes alcoholic beverages at 9% and almost everything else at 6%. Every store in the state knows that. What far fewer stores know is that the Comptroller has published, in plain language, the rule for what happens when one sale contains both — and that the rule is a pricing decision disguised as a tax question.
The Alcohol, Tobacco, and Cannabis Commission’s own guidance answers it directly:
“You may apportion the sales price between the alcoholic beverages and the other merchandise and charge the 9% sales and use tax on the taxable price of the alcoholic beverages and the 6% sales and use tax on the price of the other items. If the basket includes non‑taxable merchandise as well, and you allocate the sales price among the three categories of merchandise… then you may exclude the non‑taxable items from the taxable price. However, if you charge a lump‑sum price for the gift basket, and you do not apportion the sales price among the categories of items, you must collect the sales and use tax at the higher 9% rate on the entire price of the basket.”
Read the last sentence again. The higher rate is not a penalty for getting it wrong. It is the default, and it applies to the store that simply sold a basket for one price. The lower rate is available to anyone, and it is unlocked by a piece of data structure: the basket has to be recorded as three amounts instead of one.
| Component | Allocated price | Rate if apportioned | Tax if apportioned | Rate if sold as one lump sum | Tax if lump sum |
|---|---|---|---|---|---|
| One bottle of spirits | $60.00 | 9% | $5.40 | 9% | $5.40 |
| Two branded rocks glasses | $25.00 | 6% | $1.50 | 9% | $2.25 |
| Crackers and cheese (grocery food) | $15.00 | 0% | $0.00 | 9% | $1.35 |
| Basket total | $100.00 | — | $6.90 | — | $9.00 |
| Effective rate on the basket | — | — | 6.90% | — | 9.00% |
| Difference per basket | — | — | $2.10 — 30.4% more tax, 2.10 points of price | ||
Two dollars and ten cents is not a headline number. Multiply it out and it starts to be one: $210 across a hundred baskets, $525 across two hundred and fifty, $840 across four hundred, $1,260 across six hundred. A store that sells four hundred baskets in a December is paying or absorbing $840 for the privilege of having a single price field on a product.
And it is not only baskets. The same logic reaches every bundle a store might want to sell: a wine‑and‑chocolate pairing, a cocktail kit with a bottle and a jar of mixer and a jigger, a corporate order that mixes cases of wine with branded glassware, a subscription box. Every one of them is a product whose correct tax treatment depends on whether the store recorded it as one thing or as its parts.
The difference between 6.90% and 9.00% is not a tax position. It is whether the product record has three lines or one. That is a schema decision, made once, years before anybody assembles the first basket.
Two more pieces of the same guidance are worth having in the open. First, the 9% rate is scoped by fitness for beverage purposes: the Commission states that “only products that are fit for beverage purposes and contain one‑half of 1% or more of alcohol by volume” take the 9% rate, and that cooking wine, cooking sherry, vanilla and rum extracts and similar items do not, along with personal care and cleaning products that contain alcohol. So the cooking sherry two shelves from the drinking sherry is a 6% item, and it looks identical in a barcode scan.
Second, the two rates must be reported separately: “You must report the tax you charged on sales of alcoholic beverages separately from the tax imposed on sales of other items,” and the return has carried separate lines for the 6% and 9% figures since July 2011 — for purchases as well as sales. So a store cannot fix this at the end of the month by applying a blended rate to a single revenue total. The split has to exist at the line level, in the transaction, at the moment of sale.
The growler closes before the bar does
Hours in Baltimore are not only a property of the license and the location. For one product they are a property of the product.
§12‑1102 creates the refillable container permit for draft beer — the growler permit. Subsection (c) sets its hours, and it does so in the strangest available way: the hours “begin at the same time as those for the underlying license” and “end at midnight.” Not at the underlying license’s closing time. At midnight, full stop.
For a Class A store closing at midnight anyway, that changes nothing. For a Class B restaurant or a Class B‑D‑7 tavern — the two largest classes in the city, 334 and 384 licenses respectively — the underlying hours run to 2 a.m. under §12‑2004(b) and (c). So there is a two‑hour window every night, seven nights a week, fourteen hours a week, in which the very same keg may lawfully be poured into a glass and may not lawfully be poured into a growler.
One tap, one beer, two closing times. The glass is open until 2 a.m. and the growler shut at midnight. No point‑of‑sale product we have seen can express “this SKU stops selling two hours before the store does.”
The permit fee has its own oddity. §12‑1102(f) prices it at $50 for an applicant whose license has an off‑sale privilege and $500 for one whose license does not — a tenfold spread on the identical permit, decided by an attribute of the underlying license rather than by anything about the permit. And §12‑1101(b) adds a flat exclusion: the statewide refillable container permit for wine at §4‑1105 “does not apply in the City.” You may fill a growler with draft beer in Baltimore. You may not fill one with wine, anywhere inside the city line, at any hour, under any license.
None of this is exotic to model. It is a per‑product availability rule with a time bound and a jurisdiction bound. It is exotic only in the sense that the entire category has agreed that products do not have opening hours.
A fee schedule that stood still for sixteen years
Every number in the tables above is the current one, and most of them are new. Baltimore City’s alcoholic beverage license fee schedule had not been updated since 2008 when the General Assembly passed Senate Bill 895 and House Bill 733 in the 2024 session, enacted as Chapters 1016 and 1015. The Department of Legislative Services fiscal note sets out the old and new figures side by side.
| License | Previous fee | Current fee | Difference | Change |
|---|---|---|---|---|
| Class A beer and light wine | $110.00 | $171.00 | +$61.00 | +55.5% |
| Class A beer, wine, and liquor | $858.00 | $2,060.00 | +$1,202.00 | +140.1% |
| Class A‑2 (packaged goods) | $858.00 | $2,060.00 | +$1,202.00 | +140.1% |
| Class A‑7 | $1,500.00 | $2,336.00 | +$836.00 | +55.7% |
| Class B‑D‑7 | $1,320.00 | $2,336.00 | +$1,016.00 | +77.0% |
| Class B‑BWL (hotel/motel) | $6,500.00 | $10,108.00 | +$3,608.00 | +55.5% |
| Class D beer, wine, and liquor | $825.00 | $1,284.00 | +$459.00 | +55.6% |
| Arena | $12,000.00 | $21,780.00 | +$9,780.00 | +81.5% |
| Supplementary Sunday fee | $75.00 | $120.00 | +$45.00 | +60.0% |
| Renewal application fee | $50.00 | $78.00 | +$28.00 | +56.0% |
The city estimated the reset would raise its licensing revenue by roughly $823,200 a year beginning in fiscal 2025, and told the Senate Finance Committee it intended to use the money to hire more liquor inspectors. The fiscal note also records, in the flat language these documents use, that the bill “may have a potential meaningful impact on small business restaurants, bars, and other alcoholic beverages license holders.”
Two things fall out of that table that we have not seen anybody point at. The first is the sheer asymmetry: most classes went up by about 55%, and the ordinary liquor store went up by 140%. On 171 Class A licenses, that single line moved $146,718 of annual fee revenue to $352,260 — an extra $205,542 a year out of package stores alone.
The second is subtler and, if you are choosing a license, more useful. Before the reset, the seven‑day Class A‑7 cost $1,500 against the six‑day Class A’s $858 — a premium of 74.8%. After it, $2,336 against $2,060 is a premium of 13.4%.
The relative price of Sunday collapsed. Seven days used to cost three‑quarters more than six; now it costs an eighth more. Nobody framed the 2024 bill as a change in the economics of Sunday trading, but that is exactly what it was.
Which brings back the hours arithmetic from earlier with more force. The A‑7 is now only 13.4% dearer, but it still sells ten fewer hours a week. The premium fell; the trade did not change. Both halves of that belong in the same conversation, and neither of them lives in any system a store already owns.
One dollar of stock, six hundred and twenty-five dollars of license
There is one more Baltimore City fee that catches package stores harder than almost any other trade, and it has nothing to do with alcohol. Maryland requires a trader’s license of anyone selling goods at retail, and Business Regulation §17‑1807 prices it on the value of the applicant’s stock‑in‑trade. A liquor store is, by construction, an inventory‑heavy business: shelves of bottles at wholesale is what the balance sheet mostly is.
The catch is that Baltimore City has its own schedule at §17‑1807(c)(3), and it has only eight brackets where every other county except Baltimore County has twenty‑one at §17‑1807(c)(2). Fewer brackets means bigger steps.
| Value of stock‑in‑trade | Baltimore City | Any other county (except Baltimore County) | City premium |
|---|---|---|---|
| $50,001 – $100,000 | $375 | $250 | +50.0% |
| $100,001 – $150,000 | $1,000 | $300 | +233.3% |
| $150,001 – $300,000 | $1,000 | $300–$400 | — |
| $300,001 – $750,000 | $1,500 | $500–$750 | — |
| Over $750,000 | $2,125 | $800 | +165.6% |
Look at the step at the top of the second row. In Baltimore City, stock‑in‑trade of $100,000 costs $375. Stock‑in‑trade of $100,001 costs $1,000. One dollar of inventory, $625 more license, a 166.7% increase. The same dollar costs $50 extra in Anne Arundel or Howard, where the ladder rises in twenty‑one gentle steps instead of eight cliffs.
A hundred thousand dollars of stock at wholesale is not a large liquor store. It is a well‑stocked neighborhood one. Which means a very ordinary Baltimore package store spends part of every year sitting within a few cases of a $625 cliff, and the only number that decides which side it lands on is the inventory valuation it reports — a number produced by the same system that cannot tell it what time it opens.
Nobody buys the last case of bourbon in December thinking about the trader’s license. But if the valuation lands at $100,400 instead of $99,900, that case cost $625 more than the invoice says.
We are being careful here, because inventory valuation for this purpose is a question for the store’s accountant and the Clerk of the Circuit Court, not for us. The software point stands regardless: the store should be able to see where it is against that boundary before the year ends, not after. That is a single line on a dashboard, and it is worth more than most of what is on the dashboards we replace.
Why a marketplace is a different place
Now the part that decides where the money goes, and the reason we think an owned storefront matters more in this trade than in almost any other we write about.
In January 2024, Uber announced it was shutting down Drizly, the alcohol delivery marketplace it had bought for $1.1 billion three years earlier. The app closed at the end of March 2024. Drizly held no licenses and owned no inventory; it was a layer that sat between thousands of independent retailers in more than 1,400 cities and their own customers. When it switched off, every store that had let it be their e‑commerce channel lost the channel, the storefront, and — the part that actually hurts — the customer list, in a single quarter, over a decision made in another company’s boardroom.
That is the commercial argument, and it is a familiar one. The Baltimore argument is sharper, and it is legal.
When Drizly first began delivering in Baltimore, the Board of Liquor License Commissioners’ own rules and regulations committee took up the question of whether app‑based sales were lawful at all. The objection recorded in the committee’s proceedings is precise, and it is not about delivery:
State law and Liquor Board rules require that a purchase of alcohol be made at the licensed premises; if a patron is buying through an app, the purchase is being made from the app maker on an off‑site server and is not happening at the licensed premises. — as recorded in the Board’s rules and regulations committee proceedings, reported by the Community Law Center
The committee raised two further concerns in the same discussion. One was solicitation: the apps advertise on behalf of licensed businesses, and hiring a third‑party solicitor to promote a licensed premises is not permitted. The other was age verification — the worry that IDs may not be checked properly on an online sale. And the committee noted the commercial mechanics plainly: through an app transaction, the money goes to the company that owns the app, and the licensee is paid later, minus the app company’s percentage.
We want to be scrupulous about what this does and does not settle. It is a committee discussion, not a court ruling; the Board adopted new rules in 2024; delivery is a live and evolving area of Maryland practice, and a store that intends to deliver should get a letter of authorization from the Board and take its attorney’s advice on the current position rather than ours. What the discussion establishes beyond argument is the question the regulator asks, and it is a question about where the sale happened.
That is the whole build‑versus‑rent argument for this trade in one sentence. A marketplace is, in the regulator’s framing, a different place. A storefront that runs on your domain, takes payment into your merchant account, checks age against your policy, and books the sale to your register is, at minimum, a much easier thing to describe as your premises.
| A third‑party marketplace | Your own storefront | |
|---|---|---|
| Where the order is placed | The platform’s server | Your domain, your system |
| Who takes the payment first | The platform; you are paid later, net of commission | Your merchant account, at the moment of sale |
| Who owns the customer record | The platform | You |
| Hours logic | The platform’s national model of “store hours” | Your license class, your zone, your Sunday elections |
| Tax on a mixed basket | Whatever the platform’s tax engine decides | Apportioned at the line, 9% and 6% separately |
| Per‑product time rules | Not modeled | Growler stops at midnight; store does not |
| What happens if it shuts down | Drizly, March 2024 | It is your code and your data |
None of that means a store should never use a marketplace. Reach is real, and a delivery platform can put a small shop in front of people who would never have walked past it. The argument is narrower: a marketplace is a customer acquisition channel and it should be treated as one. It should not be the only place your catalog lives, the only place your customers exist, or the system of record for a sale whose legal location the regulator has opinions about.
What we would actually build for a Baltimore package store
Everything above is one argument made six ways: the rules that govern a Baltimore liquor store are local, spatial, per‑product and calendar‑driven, and the systems sold into the category are national, flat, per‑store and static. That gap is not a bug in KORONA or mPower or Bottle POS. Those products serve forty‑six states, and no sane product manager encodes a polygon bounded by Sipple Avenue.
So the honest recommendation for most stores is a good general point of sale plus a thin layer that knows where it is. Here is what that layer contains, and what each piece is worth.
A store record that holds a license, not just an address
License class, license number, the zone the premises falls in, and the renewal date — which in Baltimore is 30 April, because the Board’s license year ends on 30 April rather than on 31 December or on any fiscal year end. From those four fields the weekday selling window is a lookup, not a setting, and every other rule in the system can ask it a question instead of being told an answer.
A calendar that computes instead of storing
Thanksgiving is derived, not entered. The eligible Sundays are derived from Thanksgiving. The 30 September deadline is derived from the eligible Sundays. The two discretionary Sundays under §12‑2004(a)(2) carry their own two‑week rule. And the whole thing surfaces once a year, in the first week of September, as a single message with a number in it.
Products that carry their own tax category and their own clock
Every line item knows whether it is alcohol at 9%, taxable merchandise at 6%, or grocery food at 0%, and a bundle is a container of lines rather than a line of its own. That one decision is what makes apportionment possible at all, and it is worth $2.10 on every hundred‑dollar basket forever. Separately, a product can carry a time bound of its own, which is how a growler stops selling at midnight in a room that is open until two.
A storefront that is your licensed premises
Your domain, your merchant account, your customer records, your age‑verification step, your delivery radius and your pickup windows — driven by the same hours logic as the till, so the website cannot accept an order at a time the license does not permit. This is the piece that Drizly’s closure made urgent for a few thousand stores in one quarter, and it is the piece that costs least to own outright.
An inventory number you can see coming
Stock‑in‑trade at wholesale, shown against the $100,000 and $300,000 boundaries in §17‑1807(c)(3), with enough of the year left to do something about it.
| Package | Price | What it is for a package store | Crossover against $4,054.08 a year |
|---|---|---|---|
| Prototype Sprint | $3,500 | One week. The hours engine and the Sunday calendar, working, against your real license and your real address, so you can see the numbers before committing to anything larger. | 0.86 years |
| Online Store | from $6,000 | Your storefront on your domain: catalog, age gate, pickup and delivery windows driven by the license rules, apportioned tax at the line, your customer list. | 1.48 years |
| Custom App / Internal Tool | from $12,000 | The layer above the till: license‑aware hours, product tax categories, per‑product time bounds, the September reminder, the stock‑in‑trade watch. | 2.96 years |
| Operations System | from $12,000 | Multi‑store. Different license classes and different zones per location, one catalog, one set of rules, one place to look. | 2.96 years |
Every price is fixed before we start, every project ships with the full source code, and you own it. There is no hourly meter and no per‑terminal charge, which for a two‑register store that may become a three‑register store matters more than it sounds.
Build, buy, or keep both
We will say the unfashionable thing first: most Baltimore package stores should keep renting their point of sale. A till that handles case breaks, scans an ID, prints a shelf label and reconciles a distributor invoice is a genuinely hard product to build and a cheap one to rent, and KORONA at $79 a terminal is good value by any measure. We are not going to rebuild that for you and then charge you to maintain it.
What we will say is that the rented product ends exactly where this article began, and the things it does not do are the things that are specific to this city and to your license. Here is the honest split, and it is the only list in this article:
- Rent it if it is the same in Baltimore as it is in Boise: card processing, barcode scanning, ID scanning, shelf labels, case breaks, distributor invoice import, basic reporting.
- Build it if it depends on your license class, your address, your calendar or your product mix: selling hours, Sunday elections, apportioned tax on bundles, per‑product time bounds, the stock‑in‑trade boundary, and anything that touches your own customer list.
- Own it outright if losing it would cost you the business: your storefront, your domain, your customer records, and the data behind all three.
The crossover arithmetic in the table above is the part worth sitting with. A custom online store at $6,000 costs less than one and a half years of the published subscription stack, and after that it costs what hosting costs. That comparison is not entirely fair — the subscription buys support and continuous updates and we do not pretend otherwise — but it is fair enough to be worth doing before you sign a third annual renewal.
Who we are
founderandai is a small studio in Baltimore. We are ex‑startup founders who build custom software at fixed prices — web apps, online stores and operations systems — and you work directly with the people writing the code. We publish our prices for the same reason we spent a morning reading §12‑2004 rather than a market report: a store with two employees and a 108‑hour week deserves a number it can act on without a discovery call.
If you run a package store in Baltimore, the fastest useful thing you can do with this article is check two facts. Look up your license class, and work out which of the three windows in §12‑2004(a)(1)(i) actually applies to your front door. If the answer surprises you, it will not be the last thing that does.
Questions we get asked
How much does liquor store POS software cost in 2026?
Of the twenty‑two products we checked on 1 September 2026, six publish a usable number. KORONA POS lists Core at $59, Retail at $79 and Plus at $99 per terminal per month, with no setup fee and no contract, and modules priced openly at $10 to $50. OrderPort lists $0, $150, from $300 and from $400 per month with a one‑time onboarding fee starting at $1,000. Bottle POS lists Starter at $59 a month and shows its Growth and Premium tiers as the literal characters $ . . .. Square publishes a free tier plus per‑device add‑ons. mPower Beverage, City Hive, BevSpot and Lightspeed all serve a healthy pricing page with no dollar figure on it, and BottleCapps, Cheers POS, Atlantic Systems and Provi return a bare 404. A realistic two‑register stack built only from published rates comes to $4,054.08 a year including Maryland’s 3% technology tax, plus $1,000 of onboarding.
What hours can a liquor store open in Baltimore City?
It depends on the license class and on where the store is. Under Md. Alcoholic Beverages and Cannabis §12‑2004(a)(1)(i), a Class A beer, wine and liquor license may sell from 6 a.m. to midnight Monday through Saturday in most of the city, but only from 9 a.m. to 10 p.m. inside the Park Heights Master Plan area and inside a second area in northeast Baltimore that the statute defines by naming eight street intersections along Belair Road, Frankford Avenue, Sipple Avenue, Crenshaw Avenue, Goodnow Road, Sinclair Lane, Radecke Avenue and Anntana Avenue. A Class A‑2 runs 9 a.m. to midnight Monday through Saturday under §12‑902(d). A Class A‑7 runs 10 a.m. to midnight Monday through Sunday under §12‑902.1(d). A Class A beer and light wine license has a different map again under §12‑2003(a)(1)(i), which does not include the northeast Baltimore area.
Can a Baltimore liquor store sell on Sunday?
A Class A license can, but only by buying the privilege in advance. Under §12‑2004(a)(1)(ii), the holder may sell from 1 p.m. to 9 p.m. on the Sundays that fall between Thanksgiving Day and New Year’s Day, provided that on or before 30 September of that year it has paid a supplementary license fee of $120 for each Sunday. Section 12‑2004(a)(2) allows two further Sundays anywhere in the calendar year at $120 each, paid at least two weeks in advance. The number of Sundays in the holiday window is not fixed: it is five in 2025, 2026, 2027 and 2030, and six in 2028 and 2029, because Thanksgiving moves. A Class A‑7 license sells seven days a week without any of this, from 10 a.m. to midnight.
How much is a liquor license in Baltimore City?
A Class A beer, wine and liquor license is $2,060 a year under §12‑901(d), as is a Class A‑2 under §12‑902(e). A Class A‑7 is $2,336 under §12‑902.1(e), a Class B‑D‑7 is $2,336, a Class C is $860 and a Class D beer, wine and liquor is $1,284. The schedule was reset by Senate Bill 895 and House Bill 733 in the 2024 session after standing unchanged since 2008; the Class A fee rose from $858, an increase of 140.1%, while most other classes rose by about 55%. New applications and transfers carry a $600 application fee, and the license year ends on 30 April.
How is sales tax charged on a gift basket containing wine?
Maryland taxes alcoholic beverages at 9% and most other goods at 6%. The Comptroller’s published guidance allows a retailer to apportion the price of a mixed basket and charge 9% on the alcohol, 6% on the taxable merchandise and nothing on non‑taxable grocery items. But if the basket is sold for a lump sum with no apportionment, the retailer must collect 9% on the entire price. On a $100 basket containing $60 of spirits, $25 of glassware and $15 of grocery food, apportioning produces $6.90 of tax and a lump sum produces $9.00 — a difference of $2.10 per basket, or 30.4% more tax, decided entirely by whether the product is recorded as three lines or one. The 6% and 9% amounts must also be reported on separate lines of the sales and use tax return.
Is cooking wine taxed at 9% in Maryland?
No. The Alcohol, Tobacco, and Cannabis Commission states that only products fit for beverage purposes containing one‑half of 1% or more of alcohol by volume take the 9% rate, and that cooking wine, cooking sherry, vanilla and rum extracts and similar items are not subject to it because they are not intended for beverage purposes. Personal care and cleaning products containing alcohol are likewise outside the definition. In practice this means two visually similar bottles on adjacent shelves can carry different tax rates, which is a product‑data problem rather than a tax problem.
Can a Baltimore liquor store sell online and deliver?
Delivery is possible, and licensees who wish to deliver receive a letter of authorization from the Board of Liquor License Commissioners which is added to the license. The harder question is where the sale legally occurs. When app‑based delivery first reached Baltimore, the Board’s rules and regulations committee recorded the objection that state law and Board rules require a purchase of alcohol to be made at the licensed premises, and that an app purchase is made from the app maker on an off‑site server. The committee also raised third‑party solicitation and online age verification. The rules have since been revised, and any store planning to deliver should confirm the current position with the Board and with its own attorney. The practical consequence for software is that a storefront running on the store’s own domain and booking to its own register is a materially easier thing to describe as the licensed premises than a marketplace is.
Why did Drizly shut down and what did it mean for liquor stores?
Uber acquired Drizly for $1.1 billion in 2021 and announced in January 2024 that it would close the standalone app, which it did at the end of March 2024, folding alcohol delivery into Uber Eats. Drizly held no licenses and carried no inventory; it was a marketplace layer connecting thousands of independent retailers in more than 1,400 cities to their customers. Its closure removed a storefront, a delivery channel and, for the stores that had no other online presence, an entire customer relationship, in a single quarter and for reasons that had nothing to do with any individual store’s performance. It is the clearest recent argument in this trade for owning the storefront rather than renting a place on somebody else’s.
Sources and method
Everything above was read from primary sources on 1 September 2026. Statutes: Maryland General Assembly statute text for the Alcoholic Beverages and Cannabis Article §§12‑901, 12‑902, 12‑902.1, 12‑903, 12‑904, 12‑905, 12‑906, 12‑907, 12‑1101, 12‑1102, 12‑1103, 12‑1104, 12‑2003, 12‑2004 and 12‑2005, and for Business Regulation §17‑1807. Tax rates and the apportionment rule from Md. Tax‑General §11‑104 and the Alcohol, Tobacco, and Cannabis Commission’s published alcohol industry guidance. License counts, permit fees and the 30 April license year from the Department of Legislative Services evaluation of the Board of Liquor License Commissioners for Baltimore City, dated September 2024. The 2024 fee reset from the DLS fiscal note to Senate Bill 895, 2024 session. Market data: Census Bureau County Business Patterns 2023 county file, downloaded and filtered by us for Maryland and NAICS 445310. Vendor prices and HTTP status codes were read from each vendor’s own pricing page on 1 September 2026. Every arithmetic derivation in this article is our own and is shown in the tables so that you can check it. Nothing here is legal or tax advice; the statutes move, the Board’s rules move, and your attorney and your accountant should see any figure you intend to rely on.