Every column of the Magellan Longevity Open Evidence Dataset, with its type, meaning and — the part that matters for reuse — exactly which source field it came from. Machine-readable copies of this page: JSON, Markdown, Frictionless datapackage.
Encoding is UTF-8 throughout. CSVs follow RFC 4180: comma-delimited, " escaped by doubling, one header row, LF line endings. Multi-value cells use ; with no spaces. An empty cell means the source does not record that value — it is never a zero, never a placeholder, and nothing is imputed.
products130 rows × 32 fields. Primary key product_id. Files: products.csv, products.json, products.jsonl.
| Field | Type | Description | Provenance |
|---|---|---|---|
product_id | integer | Stable catalogue identifier. Resolves to https://magellanlongevity.com/p/<product_id>.html | data.js products[].id |
product_name | string | Retail product name as listed on the site. | data.js products[].name |
category_id | integer | Storefront category (1–7). | data.js products[].cat |
category_name | string | Human-readable category label. | data.js categories |
monograph_id | string | Compound/device monograph the product inherits its evidence from. Many products share one monograph. | data.js products[].mono |
compound_or_device | string | Title of that monograph — the active compound or device class actually studied. | data.js monographs[].title |
evidence_grade | string | One of six tier labels. See the rubric on https://magellanlongevity.com/data/ | index.html TIER + evidenceFor() |
evidence_grade_letter | string | Short letter form of the tier (A, B, C, C-, D). | index.html TIER[].grade |
evidence_tier_key | string | Machine key for the tier: strong | moderate | emerging | preliminary | tool | refuted. | index.html TIER |
grade_source | string | How the grade was arrived at: curated_product (physician-reviewed, product-specific), curated_compound (physician-reviewed at the compound level), instrument_default (diagnostic/wearable graded as a measurement tool), provisional_from_citation_count (conservative fallback, capped below Strong). | derived from EVID_PROD / EVID / isTool() |
grade_rationale | string | The plain-language reason shown to readers for why this grade applies. | index.html evidenceFor().reason |
grade_caveat | string | The published caveat — where the evidence is weak, null, conflicted or industry-funded. Negative findings are retained deliberately. | index.html EVID/EVID_PROD caveat |
studied_dose | string | The dose range actually used in human trials, where a verified range exists. Empty where none has been established — never inferred. | dosedata.js studyDose, else EVID.dose |
studied_dose_source | string | Which source supplied studied_dose. | derived |
dietary_dose | string | How much of the compound is obtainable from food, where that is meaningful. | dosedata.js foodDose |
pathway_id | string | Mechanistic system key assigned to the product. | data.js products[].sys |
pathway_name | string | Human-readable pathway name (e.g. "NAD+ / Sirtuin Axis"). | index.html PATH_META |
citation_count | integer | Number of peer-reviewed study records linked to this product's monograph. | count of monographs[].studies |
distinct_pmid_count | integer | Distinct PubMed IDs among those citations (a few papers appear under more than one internal key). | derived |
studies_with_writeup | integer | How many of those citations have a full structured write-up in table 2. | derived |
pmids | string | Semicolon-separated PubMed IDs for every linked citation. | derived |
study_keys | string | Semicolon-separated join keys into table 2 (studies.study_key). | derived |
key_finding_quote | string | A verbatim sentence from the specific study used to justify the pathway assignment. Quoted, never paraphrased. | data.js studies[].q |
key_finding_pmid | string | PubMed ID of that study. | data.js studies[].pmid |
key_finding_journal | string | Journal of that study. | data.js studies[].j |
key_finding_year | integer | Publication year of that study. | data.js studies[].y |
key_finding_source | string | Whether the key finding came from the curated pathway justification (product.why) or the first monograph citation. | derived |
listed_price_usd | number | Typical listed US price at the release date. A snapshot, not a live price. | data.js products[].price |
affiliate_search_url | string | Amazon search URL carrying the Associates tag. Commission does not affect the grade (editorial firewall). | derived |
product_page_url | string | Canonical static product page. | derived |
category_page_url | string | Canonical static category page. | derived |
monograph_page_url | string | Canonical molecule monograph page, where one is published. Empty otherwise. | derived, validated against sitemap.xml |
studies2692 rows × 32 fields. Primary key study_key. Files: studies.csv, studies.json, studies.jsonl.
| Field | Type | Description | Provenance |
|---|---|---|---|
study_key | string | Internal join key. Primary key of this table; join to products.study_keys. | data.js studies key / study-writeups.js key |
record_type | string | catalog_citation | catalog_citation_with_writeup | writeup_only. | derived |
pmid | string | PubMed identifier. | data.js studies[].pmid / write-up pmid |
doi | string | Digital Object Identifier where recorded. Empty where the catalogue has none — never reconstructed. | data.js studies[].doi |
doi_url | string | Resolvable https://doi.org/ URL. | derived from doi |
pubmed_url | string | Resolvable PubMed URL. | data.js studies[].url, else derived from pmid |
title | string | Article title as recorded. | data.js studies[].t / write-up title |
journal | string | Journal name as recorded. | data.js studies[].j |
year | integer | Publication year. | data.js studies[].y |
primary_compound | string | Title of the first monograph citing this study (deterministic, insertion order). | derived |
linked_compounds | string | Semicolon-separated titles of every monograph citing this study. | derived |
linked_monograph_ids | string | Semicolon-separated monograph keys citing this study. | derived |
linked_monograph_count | integer | How many monographs cite it. | derived |
linked_product_ids | string | Semicolon-separated product ids that inherit this citation. | derived |
linked_product_count | integer | How many catalogue products inherit this citation. | derived |
cited_by_monograph | boolean | False for records held in the catalogue but not yet attached to a monograph. | derived |
outcome_statement | string | The outcome in the source's own words: the write-up takeaway where one exists, otherwise the verbatim quoted finding. | study-writeups.js takeaway / data.js studies[].q |
outcome_statement_source | string | Which field outcome_statement came from. | derived |
reported_direction | string | favorable | mixed | no_difference | unfavorable | unclear. A coarse rule-based reading of the direction the source itself reports — NOT an independent appraisal. See the classifier notes below. | derived |
direction_rule | string | Which branch of the classifier fired. | derived |
direction_evidence | string | The exact phrase(s) that triggered the classification, so any row can be audited or rejected. | derived |
direction_basis | string | Which text was classified: the write-up conclusion+takeaway, or the catalogue quote fragment. | derived |
has_writeup | boolean | Whether a full structured write-up exists. | derived |
writeup_url | string | Canonical study write-up page where one exists. | derived |
research_question | string | The question the study set out to answer (write-ups only). | study-writeups.js question |
hypothesis | string | The stated hypothesis (write-ups only). | study-writeups.js hypothesis |
methods | string | Design, population, dose and duration (write-ups only). | study-writeups.js methods |
results | string | Reported results (write-ups only). | study-writeups.js results |
conclusion | string | The authors' conclusion (write-ups only). | study-writeups.js conclusion |
limitations | string | Stated limitations, retained verbatim including "none stated" (write-ups only). | study-writeups.js limitations |
source_file | string | Which source file(s) the row was assembled from. | derived |
is_primary_record_for_pmid | boolean | True for exactly one row per PMID. Filter on this to de-duplicate to unique papers. | derived |
evidence_tier_key| Value | Label | Letter | Definition | Rows |
|---|---|---|---|---|
strong | Strong evidence | A | Consistent randomized human trials — or large, convergent human cohort data, sometimes backed by genetic (Mendelian) evidence — show a real benefit. That benefit is often a specific, measurable outcome (blood pressure, blood glucose, joint pain, muscle strength) rather than proof of a longer lifespan; each product’s page and caveat say exactly what the strong evidence is <i>for</i>. | 11 |
moderate | Moderate evidence | B | Several human studies point the same way, but with limits — size, duration, funding, or mixed results. | 74 |
emerging | Emerging evidence | C | Mechanism is plausible and early human data exists, but it is small, short, or not yet replicated. | 20 |
preliminary | Preliminary | C- | Mostly mechanistic or animal data, or very few human studies. Interesting, not proven. | 4 |
tool | Measurement tool | B | A test or sensor. Graded on what the marker predicts and how reliably it measures it. | 20 |
refuted | Tested — did not work | D | Adequately tested in humans and the result was negative. This is not thin evidence — it is sufficient evidence pointing at no benefit, which is why it is graded below Preliminary rather than above it. | 1 |
grade_source| Value | Meaning | Rows |
|---|---|---|
curated_product | A physician-assigned grade specific to this product — used where products sharing a compound genuinely differ (for example nine wearables with different validation quality). | 26 |
curated_compound | A physician-assigned grade for the underlying compound, inherited by every product built on it. | 104 |
instrument_default | A diagnostic or wearable, graded on what it measures and how well that marker predicts health rather than on a treatment effect. | 0 |
provisional_from_citation_count | Conservative fallback for uncurated entries, derived from the number of linked studies and capped below “Strong”. | 0 |
reported_direction| Value | Meaning | Rows |
|---|---|---|
favorable | The source's own summary reports a benefit in the direction being tested. | 971 |
mixed | Benefit and no-difference cues co-occur, or an unfavorable cue co-occurs with anything else. | 97 |
no_difference | The source reports no significant difference, a failed endpoint, or an explicit absence of benefit. | 144 |
unfavorable | The source reports harm, or — for observational biomarker papers — that higher exposure tracks with worse outcomes. | 115 |
unclear | No rule fired. Usually a descriptive, mechanistic or review-style conclusion. NOT a null result. | 1365 |
reported_direction is computedreported_direction is produced by a deterministic, published rule cascade, not by a human or a language model. Unfavorable cues are checked first, then no-difference cues, then favorable cues; a negation guard suppresses a cue when it is preceded within 45 characters by no / not / without / free of / lack of / absence of / neither. Rows where an unfavorable cue co-occurs with any other cue, or where a no-difference cue co-occurs with a favorable cue, are labelled mixed. Rows where nothing fires are labelled unclear and are NOT counted as null results. For observational biomarker papers the "direction" is the direction reported for the biomarker, not for an intervention. Every row carries direction_evidence so the classification can be audited or discarded.
It is applied to the write-up conclusion plus takeaway where a structured write-up exists (314 rows), and to the verbatim catalogue quote otherwise (2378 rows). That difference is recorded per row in direction_basis, because a fragment quoted from an abstract supports a weaker inference than a full conclusion sentence.
If you disagree with the classifier, you can rebuild the column yourself: outcome_statement, conclusion and takeaway are all shipped verbatim.
products.study_keys --split(";")--> studies.study_key
studies.linked_product_ids --split(";")--> products.product_idTable 2 contains 46 rows that repeat a PubMed identifier already present under another internal key. Filter is_primary_record_for_pmid == true to reduce it to 2646 unique papers before counting anything.
import pandas as pd
p = pd.read_csv("products.csv")
s = pd.read_csv("studies.csv")
unique_papers = s[s.is_primary_record_for_pmid] # 2646 rows
strong = p[p.evidence_tier_key == "strong"] # 11 rows
null_findings = s[s.reported_direction == "no_difference"] # 144 rowsLicence, citation, statistics and limitations.
Table 1 rendered for reading.
The citation graph, visualised.
The vocabulary behind pathway_name.