Science8 min readMarch 19, 2026

How We Calculate Oxalate Values: The Science Behind Our Food Database

Most oxalate databases pull from a single source. Ours uses 15 peer-reviewed sources with a consensus algorithm that handles disagreement, outliers, and dry-weight corrections. Here's how it works.

Scientist working with data charts and laboratory equipment

When you look up a food's oxalate content online, you'll find wildly different numbers depending on the source. Spinach might be listed at 750 mg per serving on one site and 970 mg on another. Almonds might show 122 mg or 180 mg. Sweet potatoes range from 28 mg to 140 mg depending on who you ask.

This isn't because someone is lying. It's because oxalate content varies by growing conditions, variety, preparation method, and measurement technique. A single lab measurement of a single sample is a data point, not the truth.

OxalateGuard doesn't rely on a single source. Our food database pulls from 15 peer-reviewed research sources and uses a consensus algorithm to produce the most reliable estimate possible. Here's exactly how it works — no black boxes, no hand-waving.

a person with a light in their head
Photo by julien Tromeur on Unsplash

The Problem with Single-Source Data

Most oxalate lists you find online trace back to a single study — often the Harvard dataset, the Oxalate.org compilation, or an older USDA database. These are valuable starting points, but they each have limitations:

Variability between sources: Different labs measure different samples using different methods. A food measured in Australia may give different results than the same food measured in Thailand, because the cultivar, soil, and growing conditions are different.

Outdated measurements: Some widely-cited oxalate values come from studies done in the 1980s. Crop varieties and farming practices have changed. A measurement from 1984 isn't necessarily wrong, but it shouldn't be the only data point.

Dry-weight vs. fresh-weight confusion: This is the biggest trap in oxalate data. Some studies report oxalate per 100g of dried food, others per 100g of fresh food. Since drying removes water, dry-weight values can be 5-40x higher than fresh-weight for the same food. If a database doesn't correct for this, spinach suddenly looks 10x more dangerous than it already is.

A single source, taken at face value, can mislead you in either direction — making you fear safe foods or feel comfortable with dangerous ones.


Our Sources: 15 and Counting

OxalateGuard's database draws from the following peer-reviewed research sources:

  1. Harvard T.H. Chan School of Public Health — one of the most comprehensive datasets for common American foods
  2. Oxalate.org (compiled from FAO Bangladesh, NUTTAB Australia, USDA 1984, USDA Dr. Duke, Savage, Zarembski) — a meta-database that aggregates multiple smaller studies
  3. Wake Forest University Baptist Medical Center — clinical-grade measurements focused on patient-relevant foods
  4. MDPI 2023 — recent measurements using modern analytical methods
  5. KidneyCop — clinical-focused database
  6. Dr. Duke's Phytochemical Database — comprehensive but often dry-weight; requires correction
  7. Sally Norton — curated list focused on oxalate-sensitive populations
  8. Siener et al. (2006, 2016, 2017, 2021) — German research group with longitudinal data on oxalate in foods
  9. Judprasong 2006 — Thai food measurements
  10. Abdel-Moemin 2014 — Egyptian herbs
  11. Savage & Vanhanen — Indian spices, mushrooms, and other specialty foods
  12. Honow 2010 — comprehensive tea oxalate measurements
  13. Vanhanen 2011 — additional food measurements
  1. MDPI 2023 — recent measurements using modern analytical methods

When multiple sources have measured the same food, we don't pick our favorite. We run them through a consensus algorithm.


The Consensus Algorithm

Our algorithm handles three scenarios:

One Measurement

When only one source has measured a food, we use that value as-is. There's no alternative. We note in the food's detail page that only a single source is available, so users can calibrate their confidence.

Two Measurements

When two sources disagree, we check whether either value comes from a known dry-weight source (USDA 1984, Dr. Duke's Phytochemical Database). If a dry-weight value is more than 5x the other measurement, it's flagged as an outlier and excluded. The remaining value is used.

If neither is a dry-weight outlier, we average the two measurements. This is the most straightforward case.

Three or More Measurements

This is where the algorithm does the most work:

  1. Compute the median of all measurements
  2. Flag dry-weight outliers — any measurement from a known dry-weight source that exceeds 5x the median is excluded
  3. Return the median of the remaining (non-outlier) measurements

Why median instead of average? Because the median is robust to outliers. If four sources measure spinach at 750, 770, 800, and 780 mg, and a fifth reports 3,200 mg (a dry-weight value that slipped through), the average would be 1,060 mg — misleadingly high. The median would be 780 mg — accurate.


The Dry-Weight Problem (in Detail)

This deserves extra explanation because it's the single biggest source of error in public oxalate data.

Scientist in lab coat examines sample in laboratory.
Photo by Navy Medicine on Unsplash

When food scientists measure the oxalate in a food, they sometimes dry the sample first (removing all water) and then measure the oxalate per 100g of the dried material. This makes sense for long-term research — dried samples are shelf-stable and easier to work with in a lab.

When food scientists measure the oxalate in a food, they sometimes dry the sample first (removing all water) and then measure the oxalate per 100g of the dried material.

But you don't eat dried spinach. You eat fresh or cooked spinach, which is roughly 90% water by weight. A dry-weight measurement of 7,500 mg/100g translates to roughly 750 mg/100g in fresh spinach — a 10x difference.

Some databases report dry-weight values without clearly labeling them. The USDA 1984 dataset and Dr. Duke's Phytochemical Database both contain dry-weight measurements that can be 10-40x higher than fresh-weight values for the same food.

Our algorithm specifically identifies measurements from these sources and checks them against fresh-weight data from other sources. If a dry-weight value is wildly out of line (more than 5x the median of other measurements), it's excluded from the consensus calculation.

We also ran a one-time cleanup that removed 58 foods from our database where ALL available measurements came from dry-weight sources with no fresh-weight data to cross-reference. These entries would have been misleading, and we'd rather have no data than bad data.


Derived Values: Risk Level and Per-Serving

The consensus algorithm produces an oxalate-per-100g value. From there, we calculate two derived fields:

Oxalate per serving: Using standard serving sizes (e.g., 1/2 cup cooked vegetables, 1 ounce of nuts, 1 medium fruit), we calculate the oxalate you'd actually consume in a realistic portion. This is the number most people should pay attention to — 100g of almonds is a very different portion than 100g of lettuce.

Risk level: Based on the per-100g value:

  • Low (green): under 25 mg per 100g
  • Moderate (yellow): 25-99 mg per 100g
  • High (amber): 100-299 mg per 100g
  • Very High (red): 300+ mg per 100g

Both derived values are recalculated whenever the consensus value changes — for example, when we add a new research source. We run automated recalculation scripts to ensure these never go stale.

Both derived values are recalculated whenever the consensus value changes — for example, when we add a new research source.


Source Transparency

Every food in our database shows which sources contributed to its value. On any food's detail page, you can expand the source breakdown to see:

  • Each source that measured this food
  • The value each source reported
  • Whether the consensus algorithm flagged any values as dry-weight outliers
  • The final consensus value

We believe transparency builds trust. If you disagree with a value, you can see exactly how it was calculated and which sources informed it. There's no hidden formula.


Why This Matters for Your Decisions

The difference between a single-source database and a consensus-based one isn't academic. It directly affects what you eat:

woman in white scrub suit holding gray laptop computer
Photo by National Cancer Institute on Unsplash

Example: Sweet potatoes. One source reports 28 mg/100g. Another reports 141 mg/100g (dry-weight, not labeled). If you only saw the first number, you'd think sweet potatoes are safe. If you only saw the second, you'd never eat them again. Our consensus approach, after excluding the dry-weight outlier and analyzing remaining sources, produces a value that reflects what you'd actually encounter on your plate.

Example: Almonds. Sources range from 122 to 469 mg/100g. The high-end values are from dry-weight studies. After dry-weight correction, the consensus clusters around 180-200 mg/100g — still high, but not the panic-inducing 469 mg number.

Getting the number wrong in either direction has real consequences. Overestimate, and you avoid foods unnecessarily, making your diet more restrictive than it needs to be. Underestimate, and you eat something that triggers a stone.


Explore the Database

Our food database currently contains over 2,400 foods with oxalate data from 15 research sources. You can browse by category, search by name, or filter by risk level.

Every food page shows the per-serving and per-100g values, the risk level, the source breakdown, and any available swap suggestions for high-oxalate items.

If you can't find a food in our database, use our Barcode Scanner to check packaged products, or contribute missing data through Scout Mode to help build the community database.


The Bottom Line

Reliable oxalate data requires multiple sources, a method for handling disagreement, and explicit dry-weight correction. Single-source databases will always have blind spots and biases.

Our approach — 15 sources, median-based consensus, automated outlier detection — isn't perfect. No approach is when the underlying measurements are inherently variable. But it produces the most defensible estimate available from published research.

Transparent methodology. Multiple sources. No hidden formulas. That's the foundation of data you can actually trust with your health decisions.

Found this helpful?

Share it with someone managing kidney stones.

Written by Matt, founder of OxalateGuard — a two-time kidney stone survivor who built this app after his dietitian had to Google “oxalates.”

Read his story

Ready to Take Control?

Track your oxalate intake, scan products, and get personalized insights with OxalateGuard.

Start Tracking Free

Comments

Sign in to join the conversation.