Methodology

Last updated July 11, 2026

How we source label data

Guaranteed analysis (minimum protein, minimum fat, maximum fiber, maximum moisture) and calorie content (kcal/kg, and kcal/cup or kcal/can where the brand publishes it) are pulled from the official product label or a label PDF — the same document that's legally required on the bag or can, not a brand's marketing summary. Every SKU in our cost database carries a source URL pointing at the page we pulled it from. Where a brand's own site is not fetchable (some are JavaScript-rendered behind bot protection), we use a retailer product-detail page that quotes the same label verbatim, and we note that in the record.

Package sizes come from the sizes a brand actually sells that SKU in, aggregated from label and retailer listings.

How cost per 1,000 kcal is computed

cost per 1,000 kcal = price ÷ (bag weight in kg × kcal/kg) × 1,000

We normalize to 1,000 kcal instead of cost per bag or cost per pound because neither of those accounts for calorie density. Two 30 lb bags priced identically can differ by 20%+ in what they actually cost to feed a dog a fixed number of calories per day, if one food is denser than the other. Cost per 1,000 kcal is the only unit that lets you compare food A to food B on a like-for-like basis.

Price and bag size are matched to a specific Amazon listing for that exact SKU, snapshotted July 11, 2026. Prices move; the number on each page is a snapshot, not a live price feed, until noted otherwise.

The bag-size caveat

Smaller bags of the same food cost more per kcal than larger bags — that's ordinary bulk pricing, not a data error. Don't read "high cost per 1,000 kcal" as "expensive food" without checking whether you're looking at a small trial bag or a puppy-size bag of something that's much cheaper per kcal in the large size.

What's next: dry-matter basis and estimated carbohydrates

Guaranteed analysis percentages are reported "as fed," which includes each food's moisture content — so a wet food's numbers aren't directly comparable to a dry food's. We're building out a dry-matter basis conversion so foods with very different moisture content can be compared fairly:

Dry-matter % = nutrient % ÷ (100 − moisture %) × 100

We'll also publish an estimated carbohydrate figure, since pet food labels are not required to list carbs directly:

Estimated carbs % = 100 − protein % − fat % − moisture % − fiber % − ash %

This is an estimate (ash is often not disclosed and gets approximated), and we'll label it clearly as such wherever it appears rather than presenting it as a directly measured value.

How we source recalls

The recalls page is built from the FDA's own Recalls, Market Withdrawals & Safety Alerts feed, filtered to Animal & Veterinary / Pet Food. We record the date, brand, product, the FDA's own stated reason, the responsible company, and a link to the official notice. We don't edit or summarize the reason text — what's on the page is what the FDA published. This covers both dog and cat food and is checked against the live feed, not built once and left to go stale.

What we don't do

Affiliate disclosure

See the full affiliate disclosure. In short: no affiliate links are live on the site yet, and when they go live, they will never influence which foods appear in the database or how they're ranked.

Corrections

Found a wrong number, a stale price, or a label we misread? Email erinrose451@gmail.com with the SKU and what's wrong. We fix verified errors and update the "last updated" date on the affected page.