Source of Truth Registry
Every number on ASH has a single source file, a derivation method, and a live API endpoint that produces it at render time. No magic numbers anywhere.
Every count visible on hirudotherapysociety.org comes from exactly one source of truth — a typed registry file in the public GitHub repository. Each registry has a corresponding live JSON API endpoint that re-computes the count on every render. There are no hand-entered totals in display copy.
This page documents every public count, where it lives, how it's derived, and how to verify it yourself. If you spot a discrepancy between any displayed number and the source-of-truth registry, please report it via /submit-correction.
Live as of render time
10,521
Total artifacts
9,766
Research articles (97.66% of 10k)
199
Conditions (3 Tier A, 6 Tier B, 190 Tier C)
Per-metric source map
| Metric | Current | Source file | Derivation | Live API |
|---|---|---|---|---|
| Conditions | 199 | lib/condition-registry.ts | CONDITION_REGISTRY.length at render time | /api/conditions (totalAvailable) |
| Conditions Tier A (FDA-cleared use context) | 3 | lib/condition-registry.ts | CONDITION_REGISTRY.filter(c => c.tier === 'A-FDA-cleared').length | /api/site-stats (conditionTiers.A) |
| Conditions Tier B (off-label with clinical evidence) | 6 | lib/condition-registry.ts | CONDITION_REGISTRY.filter(c => c.tier === 'B-clinical-evidence').length | /api/site-stats (conditionTiers.B) |
| Conditions Tier C (investigational) | 190 | lib/condition-registry.ts | CONDITION_REGISTRY.filter(c => c.tier === 'C-investigational').length | /api/site-stats (conditionTiers.C) |
| Compounds | 200 | lib/compound-registry.ts | COMPOUND_REGISTRY.length | /api/compounds (totalAvailable) |
| Randomized Controlled Trials | 137 | lib/rct-registry.ts | RCT_REGISTRY.length | /api/rcts (totalAvailable) |
| Biographies | 64 | lib/biography-registry.ts | BIOGRAPHY_REGISTRY.length | /api/biographies (totalAvailable) |
| Jurisdictions | 155 | lib/jurisdiction-registry.ts | JURISDICTION_REGISTRY.length | /api/jurisdictions (totalAvailable) |
| Research articles (PMID-verified library) | 9766 | lib/research-articles-imported.ts | IMPORTED_ARTICLES.length | /api/research-articles (totalAvailable) |
| Total knowledge artifacts | 10521 | computed | conditions + compounds + rcts + biographies + jurisdictions + researchArticles | /api/site-stats (totalArtifacts) |
| Progress toward 10,000-article research target | 97.66% | computed | (researchArticles / 10000) * 100 | /api/site-stats (progressPct) |
| PMIDs digit-format-valid | All PMIDs in 5 registries pass format check at every CI run | 5 registry files (regex pmid:"d{1,9}") | site-health-check check #4 (PMID format validity) | site-health-check stdout |
| PMIDs PubMed-verified | 336 / 336 hand-built registry citations verified or explicitly quarantined (lint run 2026-09-27) | scripts/citation-integrity-lint-2026-05-27.mjs | Walks condition/compound/RCT/biography registries; each PMID must have sibling pmidVerified ISO date OR 'PMID intentionally omitted' inline comment. | site-health-check check #10 |
Notes per metric
Conditions Tier A (FDA-cleared use context)
All Tier A entries describe ONE FDA-cleared pathway (K040187, venous congestion in microsurgical reconstruction). Multiple entries reflect different anatomic/surgical contexts within that single pathway.
Randomized Controlled Trials
100% PMID-verified against PubMed E-utilities per PMID Integrity Sprint Phase 1.
Jurisdictions
Most entries carry leechRegulatoryStatus: 'unregulated' — ASH has not independently verified a leech-specific authorization pathway in those countries.
Research articles (PMID-verified library)
Auto-imported from ASH-Kimi research workspace. Each entry has a verified PMID, DOI, or both. Each carries citationIntegrityStatus.
PMIDs PubMed-verified
Auto-imported research-articles library is separately spot-checked. Per /pmid-audit-status, treat any 'unverified_pending' entry returned by API as suspect until cleanup completes.
How to verify
- Fetch the corresponding API endpoint with curl and check the
totalAvailablefield. - Or clone the public repo at github.com/RondvS/ash-website and run
node scripts/site-health-check-2026-05-27.mjs— check #6 prints all registry sizes. - Or read the source registry directly:
lib/condition-registry.tsetc. on the GitHubmainbranch.