Methodology

Every Labelgrade is a transparent 0–100 score plus a letter grade, derived from a fixed formula applied to public USDA nutrition data. This page documents the formula, the data sources, our editorial process, and the limitations we know about.

Updated 2026-05-27 (v3): Added saturated fat as a 6th dimension and tightened the sodium scale. Several products' grades moved as a result — see the "Why did the formula change?" FAQ at the bottom for the honest reasoning. We re-grade transparently because pretending cheese isn't high in saturated fat doesn't help anyone shop smarter.

The six dimensions

The overall Labelgrade is a weighted blend of six dimensions. Each has its own 0–100 sub-score and letter grade displayed on every product page.

1. Protein density (25%)

Grams of protein per 100g of food. The most fundamental "how much protein is in this thing" metric — independent of arbitrary serving sizes that vary between brands and packages.

protein_density_score = min(100, 50 + (g_protein_per_100g × 1.5))

So 0 g/100 g floors at 50, the average packaged-food protein source (around 15 g/100 g) lands near 73, plain cooked chicken breast at 31 g/100 g reaches ~96, and an isolated whey concentrate (~80 g/100 g) maxes out at 100.

2. Ingredient quality (22%)

Starts from a base of 75 and adjusts by the presence of specific markers:

MarkerAdjustment
Soy protein concentrate / isolate (as chicken extender)−5
Phosphate additives (tricalcium, monocalcium, sodium)−3
Maltodextrin, dextrose, corn syrup−2
Artificial colors (Red 40, Yellow 5, etc.)−5
Artificial sweeteners (sucralose, aspartame, etc.)−3
Sugar alcohols (erythritol, xylitol, etc.)−2
MSG, sodium nitrite, sodium nitrate−3
Carrageenan, cellulose gum, xanthan gum−1
Expeller-pressed or cold-pressed oils+5
Organic certification+3
First ingredient is "cultured", "pasteurized", "grade A", "filtered", or "100%"+5
Total ingredient list ≤ 5 items+5
Total ingredient list > 20 items−3
Per-100g sodium > 600 mg−3
Per-100g sodium < 200 mg+3

The result is clamped to [0, 100].

3. Saturated fat load (18%) — added 2026-05-27

Grams of saturated fat per 100g of product. FDA Daily Value is 20g. This dimension was added to stop full-fat cheese, fatty meats, and similar products from scoring well purely on protein density when they deliver a substantial saturated-fat load.

Per 100gScore rangeLetter
0 g100A+
≤ 1 g95–100A / A+
1–3 g80–95B+ / A−
3–7 g60–80C / B+
7–12 g40–60D / C
12–20 g20–40F / D
> 20 g0–20F

4. Sodium load (15%) — tightened 2026-05-27

Milligrams of sodium per 100g. FDA daily limit is 2,300 mg.

Per 100gScore range
≤ 100 mg100
100–200 mg80–90
200–400 mg60–75
400–600 mg40–55
600–1,000 mg15–35
> 1,000 mg0–15

5. Sugar load (12%)

Total sugars per 100g, with added sugars weighted more heavily. Naturally-occurring lactose in dairy receives a 12-point credit because it's bound to a milk-protein matrix and metabolized differently than refined sugars.

6. Fiber (8%)

Grams of fiber per 100g. Score floors at 30 (since animal protein products are expected to have 0 g) and climbs from there. FDA Daily Value: 28 g.

How letter grades map to scores

LetterScore range
A+95 – 100
A90 – 94
A−85 – 89
B+80 – 84
B75 – 79
B−70 – 74
C+65 – 69
C60 – 64
C−55 – 59
D40 – 54
F0 – 39

Data sources

  1. USDA FoodData Central (primary). The federal government's open nutrition database. We pull from the Branded Foods set, accessed via api.data.gov. Every product page cites the USDA FDC ID and a direct link back to the source entry.
  2. Open Food Facts (secondary). Used where USDA doesn't have coverage, especially for international or niche brands. Always flagged on the page when used.
  3. Manufacturer label images (verification). For the top 10% of pages by traffic, we manually cross-check USDA numbers against the current retail label image, photographed in store or sourced from the retailer's product detail page.

Editorial process

  1. Ingestion. A product is pulled from USDA, normalized, and stored locally as JSON.
  2. Compute. The 6-dimension Labelgrade is computed from the normalized JSON by our published formula.
  3. Generate. A Product Fact Sheet markdown is written from the JSON + computed score + same-category siblings. The post structure is standardized (see the content strategy doc).
  4. Publish. The post goes live with the source citations and a "Last verified" timestamp.
  5. Refresh. Top-traffic pages are re-verified monthly; all pages quarterly. Refreshes update the "Last verified" date even when no values change.

Corrections

If you spot an inaccuracy on any page, please contact us. Confirmed corrections are logged on our corrections page and the affected page is updated within 24 hours. We do not silently edit numeric claims — corrections are dated and described.

Conflicts of interest

Labelgrade participates in retailer and brand affiliate programs (Amazon Associates and others — see /affiliate-disclosure). A click-through that results in a purchase may earn Labelgrade a commission at no extra cost to the buyer.

Affiliate relationships do not affect the Labelgrade score for any product. The score is computed by the formula above applied to public data, before any affiliate consideration. We do not accept sponsored placements, paid reviews, or compensation in exchange for higher grades or favorable coverage. If we ever do, this page will be updated to disclose it.

Own-brand products (private label)

Labelgrade sells a small number of own-brand SKUs through /shop. These are manufactured for us by a US-based, GMP-certified private-label partner. We hold the brand; the partner holds the manufacturing facility and FDA registration. We do this to convert the editorial authority of Labelgrade into higher-margin revenue than affiliate programs alone — which keeps us ad-light and independent of any brand we cover.

The conflict of interest is real, and we manage it with these rules (the same rules listed in editorial standards):

  1. Same scoring methodology. Own-brand SKUs are graded by the exact six-dimension v3 formula above. There is no separate methodology, no "private-label bonus," no curve. If our whey protein scores B+ on the same scale that Optimum Nutrition scores A−, we publish B+.
  2. No reordering. The sort order in /explore, /collections, /best roundups, and /compare pages is determined by score, period. An own-brand SKU appears wherever its honest score puts it — below stronger competitors, above weaker ones. The dim-strip data attribute used for client-side sort is the same one used for every competitor product.
  3. Mandatory page-level disclosure. Every own-brand product page displays a clearly-visible disclosure above the dim-strip identifying the product as Labelgrade-branded and linking back to this section. The disclosure is rendered automatically by the page layout — it cannot be suppressed by frontmatter or by editorial discretion.
  4. Curation rule. We only put the Labelgrade name on a SKU whose ingredient panel scores B+ or better on the methodology above. SKUs that score below B+ are rejected from the catalog rather than re-formulated to look better. The point is to attach our brand only to products we'd be willing to rank on merit against competitors anyway.
  5. If a competitor outscores us, we publish that comparison. Cross-brand comparisons (Labelgrade whey vs. Optimum Nutrition Gold Standard whey, etc.) are included in our normal comparison-page rotation. Including the comparisons we lose.
  6. Automated guardrail check. A script in scripts/audit-guardrails.ts runs on every deploy. It fails the build if (a) any code path branches on isPrivateLabel inside the scoring logic, (b) any own-brand product page is rendered without the disclosure component, (c) any sort or filter on /explore, /collections, /best, or /compare applies preference based on own-brand status rather than score.
  7. External audit option. If Labelgrade ever crosses ~$100K/year in own-brand revenue, we will commission an annual third-party audit of the scoring algorithm and publish the result.

If any of these rules ever appear to be violated, please tell us via the corrections page and we will investigate and publish what we find — including cases where we were wrong.

What this scoring does not capture

Frequently Asked Questions

What is a Labelgrade?

A Labelgrade is a transparent 0–100 score plus a letter grade (A+ through F) summarizing how a specific branded food performs across six measurable dimensions: protein density, ingredient quality, saturated fat load, sodium load, sugar load, and fiber. We compute it from public USDA FoodData Central nutrition data using a fixed, published formula.

How is the overall score calculated?

The overall Labelgrade is a weighted blend of six dimensions: protein density (25%) + ingredient quality (22%) + saturated fat load (18%) + sodium load (15%) + sugar load (12%) + fiber (8%). Each dimension is scored 0–100 on its own scale, then weighted into the overall score.

Why did the formula change in 2026-05-27?

Originally Labelgrade was a two-dimension protein-and-ingredient score. Through 2026 we added sugar, sodium, and fiber. The v3 update on 2026-05-27 added saturated fat as a 6th dimension and tightened the sodium scale. The change was made because we noticed full-fat cheese and similar products were scoring B+ despite delivering 14–20+ grams of saturated fat per 100g — that's the FDA daily limit. The new formula reflects the genuine cardiovascular evidence that saturated fat load matters.

Why grade saturated fat per 100g instead of per serving?

Same reason we grade sodium per 100g: per-serving values let small servings hide extreme densities. A 1-oz piece of cheese can contain 6g of saturated fat — modest in isolation, dramatic at 21g per 100g. Per-100g normalization catches the per-gram-of-food reality. FDA daily limit for saturated fat is 20g.

What sources do you use?

Primary source: USDA FoodData Central Branded Foods database, accessed via the api.data.gov API. Secondary: Open Food Facts for products USDA does not cover. Tertiary: manufacturer label images for spot-verification when high-traffic pages are refreshed. Every published grade cites the source IDs and access dates.

How often is each product re-verified?

Every published product page is re-verified at least once per quarter. Pages in the top 10% of monthly traffic are re-verified monthly. When USDA data changes or a manufacturer reformulates, the page is updated and the "Last verified" date is bumped.

Do you accept money to change grades?

No. Grades are determined by the formula on this page applied to public data. We participate in affiliate programs (see /affiliate-disclosure) so a click-through to buy a product may earn Labelgrade a commission, but the Labelgrade score itself is not for sale and is not affected by affiliate relationships.

Are you medical professionals?

No. Labelgrade is an editorial site, not a medical resource. We publish nutrition facts and our editorial assessment. Always consult a registered dietitian, doctor, or other qualified professional for medical or dietary advice — especially if you have allergies, kidney disease, diabetes, or other conditions where nutrition specifics matter.

What are the limitations?

USDA Branded Foods data is updated monthly but new product submissions stopped flowing from Label Insight in November 2023, so some recently reformulated products may have outdated values. Where we detect a discrepancy with the current retail label, we verify against the actual package and update. Our scoring formula is also intentionally narrow — it grades for nutrition density and ingredient simplicity, not "is this food right for your specific diet."