{
 "_script": "scripts/compute-coverage.mjs",
 "_method": "Every number in this report is measured directly from repository data files at generation time, except the 'popular'/alternate values in countingRuleSensitivity, which are quoted verbatim from numbers.html's own prose (already-published editorial text, not independently measurable from a data file) and are marked verified:false accordingly. Source registry fields are read verbatim from data/sources.json; any field absent there is recorded as \"not stated in repository\", never inferred.",
 "_computed": "2026-10-01",
 "morphology": {
  "totalTokens": 77429,
  "fields": {
   "root": {
    "label": "Word-units carrying a triliteral root",
    "withField": 49967,
    "withoutField": 27462,
    "percentWith": 64.53,
    "posDistributionWithoutField": [
     {
      "pos": "P",
      "count": 7679,
      "percent": 27.96
     },
     {
      "pos": "REL",
      "count": 3321,
      "percent": 12.09
     },
     {
      "pos": "PRON",
      "count": 3301,
      "percent": 12.02
     },
     {
      "pos": "NEG",
      "count": 2643,
      "percent": 9.62
     },
     {
      "pos": "ACC",
      "count": 2283,
      "percent": 8.31
     },
     {
      "pos": "DEM",
      "count": 1059,
      "percent": 3.86
     },
     {
      "pos": "COND",
      "count": 1046,
      "percent": 3.81
     },
     {
      "pos": "PN",
      "count": 895,
      "percent": 3.26
     },
     {
      "pos": "T",
      "count": 887,
      "percent": 3.23
     },
     {
      "pos": "CONJ",
      "count": 756,
      "percent": 2.75
     },
     {
      "pos": "SUB",
      "count": 680,
      "percent": 2.48
     },
     {
      "pos": "RES",
      "count": 558,
      "percent": 2.03
     },
     {
      "pos": "CERT",
      "count": 414,
      "percent": 1.51
     },
     {
      "pos": "N",
      "count": 366,
      "percent": 1.33
     },
     {
      "pos": "PRO",
      "count": 327,
      "percent": 1.19
     },
     {
      "pos": "INTG",
      "count": 326,
      "percent": 1.19
     },
     {
      "pos": "LOC",
      "count": 192,
      "percent": 0.7
     },
     {
      "pos": "RET",
      "count": 122,
      "percent": 0.44
     },
     {
      "pos": "EXP",
      "count": 104,
      "percent": 0.38
     },
     {
      "pos": "INC",
      "count": 90,
      "percent": 0.33
     },
     {
      "pos": "EXL",
      "count": 66,
      "percent": 0.24
     },
     {
      "pos": "AMD",
      "count": 65,
      "percent": 0.24
     },
     {
      "pos": "INT",
      "count": 47,
      "percent": 0.17
     },
     {
      "pos": "FUT",
      "count": 42,
      "percent": 0.15
     },
     {
      "pos": "ANS",
      "count": 40,
      "percent": 0.15
     },
     {
      "pos": "EXH",
      "count": 40,
      "percent": 0.15
     },
     {
      "pos": "SUR",
      "count": 35,
      "percent": 0.13
     },
     {
      "pos": "AVR",
      "count": 33,
      "percent": 0.12
     },
     {
      "pos": "INL",
      "count": 30,
      "percent": 0.11
     },
     {
      "pos": "SUP",
      "count": 13,
      "percent": 0.05
     },
     {
      "pos": "ADJ",
      "count": 1,
      "percent": 0
     },
     {
      "pos": "IMPN",
      "count": 1,
      "percent": 0
     }
    ]
   },
   "lemma": {
    "label": "Word-units with a lemma",
    "withField": 74122,
    "withoutField": 3307,
    "percentWith": 95.73,
    "posDistributionWithoutField": [
     {
      "pos": "PRON",
      "count": 3277,
      "percent": 99.09
     },
     {
      "pos": "INL",
      "count": 30,
      "percent": 0.91
     }
    ]
   },
   "pos": {
    "label": "Word-units with a part-of-speech tag",
    "withField": 77429,
    "withoutField": 0,
    "percentWith": 100
   }
  },
  "_method": "Every token in data/morphology/{1..114}.json scanned directly; a field counts as present if its value is a non-empty string. The morphology 'gloss' field exists on every token but is empty on all of them (0% populated) and is not reported as a field here, since it is never populated. For the root and lemma fields, the part-of-speech distribution of the tokens WITHOUT that field is also measured and reported (posDistributionWithoutField), directly from the same scan."
 },
 "rootGloss": {
  "totalRoots": 1642,
  "withVerifiedGloss": 0,
  "percentWith": 0,
  "reason": "no verified gloss source present in repository",
  "editorialGlossCount": 84,
  "editorialGlossRenderPaths": [
   "compare.html",
   "embed.html",
   "exercise-roots.html",
   "glossary.html",
   "how-it-works.html",
   "how-to-use.html",
   "numbers.html",
   "paths.html",
   "patterns.html",
   "read.html",
   "roots.html",
   "validation.html",
   "words.html"
  ],
  "_note": "assets/root-meanings.js provides 84 short editorial glosses (out of 1642 roots). Its own file header states these are editorial working glosses, not quotations from a citable dictionary, and instructs that they not be presented as Verified. Not counted toward the coverage figure above. data/gloss/{surah}.json provides per-word (not per-root) glosses transcribed from Khan (2011), covering 6 of 114 surahs; it cannot answer per-root coverage.",
  "editorialGlossDashboardText": "84 roots carry editorial working glosses maintained in this repository. These are not sourced from a citable dictionary and are not labeled Verified. They are excluded from this count."
 },
 "perWordGloss": {
  "totalSurahs": 114,
  "covered": 6,
  "coveredSurahs": [
   96,
   103,
   107,
   108,
   109,
   112
  ],
  "percentWith": 5.26,
  "_method": "Counted from data/gloss/index.json, the manifest scripts/build-gloss.mjs maintains of which data/gloss/{surah}.json files exist. Per-word glosses transcribed from Khan (2011); see NOTICE.md. Distinct from rootGloss above, which measures per-ROOT glosses (a different, currently unmet, question)."
 },
 "khanReflections2005": {
  "coveredSurahs": [],
  "wantedSurahs": [
   1,
   2
  ],
  "_method": "Khan (2005), Reflections on the Qur'an: Understanding Surahs al-Fatihah and al-Baqarah (source khan-reflections-2005 in data/sources.json), covers surahs 1 and 2 in full. No transcribed excerpt from this volume exists anywhere in the repository (data/khan-interpretations.json only draws on the 2011 volume). The count is zero and stays zero until someone brings a page-cited transcription."
 },
 "countingRuleSensitivity": [
  {
   "root": "ArD",
   "rootLatin": "a-r-ḍ",
   "concept": "earth, land",
   "counts": [
    {
     "rule": "root occurrence count (Leeds corpus, all derived forms)",
     "value": 461,
     "verified": true
    },
    {
     "rule": "popular surface-form count, specific noun senses only (not independently reproduced by this site)",
     "value": 13,
     "verified": false
    }
   ],
   "_documentedIn": "numbers.html, \"Earth and sea\" card"
  },
  {
   "root": "bHr",
   "rootLatin": "b-ḥ-r",
   "concept": "sea",
   "counts": [
    {
     "rule": "root occurrence count (Leeds corpus, all derived forms)",
     "value": 42,
     "verified": true
    },
    {
     "rule": "popular surface-form count, specific noun senses only (not independently reproduced by this site)",
     "value": 32,
     "verified": false
    }
   ],
   "_documentedIn": "numbers.html, \"Earth and sea\" card"
  },
  {
   "root": "ywm",
   "rootLatin": "y-w-m",
   "concept": "day",
   "counts": [
    {
     "rule": "root occurrence count (Leeds corpus, all derived forms)",
     "value": 405,
     "verified": true
    },
    {
     "rule": "popular surface/compound-form totals (not independently reproduced by this site)",
     "value": "365 or 475",
     "verified": false
    }
   ],
   "_documentedIn": "numbers.html, \"Day, month, year\" card"
  },
  {
   "root": "$hr",
   "rootLatin": "sh-h-r",
   "concept": "month",
   "counts": [
    {
     "rule": "root occurrence count (Leeds corpus, all derived forms)",
     "value": 21,
     "verified": true
    },
    {
     "rule": "popular surface-form count for singular \"shahr\" (not independently reproduced by this site)",
     "value": 12,
     "verified": false
    }
   ],
   "_documentedIn": "numbers.html, \"Day, month, year\" card"
  }
 ],
 "khanOutlines": {
  "_method": "published = surahs 85-114, the range of Khan's 2013 outline volume (source khan-exercise-2013); transcribed is read from data/exercises.json type=outline entries. transcribedFrom2013/transcribedFrom2011 split that set by which book's outline it actually is (data/exercises.json sourceIds), since 5 of the 6 transcribed surahs are illustrative examples from the unrelated 2011 volume that happen to fall in this numeric range, not part of the 2013 project. wanted is published minus transcribedFrom2013 specifically — an outline from the 2011 volume does not count toward this project's queue even when it happens to cover a surah in this range. Transcription requires the book and the review checklist in CONTRIBUTING.md.",
  "publishedRange": [
   85,
   114
  ],
  "transcribedFrom2013": [
   103
  ],
  "transcribedFrom2011": [
   96,
   107,
   108,
   109,
   112
  ],
  "publishedCount": 30,
  "transcribed": [
   96,
   103,
   107,
   108,
   109,
   112
  ],
  "wanted": [
   85,
   86,
   87,
   88,
   89,
   90,
   91,
   92,
   93,
   94,
   95,
   96,
   97,
   98,
   99,
   100,
   101,
   102,
   104,
   105,
   106,
   107,
   108,
   109,
   110,
   111,
   112,
   113,
   114
  ]
 },
 "ringAnalyses": {
  "_method": "transcribed counts surahs with a published, page-cited ring/structural outline recorded in repository data. There are none: the site computes no ring structure and will not attribute an outline to a scholar who did not publish it. wanted is therefore all 114. Separately, proxyTest records the one mechanical positional test the site DID run corpus-wide (data/symmetry-test.json), whose null result is not evidence about the literary scholarship.",
  "totalSurahs": 114,
  "transcribed": [],
  "wanted": [
   1,
   2,
   3,
   4,
   5,
   6,
   7,
   8,
   9,
   10,
   11,
   12,
   13,
   14,
   15,
   16,
   17,
   18,
   19,
   20,
   21,
   22,
   23,
   24,
   25,
   26,
   27,
   28,
   29,
   30,
   31,
   32,
   33,
   34,
   35,
   36,
   37,
   38,
   39,
   40,
   41,
   42,
   43,
   44,
   45,
   46,
   47,
   48,
   49,
   50,
   51,
   52,
   53,
   54,
   55,
   56,
   57,
   58,
   59,
   60,
   61,
   62,
   63,
   64,
   65,
   66,
   67,
   68,
   69,
   70,
   71,
   72,
   73,
   74,
   75,
   76,
   77,
   78,
   79,
   80,
   81,
   82,
   83,
   84,
   85,
   86,
   87,
   88,
   89,
   90,
   91,
   92,
   93,
   94,
   95,
   96,
   97,
   98,
   99,
   100,
   101,
   102,
   103,
   104,
   105,
   106,
   107,
   108,
   109,
   110,
   111,
   112,
   113,
   114
  ],
  "proxyTest": {
   "candidatePairs": 3067,
   "fdrSurvivors": 0,
   "bonferroniSurvivors": 0,
   "surahsWithClosestMiss": [
    4,
    5,
    12,
    16
   ]
  }
 },
 "structureTests": {
  "_method": "Summary of data/structure-tests.json: four mechanical block-symmetry tests over the sections in data/structure/{s}.json, corrected jointly across all candidates. Its own _scope explains what a survivor would and would not mean; see that file for the per-surah breakdown.",
  "totalCandidates": 345,
  "fdrSurvivors": 0,
  "bonferroniSurvivors": 0,
  "surahsWithClosestMiss": [
   2,
   3,
   10,
   11,
   26,
   30,
   34,
   39,
   42,
   53,
   76,
   89
  ]
 },
 "sourceRegistry": [
  {
   "id": "leeds-corpus-v0.4",
   "name": "The Quranic Arabic Corpus",
   "version": "version 0.4",
   "author": "Dukes, Kais",
   "year": "2009–2017",
   "license": "GNU GPL",
   "url": "https://corpus.quran.com"
  },
  {
   "id": "tanzil",
   "name": "Tanzil Quran Text",
   "version": "Uthmani script, Version 1.1",
   "author": "Tanzil Project",
   "year": "2007–",
   "license": "CC BY 3.0, verbatim copies only (Tanzil terms of use)",
   "url": "https://tanzil.net"
  },
  {
   "id": "cairo-1924",
   "name": "Chronological Order of Surahs, Cairo Edition",
   "version": "not stated in repository",
   "author": "not stated in repository",
   "year": "1924",
   "license": "not stated in repository",
   "url": "not stated in repository"
  },
  {
   "id": "quran-foundation-api-v4",
   "name": "Quran.com Foundation Content API",
   "version": "v4",
   "author": "Quran.com Foundation",
   "year": "2025",
   "license": "not stated in repository",
   "url": "https://api-docs.quran.foundation"
  },
  {
   "id": "khan-introduction-2011",
   "name": "An Introduction to Understanding the Qur'an with Examples",
   "version": "not stated in repository",
   "author": "Khan, Irfan Ahmad",
   "year": "2011",
   "license": "not stated in repository",
   "url": "https://www.quranicunderstanding.com/"
  }
 ],
 "sourceRegistryBlockers": [],
 "sourceUsage": {
  "totalSources": 40,
  "used": 38,
  "unusedIds": [
   "qul",
   "qul-mutashabihat"
  ],
  "_method": "For each id in data/sources.json, checked whether it appears as a space-separated token inside a static data-source-ids=\"...\" attribute, inside the ids argument of dossier.html's OK(\"...\", title) badge-building helper (the one place a badge's id list is a JS string literal rather than a literal HTML attribute), or in a data/lenses.json sourceIds string (assets/lenses.js renders each lens's method badge with exactly that id list). A source with zero hits is cited in the bibliography but reachable from no badge anywhere on the site."
 }
}
