Arizona Grocery Sales Tax: Code 062 vs 017 Explained
Arizona Grocery Sales Tax: How Supermarkets Split Food (062) From Everything Else (017)
A gallon of milk and a bottle of shampoo ring up on the same receipt β but Arizona taxes them completely differently. Here is how grocery stores file it correctly, and how CactusComply’s TPT category routing does the split automatically.
If you run a supermarket, corner market, or specialty grocery in Arizona, your point of sale mixes two worlds on one receipt: food for home consumption and non-food retail. Arizona’s Transaction Privilege Tax (TPT) treats those two categories under separate business codes β 062 for grocery and 017 for everything else β and taxes them at wildly different rates. Getting that split right is the difference between an accurate TPT-2 return and one that reports your sales on the wrong lines. This is exactly the problem CactusComply solves with TPT category routing. Watch the 90-second explainer, then we’ll break down the numbers.
Two rates, three layers: 062 vs 017
Arizona builds a retail store’s tax rate in three stacked layers β state, county, and city. But food for home consumption in Arizona is exempt from the state and county layers entirely. It only ever owes the city’s rate, and even that rate is usually lower. Here are the real, verified rates for a grocery store in Glendale (Maricopa County).
The two facts that matter: no state tax and no county tax on food (that’s 6.3% that grocery simply never touches in Maricopa County), and even the city rate is lower for food β 2.5% instead of 2.9%. Add it up and a grocery sale is taxed at 2.5% while a non-food sale on the very same receipt is taxed at 9.2%.
The catch: it’s all on one receipt
A shopper grabs bananas, milk, rice, jasmine rice, and garri β that’s food, code 062. In the same basket: shea butter, laundry detergent, paper towels, and a six-pack β that’s non-food, code 017. It all scans onto one receipt. To file an accurate grocery store TPT return in Arizona, you have to sort every line into the right bucket, then report each bucket on its own line of the TPT-2. Get the split wrong and the whole return is wrong.
What a full month looks like
Say a Glendale market rings up $10,000 in a month β a typical blend of 65% food and 35% non-food. Here’s why the split isn’t just tidy bookkeeping: it changes both the tax you report and which lines it lands on. Route it correctly and the return is right. Lump everything onto the 017 line and you’ve overstated your non-food base by $6,500 β an inaccurate return, filed on the wrong lines.
The point of that contrast is accuracy, not avoidance. The correct figure is $484.50 because $6,500 of it is grocery, which Arizona simply does not tax at the state and county level. Filing it any other way misreports your sales to the Arizona Department of Revenue. The goal is a return that matches reality β filed right, automatically.
How CactusComply’s TPT category routing works
Instead of hand-sorting hundreds of line items every month, you set the rules once. CactusComply reads each item’s category from your POS export and routes it to the correct AZDOR business code automatically.
- Add both business codes to your location. Keep 017 as the primary retail code and add 062 β Retail Food for Home Consumption as the grocery add-on.
- Set your routing rules. Map POS categories to codes with short keywords β
produce,dairy,meat,bakery,frozen,groceryβ 062;beauty,household,paper,wine,petβ 017. The dialog previews how many of your real categories each rule matches. - Upload your sales β the split is automatic. At the allocate step CactusComply pre-fills the month’s split (e.g. 65% grocery / 35% non-food) with a HIGH-confidence badge. Review it, continue, and your TPT-2 files with two lines under one location.
That’s supermarket sales tax software doing the tedious part: no spreadsheets, no line-by-line sorting, and a return that reflects exactly what you sold.
Frequently asked questions
Is food taxed in Arizona?
Food for home consumption is exempt from Arizona state tax and county tax. Many cities, however, apply their own lower rate to grocery under business code 062 β in Glendale that’s 2.5%. So a grocery sale can still carry a small city tax even though it owes nothing at the state or county level. Prepared and restaurant food is taxed differently and is not “food for home consumption.”
What is TPT code 062 vs 017?
062 is the Arizona TPT business code for “Retail Food for Home Consumption” β groceries. 017 is the general retail code for non-food merchandise. A grocery store carries both, reports each on its own line of the TPT-2, and applies each code’s rate: city-only for 062, the full combined state + county + city rate for 017.
Do grocery stores pay city tax on food in Arizona?
In many Arizona cities, yes β grocery is taxed under code 062 at the city level, usually at a lower rate than non-food (Glendale: 2.5% vs 2.9%). A handful of large cities such as Phoenix, Mesa, and Tucson don’t tax grocery at the city level at all; there, grocery is handled through a deduction rather than a 062 line. CactusComply only offers the codes your specific location actually qualifies for.
Do I have to sort every line item myself?
No. That’s the entire point of category routing. You set keyword rules once, and CactusComply reads each item’s POS category on upload and routes it to 062 or 017 for you, then pre-fills the month’s allocation. You review the split and file β no manual sorting, no spreadsheets.
File your grocery TPT-2 right β automatically
Set your 062-vs-017 rules once and let CactusComply split every month for you. Two lines, one location, filed accurately the first time. Run a grocery or market in Arizona? Let’s get you set up.
Rates shown are the verified Glendale, Arizona (Maricopa County) rates. This article is general information, not tax advice; confirm your city’s treatment with the Arizona Department of Revenue.