Methodology
DataRank v6.0 Citation-Only 1-Hop
DataRank uses a citation-only 1-hop approximation. FAIR/repository and DataCite reuse metadata remain visible for context and auditing, but do not enter the score.
What's a data paper?
Most scientific papers describe a new finding. A data paper is different: its main contribution is the data itself — a database, cohort, atlas, benchmark, or genomic resource that other scientists reuse in their own work. GTEx, TCGA, UK Biobank, the Framingham Heart Study, and the Protein Data Bank are familiar examples.
This distinction matters because DataRank only ranks data papers. A method paper or a review can rack up citations for reasons that have nothing to do with sharing data — it's cited because someone ran the algorithm or summarised the field. To measure data sharing we first have to isolate the papers whose citations actually signal data reuse.
But “is it a data paper?” is too blunt on its own. A great many papers report a finding and deposit the data behind it — a study whose results rest on an RNA-seq series it released to GEO is sharing data, even though the paper isn't itself a dataset. So the corpus is split three ways: papers that are data, papers that deposit data, and papers with no detectable release. We detect the middle class from declared repository accessions (GEO, dbGaP, PRIDE, PDB and similar) recorded on the paper, so the flag is always traceable to the accession that produced it.
The corpus, by data class
loading…
- Data papers — the paper is the dataset—
- Papers that deposit data — a finding paper that released a dataset—
- No data released — no deposit detectable from the record—
The classes are disjoint: a data paper that also deposits a dataset is counted once, as a data paper. Counts are live and shift as classification and deposit detection continue across the corpus. Only the first class is ranked by DataRank.
How we identify them — DrPaper
DrPaper is the AI classifier we built for the job. Under the hood it's a fine-tuned SciBERT — a 110M-parameter language model pre-trained on scientific text — that we re-trained on roughly 4,000 hand-labeled papers. On validation it reaches an F1 of 0.9153.
We then stress-tested it on 38 known edge cases spanning 15 categories — consortium genomics, brain atlases, cohort profiles, database updates, benchmarks, clinical databases, genome resources — and DrPaper got all 38 right. That includes landmark resources like GTEx, TCGA, the Framingham Heart Study, UK Biobank, and the RCSB Protein Data Bank, all correctly flagged as data papers because their citations come primarily from data reuse. It also correctly rejected influential methods papers — AlphaFold, DESeq2, and BWA — which are cited heavily for their algorithms, not their data.
The model, the labeled training set, and the fine-tuning notebook are all open. See Resources for direct links to the HuggingFace model, the Kaggle notebook, and the labeled dataset.
Where this shows up in the product
- ·Every paper detail page shows a DrPaper confidence score and a data-paper / not-a-data-paper label.
- ·The leaderboards default to data papers only. You can switch to non-data papers from the “Paper type” filter.
- ·Author and institution scores sum DataRank over their data papers — so the ranking rewards data sharing rather than total output.
DOIphin — federated metadata aggregator
Before any paper can be ranked, its metadata has to be assembled — and no single source is complete. DOIphin is the engine we built for that job. Given a DOI, it queries 14+ scholarly APIs in parallel and cross-walks the results into one unified record: bibliographic metadata, open-access status, author and institution identifiers, funder/award links, and any datasets the paper deposited or reused.
Crucially, DOIphin also resolves the citation and link graph — the edges between a data paper and the works that cite it — which is the substrate DataRank scores. FAIR and DataCite reuse signals are aggregated here too, shown alongside each paper for context but deliberately kept out of the score (their coverage is too uneven across repositories to rank on).
Sources cross-walked
DOIphin is open source. See Resources for the repository and API.
v6.0 — Citation-Only 1-Hop DataRank
CurrentMay 2026
Core equations
B(p) is the paper's own citation count under a log scale. N(p) sums the same log-scaled count over the papers that cite it (citers), each weighted by 1 / their reference count so a citer that cites thousands of papers contributes less per edge than one that cites a handful. Self-citations are removed by matching OpenAlex author IDs. An optional citer-diversity multiplier D(p) on the network term is off by default (identically 1) and documented in the technical reference below. FAIR and DataCite signals are visible alongside the score for context but do not enter it — their coverage is too uneven across repositories to use as a ranking signal.
Scope & defaults
- Damping d = 0.85 (network term weight; the same value used by Google's original PageRank).
- Up to 200 citers fetched per paper, sorted by their own citation count so the most influential are always included.
- Percentile ranking covers data papers only (those identified by DrPaper). Non-data papers receive a DataRank value but no percentile.
Strengths
- +Simple and auditable: score depends only on citation counts and graph structure
- +No dependence on DataCite reuse coverage, which is patchy across repositories
- +Stable interpretation across sources: no metadata-weight tuning in scoring
- +1-hop model is fast enough for live DOI streaming
Limitations
- -Depends on citation coverage and latency in external indexes
- -1-hop approximation omits multi-hop citation propagation
- -Scores remain corpus-relative within the data-paper ranking scope
Percentile Ranking
Papers are sorted by DataRank and mapped to a percentile in [0, 100] within the data-paper corpus. Tied scores share the same percentile. The 99th percentile is the top 1%; the lowest-ranked paper sits at 0. Percentiles are refreshed on each full corpus recompute.
Where N is the number of data papers in the corpus. Counting strictly-lower scores in the numerator (rather than less-or-equal) means tied papers share both a rank and a percentile.
Researcher Score
Each researcher's score is the sum of DataRank scores across their data papers indexed in the corpus. This reflects the cumulative data-sharing impact of an author's contributions to the data-paper corpus.
Where p1, p2, …, pk are the author's data papers (classified as dataset papers) indexed in the corpus.
Scope
- -Author scores reflect only papers indexed in this database, not the author's full publication record
- -Co-authors on the same paper currently receive the same paper-level DataRank contribution
- -Click on any author to see which papers contributed to their score
FAIR Score — a parallel quality metric
Alongside DataRank, each data paper can carry a FAIR score: a 0–100 assessment of how findable, accessible, interoperable, and reusable its shared data is, read from the paper's own full text. It is a separate, parallel metric — it never enters DataRank, and an automated test in the engine suite enforces that invariant. DataRank measures how much a dataset is reused; the FAIR score measures how well it is shared. Keeping them independent is what lets you see, for example, a well-shared dataset that the field hasn't discovered yet.
How a score is produced
The rubric is a fixed taxonomy of 18 atomic criteria, each anchored to external frameworks — the RDA FAIR maturity indicators, F-UJI, and the NIH Data Management & Sharing Policy — and weighted by RDA priority (Essential 2.0, Important 1.0, Useful 0.5). Each criterion asks one question of the same shape: which kind of artefact does this paper exhibit for its own data? The model names the strongest class it can find — yes, partial, or no — and must supply the verbatim quote that is that artefact. The quote is verified against the text in code; a positive verdict whose quote isn't actually in the paper is downgraded one step. Each question also demands that the quote assert the artefact of this study's data, so a journal's own CC-BY footer or a third-party code link can't inflate the verdict.
The model never emits a number. Verdicts map to 1.0 / 0.5 / 0.0 and every score is computed deterministically in code — identical verdicts produce byte-identical scores, whichever model produced them. If an assessment fails for any reason (a transport error, a truncated response, a missing criterion), no score is produced or stored: a failed assessment is never a score.
Headline vs. advisory criteria
We measured how well each criterion reproduces when the same paper is assessed by different language models. Nine criteria are fact-shaped — a persistent identifier, a named repository, a formal dataset citation, open access, an open file format, a reuse licence, versioning, code availability, and funding attribution — and reproduce reliably across models. The other nine require judgment calls (is the data availability statement adequate? is the documentation sufficient?) and reproduce measurably worse.
The published headline score is therefore a weighted mean over the nine reproducible criteria only. The judgment-heavy nine are still assessed and shown as an advisory “full FAIR picture” with per-dimension F/A/I/R sub-scores — but they never move the headline number or the percentile. We would rather publish a narrower score that is stable than a broader one that changes with the model behind it.
The 18 criteria
9 headline · 9 advisory — expand any row for the question and its anchors
F — Findable
FPersistent identifier for the dataHeadlineEssential · 2.0▾
What kind of identifier does the paper give for its own dataset — a DOI or accession, a bare URL, or nothing?
Anchored to RDA-F1-01D · RDA-F1-02D · F-UJI FsF-F1-02D
FNamed repositoryHeadlineEssential · 2.0▾
What kind of holder does the paper name for its data — a recognised repository, a lab or institutional page, or none?
Anchored to RDA-F4-01M · NIH DMS Element 4 · NSTC Desirable Characteristics
FData-availability statementAdvisoryEssential · 2.0▾
Where does the paper's data-availability statement actually point?
Anchored to RDA-F3-01M · Springer Nature DAS policy · Colavizza et al. (2020)
FDescription of the dataset as an objectAdvisoryEssential · 2.0▾
In what form does the paper describe the dataset itself — its files, variables, samples or size — as distinct from the study's findings?
Anchored to RDA-F2-01M · F-UJI FsF-F2-01M · FsF-R1-01MD
FDataset formally citedHeadlineImportant · 1.0▾
Where does the dataset's identifier appear — in the reference list as a citable object, or only inline in the text?
Anchored to FORCE11 Data Citation Principles · RDA-F3-01M · F-UJI FsF-F3-01M
A — Accessible
AAccess route free of preconditionsHeadlineEssential · 2.0▾
Does the access route the paper gives carry a stated precondition?
Anchored to RDA-A1.1-01D · F-UJI FsF-A1-01M · NSTC 'Free and Easy Access'
AAccess level labelledAdvisoryImportant · 1.0▾
Does the paper label the access level of the data in words — open, embargoed, restricted?
Anchored to F-UJI FsF-A1-01M · RDA-A1-01M · COAR Access Rights v1.0
AGatekeeper for sensitive dataAdvisoryUseful · 0.5▾
For sensitive or human-subject data, what kind of gatekeeper does the paper name? (Not applicable where the data aren't sensitive.)
Anchored to NIH Genomic Data Sharing Policy · RDA-A1.2-01D · NIH DMS Element 5
AAvailability timing & retentionAdvisoryUseful · 0.5▾
What temporal commitment does the paper make — when the data become available, and how long they persist?
Anchored to NIH DMS Element 4 · NSTC 'Retention Policy' · RDA-A2-01M
I — Interoperable
IOpen file formatHeadlineImportant · 1.0▾
What kind of file format does the paper name for the released data?
Anchored to F-UJI FsF-R1.3-02D · RDA-R1.3-02D · RDA-I1-01D
ICommunity standard / vocabularyAdvisoryImportant · 1.0▾
What standard does the paper name for structuring or describing the data — MIAME, OME-TIFF, an ontology?
Anchored to RDA-R1.3-01M · RDA-R1.3-01D · RDA-I2-01M
IIdentifiers for the resources the data depend onAdvisoryUseful · 0.5▾
Does the paper give an identifier for a resource its data depend on — a source dataset, a reference genome build, a cohort, or the code?
Anchored to RDA-I3-01M · RDA-I3-03M · F-UJI FsF-I3-01M
R — Reusable
RReuse licenceHeadlineEssential · 2.0▾
What kind of licence does the paper attach to its data — a named standard licence, vague reuse language, or none?
Anchored to RDA-R1.1-01M · RDA-R1.1-02M · RDA-R1.1-03M
RProvenance of the dataAdvisoryImportant · 1.0▾
What kind of production record does the paper give for how the data were generated?
Anchored to RDA-R1.2-01M · F-UJI FsF-R1.2-01M · W3C PROV-O
RDocumentation / codebookAdvisoryImportant · 1.0▾
Where do the definitions of the data's files and variables live?
Anchored to RDA-R1-01M · F-UJI FsF-R1-01MD · NIH DMS Element 3
RSnapshot identifiedHeadlineUseful · 0.5▾
How does the paper identify which snapshot of the data was used or released — a version, a release tag, an access date?
Anchored to DataCite Schema 4.6 'Version' · RDA-R1.2-01M · NSTC 'Provenance'
RAnalysis code availableHeadlineImportant · 1.0▾
What kind of locator does the paper give for the code it wrote? (Not applicable where the study wrote none.)
Anchored to NIH DMS Element 2 · FAIR4RS Principles v1.0 · FORCE11 Software Citation
RFunder and award numberHeadlineUseful · 0.5▾
How specifically does the paper attribute the funding behind the work?
Anchored to DataCite 'FundingReference' · Crossref Funder Registry · RDA-F2-01M
What this score does not measure
Every criterion asks which kind of artefact a paper exhibits — so the score measures form, not sufficiency. A paper that prints “CC BY 4.0”, “CSV” and “README” scores like one that genuinely curated its deposit. This is a machine-detectable-compliance score and should be read as one: it is a floor on how shareable a dataset looks from the paper, not a verdict on how good the dataset is. Criteria we deliberately excluded — whether an identifier actually resolves, PMC deposit, structured metadata records, download counts — are real FAIR indicators that simply cannot be read from a paper's text. Asking a model to guess them would manufacture exactly the variance this design removes.
How reproducible is the score?
A score produced by a language model is only meaningful if the same paper gets the same answer twice. Because the number is computed in code from the verdicts, all of the instability lives in the verdicts — so that is where we measure it, rather than on the composite, which is an average and can hide two flips that cancel out. We report Krippendorff's α (chance-corrected, so a rubric that answers “no” to everything isn't flattered; α ≥ 0.8 is the conventional bar for reliable) and the flip rate — how often a criterion ever changed answer across repeats.
Repeating the same paper, same model
| Passes (K) | Flip rate | α | |
|---|---|---|---|
| 1 — a single read | 32.9% | 0.738 | below the bar |
| 3 — majority of three | 21.3% | 0.821 | reliable |
| 5 — majority of five | 15.8% | 0.889 | reliable |
A single read is not reproducible enough to publish: about a third of criteria change answer between two runs of the same paper at temperature 0, because borderline cases coin-flip on the partial/yes boundary. Reading each paper five times and taking the majority verdict per criterion is what earns the published number. We also checked that voting can work here at all — every one of the 18 criteria shows a decisive lean rather than a true 50/50, so no criterion is so ambiguous that more passes couldn't settle it.
Same paper, a different model
Reproducibility within one model isn't enough — a model can be perfectly self-consistent and consistently idiosyncratic. Scoring the same papers with two independent models agrees at α 0.883 on the nine headline criteria versus 0.789 on the nine advisory ones. That gap is the entire justification for the split: the fact-shaped criteria travel between models, the judgment-heavy ones travel less well, so only the former set the published number.
Controlling what else could move a score
Hosted model endpoints are not reproducible by default. Requests are pinned to a single provider with fallbacks disabled (an unannounced reroute is silently a different model), to a fixed numerical precision, and to grammar-constrained decoding so the verdict values cannot drift into free text. Temperature is 0. Without these controls a measurement records the routing layer as if it were the model — an earlier internal run compared two models across two and seven providers respectively, and its conclusion did not survive re-testing under matched conditions.
Measured on 10 open-access data papers × 6 repeats × 2 models (240 evaluations across two independent runs). A small sample: it constrains the reliability of the instrument, not the score of any individual paper.
Does FAIR just re-measure citations?
If a FAIR score simply tracked citation counts it would be redundant, so we test it against citations as an external check — never as an input. Across 2,850 data papers published 2021 or later and read in full text, the rank correlation between FAIR score and citation count is ρ = 0.07. It is statistically significant only because the sample is large; it explains well under 1% of the variation in how often a paper is cited.
We report that plainly because the honest reading is the useful one: sharing data well and being cited a lot are close to unrelated in this corpus. That is an argument for measuring data sharing separately rather than assuming citations already capture it — which is the reason DataRank and FAIR are two numbers and not one. The result holds when papers whose own availability statement says they generated no dataset are included or excluded.
What the score picks up: funding mechanism
A quality metric should distinguish things we independently believe differ. NIH award numbers encode the funding mechanism that paid for the work — an S10 buys shared instrumentation, a P20 seeds a centre, an R00 supports someone starting their own lab, a D43 funds international training. These have genuinely different expectations about producing shareable data, and the score separates them sharply.
Papers are funded by several awards more often than not — only 40% of NIH-funded papers here carry a single mechanism. So rather than assigning each paper to one bucket, we fit a regression with one indicator per mechanism across all 2,796 papers. Each coefficient is that mechanism’s marginal association, holding co-funding constant: a paper backed by both an R01 and a U24 informs both estimates without contaminating either. The outcome is a paper’s FAIR percentile within its own publication year, so the comparison is year-controlled by construction.
| Mechanism | Papers | Percentile points |
|---|---|---|
| S10 Shared instrumentation | 176 | +21.3 |
| F32 Postdoctoral fellowship | 43 | +16.2 |
| U41 Biotechnology resource grant | 72 | +12.5 |
| R35 Outstanding investigator | 238 | +12.0 |
| P30 Center core grant | 563 | −5.7 |
| UL1 Clinical & Translational Science Award | 249 | −8.7 |
| K01 Mentored research scientist award | 95 | −10.4 |
| K23 Mentored patient-oriented career development | 101 | −13.9 |
| D43 International research training grant | 58 | −20.5 |
Every row shown is significant after Holm–Bonferroni correction across all 33 mechanisms modelled; the other 24 were not and are omitted. The ordering is the one you would predict from the mechanisms themselves: awards whose purpose is shared infrastructure scores highest, and training and career-transition awards — small, short, usually without a data-sharing mandate — sit far below. The rubric was built without any knowledge of funding, so agreeing with it is evidence the score tracks something real about data sharing rather than writing style.
It is not a time trend. Re-fitting the same model on raw FAIR, with the year control removed, barely moves the estimates (S10 +18.6 rather than +21.3, R35 +10.4 rather than +12.0) and changes no ordering. That is consistent with the separate finding that FAIR itself is flat across 2020–2025.
Read this with care. Mechanism explains about 12% of the variance in FAIR (R² = 0.117) — a real and highly significant signal, not a deterministic one. These are associations, not causes: an S10 does not make a lab share better, and the kind of project that attracts shared-instrumentation funding differs in many ways beyond its funding line. Coefficients resting on fewer than ~75 papers (F32, U41, D43) should be treated as provisional. Activity codes are parsed from award-number strings, so any award NIH did not report is invisible here.
What the score does not pick up: time
The mechanism differences above are structural, not dynamic. Across 2020–2025 the score is flat: an S10-funded paper scored the same in 2020 as in 2025, and so did everything else. Of fourteen mechanisms with 120–1,402 papers each, none shows a year trend after correction for multiple testing, and neither does the data-availability-statement criterion on its own.
The raw year correlation is slightly negative (Spearman −0.055, p = 0.002), but that is corpus composition, not practice. Our scored population widened from 132 distinct journals in 2020 to 301 in 2025 as ingestion reached further into the literature, and the papers added later sit in smaller venues. Comparing papers to others in the same journal, the trend disappears entirely (−0.007, p = 0.81). We report the within-journal figure because the raw one mostly measures which journals we had reached.
This is not a verdict on the NIH Data Management and Sharing policy. That policy applies to applications due on or after 25 January 2023, and the published literature has not caught up: of our scored papers, just 34 are funded by a project that started after the cutoff. Papers take years to appear, so the governed cohort barely exists yet — a null result on 34 papers is a statement about publication lag, not about the policy. The design that will answer it is built and waiting: NIH exempts training, fellowship, construction, conference and infrastructure awards from the policy, which gives a within-NIH control group for a difference-in-differences comparison once the covered cohort is large enough. We expect that to be around 2027–2028.
When a paper is scored at all — the fairness gate
- ·Only data papers are scored, and only when the full text is readable (open-access XML or PDF, or an uploaded PDF). An abstract alone can't answer the rubric, so it never produces a score.
- ·Preprints are never scored: a preprint's text is frozen at submission, while the version of record often adds the data availability statement and repository links the rubric reads. Scoring the preprint would misrepresent the paper.
- ·FAIR percentiles are computed within the population scored by the current rubric version only — scores from different rubric versions are never pooled. Every score is stamped with its agent and taxonomy version.
Every unmet criterion becomes a ranked, concrete action — deposit in a domain repository, add a licence, cite the dataset formally — whose stated gain is the exact score delta of completing it, computed from the same arithmetic as the score itself. The goal isn't a grade; it's a to-do list that makes the next version of the paper more reusable. Try it on any DOI.
Computation Audit
Every recompute writes a snapshot row recording the algorithm version (current: datarank_citation_only_1hop_v6), the damping factor used, the corpus size, and the score distribution. The timestamp of the most recent recompute is published in /api/v1/stats as last_computation; full snapshot history lives in the database for audit and is available on request.
Technical reference (for implementers and reviewers)▾
Tie-aware rank & percentile
Both batch and live paths use the same helper (compute_rank_percentile_from_counts): rank is 1 + |{q : DataRank(q) > DataRank(p)}|, percentile is 100 · |strictly lower| / (N − 1). Single-item corpora map to percentile 100.0. Tied scores share both rank and percentile.
Self-citation filter
Citers are deduplicated against the seed by OpenAlex author-ID set overlap (app/engine/openalex_graph.py::filter_self_citations). A citer is dropped if it shares any author with the seed.
Offline fallback
If fetch_citer_neighbourhood returns nothing (network failure, OpenAlex 5xx exhaustion, or a paper outside the data-only batch fetch scope), the engine sets N(p) = 0 and DataRank(p) = (1 − d) · B(p). This is the contract every code path preserves.
Configuration knobs
DATARANK_DAMPING(default0.85) — damping factor d. Must be in (0, 1).DATARANK_MAX_CITERS(default200) — flat citer cap per paper.DATARANK_DIVERSITY_GAMMA(default0, off) — opt-in citer-field diversity multiplier. When > 0, N(p) is scaled by1 + γ · H_normwhere H_norm is the normalised Shannon entropy of citers' OpenAlexprimary_topic.fielddistribution.DATARANK_LANDMARK_ELBOW(default0, off) — opt-in additive log term past a citation threshold for landmark resources.DATARANK_ADAPTIVE_CITER_CAP_MAX(default0, off) — opt-in per-paper cap scaling with seedcited_by_count.
In v5 the bounded reuse multiplier R(p) was active by default (DATARANK_REUSE_LAMBDA=0.15,DATARANK_REUSE_CAP=25). Removed in v6 because DataCite reuse coverage is too uneven across repositories. The env vars are no longer read.
Snapshot schema
Each recompute appends one row to datarank_snapshots with:algorithm,damping_factor,paper_count,mode (online|offline),mean_datarank,median_datarank,max_datarank, and an extra_metadata JSON column carrying every hyperparameter, the fetch scope (data_only_fetch,papers_fetched), and the algorithm-family version string.
Where to read the code
backend/app/engine/datarank.py— scoring helpers (compute_sscore,compute_citer_quality_sum,compute_citer_diversity_factor) and theALGORITHM_IDconstant.backend/app/engine/endowment.py— base-score curve (log1p+ optional landmark elbow).backend/app/engine/openalex_graph.py— citer fetch, deterministic sort bycited_by_count:desc, self-citation filter.backend/ingestion/compute_datarank_db.py— canonical batch recompute path (data-only fetch by default).backend/app/services/corpus_rank_service.py— cached tie-aware rank/percentile helper used by both batch and live paths.
Source: github.com/Kaimen-Inc/sindex-portal.
See it in action
Search any DOI and get a DataRank score, corpus percentile, and base-vs-network breakdown in seconds.