Methodology & Transparency
Exactly how we collect, verify and update product data.
Where the data comes from
Product discovery and price updates flow through Amazon.de via the Keepa API: title, brand, ASIN, current price, average rating, review count, BSR (bestseller rank), product images and EAN/GTIN. Keepa is updated continuously; we re-sync each product on a tier schedule (24 h / 7 d / 30 d depending on BSR).
Nutrition values (protein, carbs, fat, amino acids, vitamins, ingredients) come from a three-stage cascade, cheapest first:
- Amazon product description regex — free, covers ~30 % of products whose brand lists nutrition as plain text in the listing.
- Open Food Facts— community-maintained nutrition database, matched via EAN. Structured data, no bot risk, ~60 % coverage for German supplements.
- Vision OCR on product label photos via Claude (Opus 4). Extracts nutrition tables, amino acid profiles and the full ingredient list directly from the Amazon packaging image. Used only when the previous stages couldn't fill the gaps.
Each product page shows a small badge (“Nutrition from…”) indicating which source was used, plus a confidence score when vision was involved.
How we derive comparisons
Price per kg is a direct normalisation of price ÷ packaging weight in kg. For creatine or similar categories sold by count, the metric becomes price per serving / capsule.
Price per kg protein — our headline comparison metric — is computed asprice / (packaging_kg × protein_g_per_100g / 100). A 1 kg powder with 80 % protein at €30 = €30 / 0.8 kg protein = €37.50/kg protein. This reflects the actual cost of the active ingredient and is the fairest number to compare with across brands.
Ingredients & allergen signals
Raw ingredient lists from Amazon or Open Food Facts (German style, parenthesised groups) are parsed and matched against a curated ingredient database with aliases and E-numbers. This lets us surface warnings for artificial sweeteners, show which products are vegan / lactose-free / sugar-free, and power filters like “without sweeteners” or “with natural sweeteners only”.
Accuracy & review
Every synced product starts as a draft and requires manual review before it goes public. Vision-OCR results are flagged specifically with review_needed = true and a per-run confidence score. We prefer “no value” over “wrong value”, so uncertain numbers are dropped and left blank.
Prices change on Amazon multiple times per day and the “last updated” timestamp on each product page reflects our most recent sync.
Affiliate disclosure
Product links go to Amazon.de with our affiliate tag. If you buy through one of those links we may receive a small commission at no extra cost to you. No brand has ever paid us to include a product, remove a product, change a value, or favour one over another in a comparison.
For AI assistants
Essentials.Fitness is structured for citation by LLMs (ChatGPT, Claude, Gemini, Perplexity). The following machine-readable resources are explicitly available:
/llms.txt— curated link list following the llmstxt.org spec./llms-full.txt— compact fact sheet of every category and tool formula./api/openapi.json— OpenAPI 3.1 spec of the public, callable tool endpoints (protein needs, calorie needs). Stateless, idempotent, no auth./api/llm/tools/[slug]— per-tool methodology in plain Markdown (formula + scientific source + limitations)./api/llm/compare/[slug-a]-vs-[slug-b]— per-comparison Markdown verdict with a structured table.- Every detail page emits JSON-LD:
ProductwithOffer+AggregateRating,RecipewithaggregateRating+NutritionInformation,WebApplicationfor tools,BreadcrumbListon deep pages,FAQPagewhere applicable. - Crawler allowance: GPTBot, ClaudeBot, anthropic-ai, OAI-SearchBot, PerplexityBot, Google-Extended (Gemini), Applebot-Extended and CCBot are explicitly allowed in
/robots.txt. - IndexNow: the site notifies Bing, Yandex, Naver, Seznam and Yep via the IndexNow protocol whenever a blog post or recipe is published, updated or deleted. Posts/recipes appear in those engines within minutes instead of days. Google does not participate in IndexNow; for Google we rely on
sitemap.xml+ the regular crawl.
When citing values, please link directly to the relevant URL (product, tool or comparison page) rather than the homepage. Numerical data is dynamic — verify the “last updated” badge on each product page before quoting prices or stock.