Verification report¶
This report compares the number each feature produces against the number published by the source it rests on. The purpose is plain: before you use a number in your own work, you should be able to see that it matches the value in the literature.
What the statuses mean¶
| Meaning | |
|---|---|
| ✅ exact | Within tolerance of the number the source published. If the cause of a small difference is known, it is noted under the row. |
| 🟡 documented deviation | The difference is beyond the tolerance and the reason is written down — the source rounded an intermediate value, or the source's own numbers were produced by hand, and so on. The effect of the deviation is explained in the row. |
| 🔍 open | The source gives the formula but no applied example. Verifiable, not yet verified; the formula and its edge cases are tested in their own test files. |
| ❌ mismatch | An unexplained difference. Release gate: a single one blocks a release. |
The three statuses below are not verification candidates — there is no number to look for:
| Meaning | |
|---|---|
| ⚪ no source | Not a named measure from the literature; a plain definition (punct_dash_ratio, uppercase_ratio). |
| ⚫ tag scheme | Not a measure but a count of an external scheme's categories (pos_noun_ratio → UD; zeyrek_case_loc_ratio → Zeyrek). A scheme defines categories; it does not publish measurements. |
| 🔧 derivative | The formula comes from a source, the application is this library's. sent_len_entropy is Shannon's entropy, but applying it to sentence lengths is ours; long_sent_ratio's threshold comes from our own calibration. Nobody has published this measure, so there is no number to compare against. Testing it against our own calibration would be reading our own answer sheet. |
The tolerance is 1% relative to the published value. Sources print rounded intermediate values, so exact equality is not expected; a relative tolerance means the same thing at every scale.
Exceeding the tolerance does not automatically make a row ❌. What decides is not the size of the difference but whether its cause is known: if the cause has been measured and written down the row is 🟡, and if it has not the row is ❌. A reason is not an excuse — it is evidence of where the difference came from, and you can read it under the row.
Two kinds of evidence¶
End-to-end rows push the source's own text through the pipeline, so tokenisation, syllabification and sentence splitting are tested too. This is the strongest evidence.
Formula rows feed the inputs to the function directly (for example "syllables per word 2.2 and words per sentence 4"). They verify the formula and its coefficients, not the pipeline. This is what is available when the source published no text.
This report is generated from the tests — it reads the same comparison
table as tests/test_kaynak_esligi.py, so the two cannot drift apart. The
other known-value tests live in their own files.
Turkish — 208 keys, 233 rows¶
A key may have more than one worked example in its source; each one is its own row.
Verification candidates — 151 rows
| Status | Rows |
|---|---|
| ✅ exact | 46 |
| 🟡 documented deviation | 2 |
| 🔍 open — no worked example in source | 103 |
Not verification candidates — 82 rows. There is no published number to look for in these.
| Status | Rows |
|---|---|
| ⚪ no source — plain definition | 11 |
| ⚫ tag scheme — not a measure | 67 |
| 🔧 derivative — the application is this library's | 4 |
Keys with a numeric comparison¶
| Key | Source | Example | Evidence | Expected | Ours | Diff | Status |
|---|---|---|---|---|---|---|---|
entropy |
QUITA §6.1.12 | Text 1 · eq. (6.26); source 6.438043 in bits → × ln 2 | formula | 4.463 | 4.463 | +0.000 | ✅ |
entropy |
QUITA §6.1.12 | Text 2 · eq. (6.26); source 6.395099 in bits → × ln 2 | formula | 4.433 | 4.433 | +0.000 | ✅ |
ttr |
QUITA §6.1.1 | Text 1 · V/N = 119/179 | formula | 0.665 | 0.665 | -0.000 | ✅ |
ttr |
QUITA §6.1.1 | Text 2 · V/N = 121/202 = 0.599; source printed 0.590 (typo) | formula | 0.590 | 0.599 | +0.009 | 🟡 |
hapax_token_ratio |
QUITA §6.1.6 | Text 1 · 98/179 | formula | 0.547 | 0.547 | +0.000 | ✅ |
hapax_token_ratio |
QUITA §6.1.6 | Text 2 · 92/202 | formula | 0.455 | 0.455 | +0.000 | ✅ |
mtld |
McCarthy & Jarvis (2010) p.385 | partial factor · TTR .887 → 40.4% | formula | 0.404 | 0.404 | +0.000 | ✅ |
h_point |
QUITA §6.1.2 | Text 1 · rank 5 = frequency 5 | formula | 5.000 | 5.000 | +0.000 | ✅ |
h_point |
QUITA §6.1.2 | Text 2 · interpolation, eq. (6.2) | formula | 4.750 | 4.750 | +0.000 | ✅ |
vocab_richness_r1 |
QUITA §6.1.3 | Text 1 · N=179, h=5 | formula | 0.835 | 0.835 | -0.000 | ✅ |
vocab_richness_r1 |
QUITA §6.1.3 | Text 2 · N=202, h=4.75 → ⌊h⌋=4 | formula | 0.838 | 0.838 | +0.000 | ✅ |
vocab_richness_r4 |
QUITA §6.1.9 | Text 1 · 1−G | formula | 0.696 | 0.696 | +0.000 | ✅ |
vocab_richness_r4 |
QUITA §6.1.9 | Text 2 · 1−G | formula | 0.649 | 0.649 | -0.000 | ✅ |
repeat_rate |
QUITA §6.1.4 | Text 1 · N=179 | formula | 0.020 | 0.020 | -0.000 | ✅ |
repeat_rate |
QUITA §6.1.4 | Text 2 · N=202 | formula | 0.021 | 0.021 | -0.000 | ✅ |
rr_mcintosh |
QUITA §6.1.5 | Text 1 · V=119 | formula | 0.946 | 0.946 | +0.000 | ✅ |
rr_mcintosh |
QUITA §6.1.5 | Text 2 · V=121 | formula | 0.939 | 0.939 | -0.000 | ✅ |
gini_coef |
QUITA §6.1.8 | Text 1 · m₁=41.88268156 | formula | 0.304 | 0.304 | -0.000 | ✅ |
gini_coef |
QUITA §6.1.8 | Text 2 · m₁=39.75742574 | formula | 0.351 | 0.351 | +0.000 | ✅ |
curve_length |
QUITA §6.1.10 | Text 1 · eq. (6.21) | formula | 129.356 | 129.356 | +0.000 | ✅ |
curve_length |
QUITA §6.1.10 | Text 2 · eq. (6.21) | formula | 134.279 | 134.279 | +0.000 | ✅ |
curve_length_r |
QUITA §6.1.11 | Text 1 · Lh=14.29145 | formula | 0.889 | 0.890 | +0.000 | ✅ |
curve_length_r |
QUITA §6.1.11 | Text 2 · Lh=18.03607 | formula | 0.866 | 0.866 | -0.000 | ✅ |
lambda_pa |
QUITA §6.1.7 | Text 1 · L·ln N/N, L=129.3559482; source 1.628 in log₁₀ → × ln 10 | formula | 3.749 | 3.749 | +0.000 | ✅ |
lambda_pa |
QUITA §6.1.7 | Text 2 · L·ln N/N, L=134.2787065; source 1.5325 in log₁₀ → × ln 10 | formula | 3.529 | 3.529 | -0.000 | ✅ |
adjusted_modulus |
QUITA §6.1.13 | Text 1 · M=24.01416249; source 10.6594 in log₁₀ → / ln 10 | formula | 4.629 | 4.629 | -0.000 | ✅ |
adjusted_modulus |
QUITA §6.1.13 | Text 2 · M=25.81931678; source 11.19973 in log₁₀ → / ln 10 | formula | 4.864 | 4.864 | +0.000 | ✅ |
writers_view_alpha |
QUITA §6.2.3 | Text 1 · arccos(−0.374487816) | formula | 1.955 | 1.955 | -0.000 | ✅ |
writers_view_alpha |
QUITA §6.2.3 | Text 2 · arccos(−0.269972586) | formula | 1.844 | 1.844 | +0.000 | ✅ |
activity_ratio |
QUITA §6.2.2 | Text 1 · 26 verbs / 14 adjectives | formula | 0.650 | 0.650 | +0.000 | ✅ |
activity_ratio |
QUITA §6.2.2 | Text 2 · 35 verbs / 8 adjectives | formula | 0.814 | 0.814 | -0.000 | ✅ |
arc_len_mean |
Jing & Liu (2015) p.164 | Figure 3 · 'Mr. Nixon was to…' | formula | 1.167 | 1.167 | +0.000 | ✅ |
arc_len_mean |
Liu (2008) eq. (1) | 'I actually live in Beijing' · 5/4 | formula | 1.250 | 1.250 | +0.000 | ✅ |
parse_depth_mean |
Jing & Liu (2015) p.164 | Figure 3 · MHD = 12/6 | formula | 2.000 | 2.000 | +0.000 | ✅ |
ari |
Kincaid et al. (1975) p.8, Table 1 | Appendix A · 18 passages, mean | end-to-end | 12.300 | 11.763 | -0.537 | 🟡 |
coleman_liau |
Coleman & Liau (1975) p.284 | composition of the two equations · 13 words, 2 sentences | formula | 7.704 | 7.705 | +0.000 | ✅ |
coleman_liau |
Coleman & Liau (1975) p.284, Table 1 | cloze 40.4% → grade 12 | formula | 12.000 | 11.994 | -0.006 | ✅ |
atesman |
Ateşman (1997) | Kalyoncu & Memiş (2024) Table 9 · Text 2 | end-to-end | 23.094 | 23.094 | -0.000 | ✅ |
atesman |
Ateşman (1997) p.74 | calibration: easiest text | formula | 100.000 | 100.000 | -0.000 | ✅ |
atesman |
Ateşman (1997) p.74 | calibration: hardest text | formula | 0.000 | 0.000 | +0.000 | ✅ |
cetinkaya_uzun |
Çetinkaya (2010) | Kalyoncu & Memiş (2024) Table 9 · Text 2 | end-to-end | 23.084 | 23.084 | -0.000 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) | Kalyoncu & Memiş (2024) Table 9 · Text 2 | end-to-end | 30.423 | 30.392 | -0.031 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 5 | E7 3.03 · OKS 7 | formula | 4.610 | 4.605 | -0.005 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 5 | E7 8.3 · OKS 10 | formula | 9.110 | 9.110 | +0.000 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 5 | E7 18.82 · OKS 14 | formula | 16.230 | 16.232 | +0.002 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 3 | H values of the easiest text | formula | 3.030 | 3.025 | -0.005 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 3 | H values of the hardest text | formula | 18.820 | 18.815 | -0.005 | ✅ |
bezirci_yilmaz |
Bezirci & Yılmaz (2010) Table 3 | mean H values | formula | 8.300 | 8.341 | +0.041 | ✅ |
ttr deviation: The source's own counts (V=121, N=202) give 121/202 = 0.599; the printed 0.590 does not match that arithmetic (typo). Our value follows the arithmetic; the difference is 1.5% of the published value.
ari deviation: The source's numbers were produced by hand in 1975 with a mechanical counter attached to a typewriter (Appendix B, ARI instructions). In 17 of the 18 passages, the stroke count that would yield the source's ARI is 0.996-1.041 times ours — a difference of a few characters. Passage 2 is an outlier (ratio 1.145), and there the source's own two numbers contradict each other: Table 1's ARI of 20.3 requires 6.270 strokes per word, while the text's actual value is 5.475; moreover, the words per sentence implied by that ARI give an FKGL of 18.70, whereas Table 2 printed 16.7. Our stroke definition was tested separately: counting spaces raises the difference from 0.54 to 4.32, so counting without spaces is correct.
bezirci_yilmaz deviation: The paper rounded its H6 intermediate value; the difference is 0.031 and both values fall in the same readability class (academic, 16+).
bezirci_yilmaz deviation: The paper prints the H6 mean as 0.07, but the value that yields 8.30 is ~0.0684. The coefficient 26.25 inflates that rounding to 0.041; the coefficients themselves are correct.
🔍 Open — verifiable, not yet verified¶
103 keys. The source published the formula but never applied it to anything and printed the result. In quantitative linguistics this is ordinary: Yule (1944) defines K; he does not print what K comes to for a particular novel. These rows are not untested — their formulas and edge cases are tested in their own test files. What is tracked here is only the comparison against the source's number.
| Key | Source | Status |
|---|---|---|
word_count |
de Vel (2000) Table 2, attribute 1 "Total number of words"; Zheng et al. (2006) Table 3, p.385, no. 54 "Total number of words (M)" | 🔍 |
word_len_mean |
Mendenhall (1887) p.237 "mean word-length"; computed as letters per word, p.241 | 🔍 |
yule_k |
Yule (1944) p.53, eq. (3.22) | 🔍 |
simpson_d |
Simpson (1949), as cited in Bestgen (2023) | 🔍 |
type_count |
Tweedie & Baayen (1998) p.325, the vocabulary size V(N); Zheng et al. (2006) Table 3, p.385, no. 60 "Total different words/M", here not divided by M | 🔍 |
hapax_count |
Tweedie & Baayen (1998) p.325, V(1, N) "the number of hapax legomena"; Zheng et al. (2006) Table 3, p.385, no. 61 "Hapax legomena" ("Frequency of once-occurring words") | 🔍 |
dislegomena_count |
Tweedie & Baayen (1998) p.329, V(2, N) "dis legomena"; Zheng et al. (2006) Table 3, p.385, no. 62 "Hapax dislegomena" ("Frequency of twice-occurring words") | 🔍 |
brunet_w |
Brunet (1978), as cited in Tweedie & Baayen (1998) p.328, eq. (10) | 🔍 |
hapax_ratio |
de Vel (2000) Table 2, attribute 14 "Ratio of words used once to total number of vocabulary words" | 🔍 |
mattr |
Covington & McFall (2010); default window 50 — C&M recommend a window of 500; 50 is used here so that texts of 100+ words can be measured (mattr needs 2 × window) | 🔍 |
herdan_c |
Herdan (1960/1964), as cited in Tweedie & Baayen (1998) p.327, eq. (5) | 🔍 |
dugast_u |
Dugast (1978), as cited in Malvern et al. (2004) eq. 2.7 | 🔍 |
guiraud_r |
Guiraud (1954) p.53, alternative form (all word types), as cited in Daller (2010); his actual law is V/√(2N), content words only | 🔍 |
cttr |
Carroll (1964), as cited in Torruella & Capsada (2013) p.448 | 🔍 |
summer_s |
Somers (1966), as cited in Torruella & Capsada (2013) p.448, where it is named "Summer"; the source gives no logarithm base, the natural logarithm is this library's choice | 🔍 |
maas_a2 |
Maas (1972), as cited in Tweedie & Baayen (1998) p.327, eq. (7); natural logarithm, which reproduces the values in Torruella & Capsada (2013) Table 1; all logarithms in this library are natural | 🔍 |
herdan_vm |
Herdan (1955), as cited in Tweedie & Baayen (1998) p.330, eq. (18) | 🔍 |
honore_r |
Honoré (1979), as cited in Tweedie & Baayen (1998) p.329, eq. (11) | 🔍 |
heaps_beta |
Heaps (1978), as cited in Manning et al. (2008) §5.1.1 | 🔍 |
sichel_s |
Sichel (1975); formula from Malvern et al. (2004) eq. 3.10 | 🔍 |
noun_variation |
Lu (2012) Table 2 | 🔍 |
verb_variation |
Lu (2012) Table 2 | 🔍 |
adj_variation |
Lu (2012) Table 2 | 🔍 |
adv_variation |
Lu (2012) Table 2 | 🔍 |
zipf_exponent |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_r2 |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_mandelbrot_q |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_mandelbrot_s |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
wordfreq_mean |
van Heuven et al. (2014) (Zipf scale) | 🔍 |
wordfreq_rare_ratio |
van Heuven et al. (2014) Table 1 (Zipf ≤ 3 = low frequency) | 🔍 |
vocd_d |
Malvern et al. (2004) pp.56–57; procedure from McCarthy & Jarvis (2010) p.383 | 🔍 |
hdd |
McCarthy & Jarvis (2007), as cited in McCarthy & Jarvis (2010) p.383 | 🔍 |
msttr |
Johnson (1944), as cited in Malvern et al. (2004) p.25 and McCarthy & Jarvis (2010) p.385 | 🔍 |
thematic_concentration |
QUITA §6.2.5 | 🔍 |
secondary_thematic_concentration |
QUITA §6.2.6 | 🔍 |
sent_len_mean |
Flesch (1948) p.223, element (1) "Average Sentence Length in Words" | 🔍 |
sent_len_median |
Yule (1939) p.369, median sentence length alongside the mean | 🔍 |
sent_count |
de Vel (2000) Table 2, attribute 3 "Number of sentences"; Zheng et al. (2006) Table 3, p.385, no. 247 "Total number of sentences" | 🔍 |
sent_len_char_mean |
Zheng et al. (2006) Table 3, p.385, no. 58 "Average sentence length in terms of character" | 🔍 |
para_count |
Zheng et al. (2006) Table 3, p.385, no. 248 "Total number of paragraphs" | 🔍 |
para_len_mean |
Zheng et al. (2006) Table 3, p.385, no. 251 "Number of words per paragraph" | 🔍 |
sents_per_para_mean |
Zheng et al. (2006) Table 3, p.385, no. 249 "Number of sentences per paragraph" | 🔍 |
pronoun_ratio |
Deutsch, Jasbi & Shieber (2020) Table 6 "pronouns per word", listed among existing features; original source not traced | 🔍 |
verb_dist_mean |
QUITA §6.2.1 | 🔍 |
lexical_density |
Lu (2012); definition in the broad Hallidayan sense — all open-class words | 🔍 |
posddev |
Deutsch, Jasbi & Shieber (2020) Definition 3.3 (POSDdev); computed over ratios, 12 UD tags | 🔍 |
posdiv |
Deutsch, Jasbi & Shieber (2020) Definition 3.4 (POSdiv); natural logarithm (nats), the source uses bits | 🔍 |
zeyrek_suffix_bigram_entropy |
Shannon (1948) — the entropy formula; Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | 🔍 |
front_vowel_ratio |
Göksel & Kerslake (2005) ch. 2 (the vowel system, front/back) | 🔍 |
back_vowel_ratio |
Göksel & Kerslake (2005) ch. 2 (the vowel system, front/back) | 🔍 |
harmony_fronting_ratio |
Göksel & Kerslake (2005) §3.1 (fronting harmony); exceptions §3.4 — the measure counts them as disharmonic | 🔍 |
harmony_rounding_ratio |
Göksel & Kerslake (2005) §3.1 (rounding harmony); strictly a suffix phenomenon, measured here as a whole-word pattern | 🔍 |
syllable_count |
Kincaid et al. (1975) p.38, "Instructions for Recalculated Flesch Formula", step 3 "Count the number of syllables" | 🔍 |
syllable_mean |
Flesch (1948) Formula A, wl; unit there = syllables per 100 words, here per word | 🔍 |
syllable_1_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_2_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_3_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_4_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_5_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_6plus_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
lix |
Björnsson (1968), as cited in Anderson (1983) p.490; long word = 7+ letters | 🔍 |
long_word_ratio |
Anderson (1983); long word = 7+ letters | 🔍 |
char_count |
de Vel (2000) Table 2, attribute 8 "Number of characters"; Zheng et al. (2006) Table 3, p.385, no. 1 "Total number of characters (C)" | 🔍 |
digit_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of digit characters in words/C"; here digits anywhere in the text | 🔍 |
punct_count |
de Vel et al. (2001) Table 2, p.60 "Total number of punctuations/C", here not divided by C | 🔍 |
punct_comma_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_period_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_semicolon_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_exclamation_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_colon_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_quote_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_question_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_char_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of punctuations/C" | 🔍 |
whitespace_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of white-space characters/C" | 🔍 |
char_a_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_b_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_c_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ç_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_d_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_e_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_f_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_g_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ğ_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_h_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ı_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_i_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_j_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_k_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_l_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_m_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_n_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_o_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ö_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_p_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_r_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_s_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ş_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_t_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_u_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_ü_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_v_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_y_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_z_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
Not verification candidates¶
82 keys. The ⚪ ones are plain definitions (punct_dash_ratio, uppercase_ratio) — not named measures from the literature. The ⚫ ones are not measures at all but counts of an external tag scheme's categories; a scheme defines categories, it does not publish measurements. The 🔧 ones take their formula from a source but their application is this library's. None of the three has a number to look for.
| Key | Source | Status |
|---|---|---|
lemma_count |
— | ⚪ |
short_sent_ratio |
This library's threshold calibration (docs/threshold-calibration.md); TR 4, EN 8 — 15th percentile of newspaper columns under the default sentence and word rules. Note: the TR value coincides with Ateşman (1997) p.74, where the easiest text has a mean sentence length of 4 words; that is a text mean, not a threshold, so it is not the source. Calibrated on newspaper columns only | 🔧 |
long_sent_ratio |
This library's threshold calibration (docs/threshold-calibration.md); TR 17, EN 32 — 85th percentile of newspaper columns under the default sentence and word rules. Ateşman's 30 was not used: that is the mean of the hardest text, not a single-sentence threshold (in Turkish newspaper columns 30 words is above the 95th percentile, so as a threshold it would almost never fire). Calibrated on newspaper columns only | 🔧 |
sent_len_entropy |
Shannon (1948) — the entropy formula; applying it to the distribution of sentence lengths is this library's own decision | 🔧 |
pos_noun_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_propn_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_verb_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adv_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_det_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adp_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_intj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_cconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_sconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_num_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_aux_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
question_sent_ratio |
— | ⚪ |
sentfinal_noun_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_propn_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_verb_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adv_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_det_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adp_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_intj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_cconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_sconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_num_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_aux_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_pron_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_other_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
surface_per_lemma |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_past_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_pres_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_fut_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_perf_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_imp_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_prog_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_nom_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_acc_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_dat_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_loc_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_abl_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_gen_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_1_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_2_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_3_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
number_sing_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
number_plur_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
voice_pass_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
zeyrek_agglutination_depth |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_suffix_char_length_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_derivational_suffix_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_tense_past_def_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_tense_past_nar_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_tense_present_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_tense_future_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_modal_possibility_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_modal_necessity_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_negation_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_passive_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_plural_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_acc_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_dat_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_loc_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_abl_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_gen_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_case_ins_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_conditional_suffix_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_causative_suffix_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_question_particle_ratio |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
zeyrek_verb_suffix_diversity |
Zeyrek (a Python port of Zemberek's morphotactics); tag set from Akın & Akın (2007) | ⚫ |
vowel_ratio |
— | ⚪ |
sent_syllable_mean |
— | ⚪ |
punct_dash_ratio |
— | ⚪ |
punct_ellipsis_ratio |
— | ⚪ |
punct_paren_ratio |
— | ⚪ |
punct_entropy |
Shannon (1948) — the entropy formula; applying it to the distribution of punctuation types is this library's own decision | 🔧 |
consecutive_punct_ratio |
— | ⚪ |
punct_variety |
— | ⚪ |
uppercase_ratio |
— | ⚪ |
all_caps_word_ratio |
— | ⚪ |
English — 181 keys, 198 rows¶
A key may have more than one worked example in its source; each one is its own row.
Verification candidates — 137 rows
| Status | Rows |
|---|---|
| ✅ exact | 35 |
| 🟡 documented deviation | 3 |
| 🔍 open — no worked example in source | 99 |
Not verification candidates — 61 rows. There is no published number to look for in these.
| Status | Rows |
|---|---|
| ⚪ no source — plain definition | 11 |
| ⚫ tag scheme — not a measure | 45 |
| 🔧 derivative — the application is this library's | 5 |
Keys with a numeric comparison¶
| Key | Source | Example | Evidence | Expected | Ours | Diff | Status |
|---|---|---|---|---|---|---|---|
entropy |
QUITA §6.1.12 | Text 1 · eq. (6.26); source 6.438043 in bits → × ln 2 | formula | 4.463 | 4.463 | +0.000 | ✅ |
entropy |
QUITA §6.1.12 | Text 2 · eq. (6.26); source 6.395099 in bits → × ln 2 | formula | 4.433 | 4.433 | +0.000 | ✅ |
ttr |
QUITA §6.1.1 | Text 1 · V/N = 119/179 | formula | 0.665 | 0.665 | -0.000 | ✅ |
ttr |
QUITA §6.1.1 | Text 2 · V/N = 121/202 = 0.599; source printed 0.590 (typo) | formula | 0.590 | 0.599 | +0.009 | 🟡 |
hapax_token_ratio |
QUITA §6.1.6 | Text 1 · 98/179 | formula | 0.547 | 0.547 | +0.000 | ✅ |
hapax_token_ratio |
QUITA §6.1.6 | Text 2 · 92/202 | formula | 0.455 | 0.455 | +0.000 | ✅ |
mtld |
McCarthy & Jarvis (2010) p.385 | partial factor · TTR .887 → 40.4% | formula | 0.404 | 0.404 | +0.000 | ✅ |
h_point |
QUITA §6.1.2 | Text 1 · rank 5 = frequency 5 | formula | 5.000 | 5.000 | +0.000 | ✅ |
h_point |
QUITA §6.1.2 | Text 2 · interpolation, eq. (6.2) | formula | 4.750 | 4.750 | +0.000 | ✅ |
vocab_richness_r1 |
QUITA §6.1.3 | Text 1 · N=179, h=5 | formula | 0.835 | 0.835 | -0.000 | ✅ |
vocab_richness_r1 |
QUITA §6.1.3 | Text 2 · N=202, h=4.75 → ⌊h⌋=4 | formula | 0.838 | 0.838 | +0.000 | ✅ |
vocab_richness_r4 |
QUITA §6.1.9 | Text 1 · 1−G | formula | 0.696 | 0.696 | +0.000 | ✅ |
vocab_richness_r4 |
QUITA §6.1.9 | Text 2 · 1−G | formula | 0.649 | 0.649 | -0.000 | ✅ |
repeat_rate |
QUITA §6.1.4 | Text 1 · N=179 | formula | 0.020 | 0.020 | -0.000 | ✅ |
repeat_rate |
QUITA §6.1.4 | Text 2 · N=202 | formula | 0.021 | 0.021 | -0.000 | ✅ |
rr_mcintosh |
QUITA §6.1.5 | Text 1 · V=119 | formula | 0.946 | 0.946 | +0.000 | ✅ |
rr_mcintosh |
QUITA §6.1.5 | Text 2 · V=121 | formula | 0.939 | 0.939 | -0.000 | ✅ |
gini_coef |
QUITA §6.1.8 | Text 1 · m₁=41.88268156 | formula | 0.304 | 0.304 | -0.000 | ✅ |
gini_coef |
QUITA §6.1.8 | Text 2 · m₁=39.75742574 | formula | 0.351 | 0.351 | +0.000 | ✅ |
curve_length |
QUITA §6.1.10 | Text 1 · eq. (6.21) | formula | 129.356 | 129.356 | +0.000 | ✅ |
curve_length |
QUITA §6.1.10 | Text 2 · eq. (6.21) | formula | 134.279 | 134.279 | +0.000 | ✅ |
curve_length_r |
QUITA §6.1.11 | Text 1 · Lh=14.29145 | formula | 0.889 | 0.890 | +0.000 | ✅ |
curve_length_r |
QUITA §6.1.11 | Text 2 · Lh=18.03607 | formula | 0.866 | 0.866 | -0.000 | ✅ |
lambda_pa |
QUITA §6.1.7 | Text 1 · L·ln N/N, L=129.3559482; source 1.628 in log₁₀ → × ln 10 | formula | 3.749 | 3.749 | +0.000 | ✅ |
lambda_pa |
QUITA §6.1.7 | Text 2 · L·ln N/N, L=134.2787065; source 1.5325 in log₁₀ → × ln 10 | formula | 3.529 | 3.529 | -0.000 | ✅ |
adjusted_modulus |
QUITA §6.1.13 | Text 1 · M=24.01416249; source 10.6594 in log₁₀ → / ln 10 | formula | 4.629 | 4.629 | -0.000 | ✅ |
adjusted_modulus |
QUITA §6.1.13 | Text 2 · M=25.81931678; source 11.19973 in log₁₀ → / ln 10 | formula | 4.864 | 4.864 | +0.000 | ✅ |
writers_view_alpha |
QUITA §6.2.3 | Text 1 · arccos(−0.374487816) | formula | 1.955 | 1.955 | -0.000 | ✅ |
writers_view_alpha |
QUITA §6.2.3 | Text 2 · arccos(−0.269972586) | formula | 1.844 | 1.844 | +0.000 | ✅ |
activity_ratio |
QUITA §6.2.2 | Text 1 · 26 verbs / 14 adjectives | formula | 0.650 | 0.650 | +0.000 | ✅ |
activity_ratio |
QUITA §6.2.2 | Text 2 · 35 verbs / 8 adjectives | formula | 0.814 | 0.814 | -0.000 | ✅ |
arc_len_mean |
Jing & Liu (2015) p.164 | Figure 3 · 'Mr. Nixon was to…' | formula | 1.167 | 1.167 | +0.000 | ✅ |
arc_len_mean |
Liu (2008) eq. (1) | 'I actually live in Beijing' · 5/4 | formula | 1.250 | 1.250 | +0.000 | ✅ |
parse_depth_mean |
Jing & Liu (2015) p.164 | Figure 3 · MHD = 12/6 | formula | 2.000 | 2.000 | +0.000 | ✅ |
ari |
Kincaid et al. (1975) p.8, Table 1 | Appendix A · 18 passages, mean | end-to-end | 12.300 | 11.763 | -0.537 | 🟡 |
coleman_liau |
Coleman & Liau (1975) p.284 | composition of the two equations · 13 words, 2 sentences | formula | 7.704 | 7.705 | +0.000 | ✅ |
coleman_liau |
Coleman & Liau (1975) p.284, Table 1 | cloze 40.4% → grade 12 | formula | 12.000 | 11.994 | -0.006 | ✅ |
flesch_kincaid_grade |
Kincaid et al. (1975) p.12, Table 2 | Appendix A · 18 passages, mean | end-to-end | 10.700 | 10.326 | -0.374 | 🟡 |
ttr deviation: The source's own counts (V=121, N=202) give 121/202 = 0.599; the printed 0.590 does not match that arithmetic (typo). Our value follows the arithmetic; the difference is 1.5% of the published value.
ari deviation: The source's numbers were produced by hand in 1975 with a mechanical counter attached to a typewriter (Appendix B, ARI instructions). In 17 of the 18 passages, the stroke count that would yield the source's ARI is 0.996-1.041 times ours — a difference of a few characters. Passage 2 is an outlier (ratio 1.145), and there the source's own two numbers contradict each other: Table 1's ARI of 20.3 requires 6.270 strokes per word, while the text's actual value is 5.475; moreover, the words per sentence implied by that ARI give an FKGL of 18.70, whereas Table 2 printed 16.7. Our stroke definition was tested separately: counting spaces raises the difference from 0.54 to 4.32, so counting without spaces is correct.
flesch_kincaid_grade deviation: Same hand-counting source. The per-passage deviation is below 0.6 in 15 of the 18 passages; passage 12 is an outlier (-4.28) and also misses its FRE band, so the deviation is concentrated in a single passage. The difference between the means is 0.37 grade levels — too small to change the readability classification.
🔍 Open — verifiable, not yet verified¶
99 keys. The source published the formula but never applied it to anything and printed the result. In quantitative linguistics this is ordinary: Yule (1944) defines K; he does not print what K comes to for a particular novel. These rows are not untested — their formulas and edge cases are tested in their own test files. What is tracked here is only the comparison against the source's number.
| Key | Source | Status |
|---|---|---|
word_count |
de Vel (2000) Table 2, attribute 1 "Total number of words"; Zheng et al. (2006) Table 3, p.385, no. 54 "Total number of words (M)" | 🔍 |
word_len_mean |
Mendenhall (1887) p.237 "mean word-length"; computed as letters per word, p.241 | 🔍 |
yule_k |
Yule (1944) p.53, eq. (3.22) | 🔍 |
simpson_d |
Simpson (1949), as cited in Bestgen (2023) | 🔍 |
type_count |
Tweedie & Baayen (1998) p.325, the vocabulary size V(N); Zheng et al. (2006) Table 3, p.385, no. 60 "Total different words/M", here not divided by M | 🔍 |
hapax_count |
Tweedie & Baayen (1998) p.325, V(1, N) "the number of hapax legomena"; Zheng et al. (2006) Table 3, p.385, no. 61 "Hapax legomena" ("Frequency of once-occurring words") | 🔍 |
dislegomena_count |
Tweedie & Baayen (1998) p.329, V(2, N) "dis legomena"; Zheng et al. (2006) Table 3, p.385, no. 62 "Hapax dislegomena" ("Frequency of twice-occurring words") | 🔍 |
brunet_w |
Brunet (1978), as cited in Tweedie & Baayen (1998) p.328, eq. (10) | 🔍 |
hapax_ratio |
de Vel (2000) Table 2, attribute 14 "Ratio of words used once to total number of vocabulary words" | 🔍 |
mattr |
Covington & McFall (2010); default window 50 — C&M recommend a window of 500; 50 is used here so that texts of 100+ words can be measured (mattr needs 2 × window) | 🔍 |
herdan_c |
Herdan (1960/1964), as cited in Tweedie & Baayen (1998) p.327, eq. (5) | 🔍 |
dugast_u |
Dugast (1978), as cited in Malvern et al. (2004) eq. 2.7 | 🔍 |
guiraud_r |
Guiraud (1954) p.53, alternative form (all word types), as cited in Daller (2010); his actual law is V/√(2N), content words only | 🔍 |
cttr |
Carroll (1964), as cited in Torruella & Capsada (2013) p.448 | 🔍 |
summer_s |
Somers (1966), as cited in Torruella & Capsada (2013) p.448, where it is named "Summer"; the source gives no logarithm base, the natural logarithm is this library's choice | 🔍 |
maas_a2 |
Maas (1972), as cited in Tweedie & Baayen (1998) p.327, eq. (7); natural logarithm, which reproduces the values in Torruella & Capsada (2013) Table 1; all logarithms in this library are natural | 🔍 |
herdan_vm |
Herdan (1955), as cited in Tweedie & Baayen (1998) p.330, eq. (18) | 🔍 |
honore_r |
Honoré (1979), as cited in Tweedie & Baayen (1998) p.329, eq. (11) | 🔍 |
heaps_beta |
Heaps (1978), as cited in Manning et al. (2008) §5.1.1 | 🔍 |
sichel_s |
Sichel (1975); formula from Malvern et al. (2004) eq. 3.10 | 🔍 |
noun_variation |
Lu (2012) Table 2 | 🔍 |
verb_variation |
Lu (2012) Table 2 | 🔍 |
adj_variation |
Lu (2012) Table 2 | 🔍 |
adv_variation |
Lu (2012) Table 2 | 🔍 |
zipf_exponent |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_r2 |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_mandelbrot_q |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
zipf_mandelbrot_s |
Piantadosi (2014) eq. (2); the same source criticises estimating r and f(r) from the same corpus | 🔍 |
wordfreq_mean |
van Heuven et al. (2014) (Zipf scale) | 🔍 |
wordfreq_rare_ratio |
van Heuven et al. (2014) Table 1 (Zipf ≤ 3 = low frequency) | 🔍 |
vocd_d |
Malvern et al. (2004) pp.56–57; procedure from McCarthy & Jarvis (2010) p.383 | 🔍 |
hdd |
McCarthy & Jarvis (2007), as cited in McCarthy & Jarvis (2010) p.383 | 🔍 |
msttr |
Johnson (1944), as cited in Malvern et al. (2004) p.25 and McCarthy & Jarvis (2010) p.385 | 🔍 |
thematic_concentration |
QUITA §6.2.5 | 🔍 |
secondary_thematic_concentration |
QUITA §6.2.6 | 🔍 |
sent_len_mean |
Flesch (1948) p.223, element (1) "Average Sentence Length in Words" | 🔍 |
sent_len_median |
Yule (1939) p.369, median sentence length alongside the mean | 🔍 |
sent_count |
de Vel (2000) Table 2, attribute 3 "Number of sentences"; Zheng et al. (2006) Table 3, p.385, no. 247 "Total number of sentences" | 🔍 |
sent_len_char_mean |
Zheng et al. (2006) Table 3, p.385, no. 58 "Average sentence length in terms of character" | 🔍 |
para_count |
Zheng et al. (2006) Table 3, p.385, no. 248 "Total number of paragraphs" | 🔍 |
para_len_mean |
Zheng et al. (2006) Table 3, p.385, no. 251 "Number of words per paragraph" | 🔍 |
sents_per_para_mean |
Zheng et al. (2006) Table 3, p.385, no. 249 "Number of sentences per paragraph" | 🔍 |
pronoun_ratio |
Deutsch, Jasbi & Shieber (2020) Table 6 "pronouns per word", listed among existing features; original source not traced | 🔍 |
verb_dist_mean |
QUITA §6.2.1 | 🔍 |
lexical_density |
Lu (2012); definition in the broad Hallidayan sense — all open-class words | 🔍 |
posddev |
Deutsch, Jasbi & Shieber (2020) Definition 3.3 (POSDdev); computed over ratios, 12 UD tags | 🔍 |
posdiv |
Deutsch, Jasbi & Shieber (2020) Definition 3.4 (POSdiv); natural logarithm (nats), the source uses bits | 🔍 |
front_vowel_ratio |
Göksel & Kerslake (2005) ch. 2 (the vowel system, front/back) | 🔍 |
back_vowel_ratio |
Göksel & Kerslake (2005) ch. 2 (the vowel system, front/back) | 🔍 |
syllable_count |
Kincaid et al. (1975) p.38, "Instructions for Recalculated Flesch Formula", step 3 "Count the number of syllables" | 🔍 |
syllable_mean |
Flesch (1948) Formula A, wl; unit there = syllables per 100 words, here per word | 🔍 |
syllable_1_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_2_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_3_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_4_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_5_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
syllable_6plus_ratio |
Bezirci & Yılmaz (2010) Table 1-c | 🔍 |
lix |
Björnsson (1968), as cited in Anderson (1983) p.490; long word = 7+ letters | 🔍 |
long_word_ratio |
Anderson (1983); long word = 7+ letters | 🔍 |
flesch_reading_ease |
Flesch (1948) Formula A; coefficient .846, unit = syllables per 100 words | 🔍 |
smog |
McLaughlin (1969) p.643, Table 1, eq. (d); p = polysyllabic words in a 30-sentence sample | 🔍 |
char_count |
de Vel (2000) Table 2, attribute 8 "Number of characters"; Zheng et al. (2006) Table 3, p.385, no. 1 "Total number of characters (C)" | 🔍 |
digit_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of digit characters in words/C"; here digits anywhere in the text | 🔍 |
punct_count |
de Vel et al. (2001) Table 2, p.60 "Total number of punctuations/C", here not divided by C | 🔍 |
punct_comma_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_period_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_semicolon_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_exclamation_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_colon_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_quote_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_question_ratio |
Zheng et al. (2006) Table 3, p.385, no. 88-95 (frequencies of eight marks, this one among them); here the share among all marks | 🔍 |
punct_char_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of punctuations/C" | 🔍 |
whitespace_ratio |
de Vel et al. (2001) Table 2, p.60 "Total number of white-space characters/C" | 🔍 |
char_a_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_b_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_c_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_d_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_e_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_f_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_g_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_h_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_i_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_j_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_k_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_l_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_m_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_n_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_o_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_p_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_q_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_r_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_s_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_t_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_u_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_v_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_w_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_x_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_y_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
char_z_ratio |
Zheng et al. (2006) Table 3, p.385, no. 7-32 "Frequency of letters (26 features)", A-Z; here each letter of the language's alphabet (Turkish 29, English 26) as a share of all its letters | 🔍 |
Not verification candidates¶
61 keys. The ⚪ ones are plain definitions (punct_dash_ratio, uppercase_ratio) — not named measures from the literature. The ⚫ ones are not measures at all but counts of an external tag scheme's categories; a scheme defines categories, it does not publish measurements. The 🔧 ones take their formula from a source but their application is this library's. None of the three has a number to look for.
| Key | Source | Status |
|---|---|---|
lemma_count |
— | ⚪ |
short_sent_ratio |
This library's threshold calibration (docs/threshold-calibration.md); TR 4, EN 8 — 15th percentile of newspaper columns under the default sentence and word rules. Note: the TR value coincides with Ateşman (1997) p.74, where the easiest text has a mean sentence length of 4 words; that is a text mean, not a threshold, so it is not the source. Calibrated on newspaper columns only | 🔧 |
long_sent_ratio |
This library's threshold calibration (docs/threshold-calibration.md); TR 17, EN 32 — 85th percentile of newspaper columns under the default sentence and word rules. Ateşman's 30 was not used: that is the mean of the hardest text, not a single-sentence threshold (in Turkish newspaper columns 30 words is above the 95th percentile, so as a threshold it would almost never fire). Calibrated on newspaper columns only | 🔧 |
sent_len_entropy |
Shannon (1948) — the entropy formula; applying it to the distribution of sentence lengths is this library's own decision | 🔧 |
pos_noun_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_propn_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_verb_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adv_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_det_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_adp_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_intj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_cconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_sconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_num_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
pos_aux_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
question_sent_ratio |
— | ⚪ |
sentfinal_noun_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_propn_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_verb_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adv_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_det_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_adp_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_intj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_cconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_sconj_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_num_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_aux_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_pron_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
sentfinal_other_ratio |
de Marneffe et al. (2021) Table 1 (UPOS tag set) | ⚫ |
surface_per_lemma |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_past_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_pres_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
tense_fut_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_perf_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_imp_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
aspect_prog_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_nom_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_acc_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_dat_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_loc_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_abl_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
case_gen_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_1_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_2_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
person_3_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
number_sing_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
number_plur_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
voice_pass_ratio |
de Marneffe et al. (2021) Table 2 (universal morphological features) | ⚫ |
vowel_ratio |
— | ⚪ |
sent_syllable_mean |
— | ⚪ |
polysyllabic_word_ratio |
McLaughlin (1969) p.641; polysyllabic = 3+ syllables — the ratio form of SMOG's input, not the source's own measure | 🔧 |
punct_dash_ratio |
— | ⚪ |
punct_ellipsis_ratio |
— | ⚪ |
punct_paren_ratio |
— | ⚪ |
punct_entropy |
Shannon (1948) — the entropy formula; applying it to the distribution of punctuation types is this library's own decision | 🔧 |
consecutive_punct_ratio |
— | ⚪ |
punct_variety |
— | ⚪ |
uppercase_ratio |
— | ⚪ |
all_caps_word_ratio |
— | ⚪ |
Syllabification — 10/10¶
Syllabification feeds eight syllable_* keys and all three Turkish readability formulas at once. The comparison below tests the split, not the count: a word broken in the wrong place can still yield the right number of syllables, and a count comparison would not catch it.
Source: TDK, "Hece Yapısı ve Satır Sonunda Kelimelerin Bölünmesi" (tdk.gov.tr, 2019).
| Word | TDK | Ours | Status |
|---|---|---|---|
| aldı | al-dı |
al-dı |
✅ |
| altlık | alt-lık |
alt-lık |
✅ |
| türkçe | türk-çe |
türk-çe |
✅ |
| program | prog-ram |
prog-ram |
✅ |
| kontrol | kont-rol |
kont-rol |
✅ |
| santral | sant-ral |
sant-ral |
✅ |
| saat | sa-at |
sa-at |
✅ |
| karaosmanoğlu | ka-ra-os-ma-noğ-lu |
ka-ra-os-ma-noğ-lu |
✅ |
| tren | tren |
tren |
✅ |
| strateji | stra-te-ji |
stra-te-ji |
✅ |
Appendix — Kincaid Appendix A, passage by passage¶
The 18 comparisons behind the two 🟡 rows in the main table (ari, flesch_kincaid_grade). The intermediate counts (strokes, words) are here so that when a number differs you can see which input it came from.
The FRE band column is a separate check: Table 1's Flesch column prints not a 0-100 score but Flesch's own grade band (8-9 = FRE 60-70, and so on). It asks whether our FRE falls inside that band.
Passage texts: tests/veri/kincaid/. Measurement: scripts/kincaid_olcum.py.
| # | Strokes | Words | ARI source | ARI ours | Diff | FKGL source | FKGL ours | Diff | FRE band |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 663 | 148 | 10.6 | 10.24 | -0.36 | 9.7 | 9.64 | -0.06 | 8-9 ✅ |
| 2 | 668 | 122 | 20.3 | 16.56 | -3.74 | 16.7 | 15.79 | -0.91 | 16+ ✅ |
| 3 | 684 | 127 | 13.3 | 13.01 | -0.29 | 12.7 | 12.67 | -0.03 | 13-16 ✅ |
| 4 | 749 | 155 | 8.8 | 8.38 | -0.42 | 8.2 | 8.18 | -0.02 | 8-9 ✅ |
| 5 | 517 | 104 | 9.5 | 9.41 | -0.09 | 7.1 | 5.94 | -1.16 | 8-9 ❌ |
| 6 | 685 | 133 | 12.4 | 12.33 | -0.07 | 12.3 | 12.05 | -0.25 | 13-16 ✅ |
| 7 | 1017 | 197 | 12.7 | 12.74 | +0.04 | 11.7 | 11.96 | +0.26 | 13-16 ✅ |
| 8 | 1061 | 197 | 16.4 | 16.25 | -0.15 | 14.7 | 14.98 | +0.28 | 13-16 ✅ |
| 9 | 837 | 181 | 9.7 | 9.40 | -0.30 | 8.0 | 8.16 | +0.16 | 7 ❌ |
| 10 | 1177 | 231 | 13.1 | 12.19 | -0.91 | 11.7 | 11.18 | -0.52 | 13-16 ✅ |
| 11 | 822 | 170 | 7.8 | 7.88 | +0.08 | 8.1 | 7.77 | -0.33 | 8-9 ✅ |
| 12 | 997 | 214 | 16.7 | 15.80 | -0.90 | 11.8 | 7.52 | -4.28 | 10-12 ❌ |
| 13 | 894 | 183 | 13.4 | 13.02 | -0.38 | 10.0 | 10.01 | +0.01 | 10-12 ✅ |
| 14 | 681 | 137 | 12.0 | 11.77 | -0.23 | 12.5 | 12.11 | -0.39 | 13-16 ✅ |
| 15 | 985 | 217 | 9.7 | 8.99 | -0.71 | 8.4 | 8.16 | -0.24 | 8-9 ✅ |
| 16 | 882 | 163 | 13.5 | 13.11 | -0.39 | 13.8 | 14.13 | +0.33 | 16+ ✅ |
| 17 | 1240 | 240 | 10.4 | 9.96 | -0.44 | 9.3 | 8.83 | -0.47 | 10-12 ✅ |
| 18 | 782 | 144 | 10.9 | 10.69 | -0.21 | 6.6 | 6.81 | +0.21 | — |
ARI mean absolute difference 0.54, largest 3.74 (passage 2). FKGL mean absolute difference 0.55, largest 4.28 (passage 12). Inside the FRE band: 14/17.