Commit graph

15 commits

Author SHA1 Message Date
Doxa Maps
f68cb24e78 2,001 groups had readable Scripture and were told they did not
go-int cross-checked 20 roster languages with "no New Testament found in the pools" against
open-data signals. Thirteen of the twenty had readable text all along — on a record the tier
could not see — and chasing that found one rule written four times and wrong in two of them.

THE BUG. tierOfCode tested `!!c.s`, one field, while this build's own hasReadableScripture
tested four sources. Tier 2 means "Scripture AND film", so a language whose text is on the
Faith Comes By Hearing record (au.m names the media it holds), on Scripture Earth, or in a
Door43 translation was scored 1 — "some resource found" — with its own text and the JESUS
Film both in hand. Measured: 602 codes and 2,001 of 12,379 groups move 1 -> 2. Tier 0 does
not move at all, 1,592 before and after, so nothing about who has NOTHING changes: the gap
lists, the 369 zero-access groups and the bridge-reach table are untouched.

THE SAME BUG DOWNSTREAM, and this is the one a catalyst would have felt: resourceRows typed
an FCBH record "audio, text, video" as Audio Scripture only, so the access table's
byType.Scripture never saw it. 288 people groups were published as "watch or hear, cannot
read" while their own readable Scripture sat behind that link. Access now reads 1,129 "read
and watch" (was 869), 518 "cannot read" (was 806), 85 "read" (was 57), 369 nothing found and
6 stories only — unchanged where it should be, and 2,107 in total either way. Typing the row
by its text would have dropped "can hear", so the access builder now counts a Scripture row
whose scope names audio as hearable too.

ONE OWNER NOW. hasReadableScripture is exported from gospel-resource-rows.js and imported by
the pin builder and by check-gospel-coverage-consistent, whose arm F had its own narrow copy
and therefore reported 2,001 disagreements against the corrected tier — a gate defending the
bug it exists to catch. A rule with four copies has no owner; this one has.

`sx` ships alongside: the readable text with its source named, for the 887 codes whose text is
not at c.s, so a surface can LINK what the tier now counts instead of claiming Scripture and
showing a film. Wiring it into the sheet and the field card is the next commit; this one is
data and rules only, and public/ is deliberately NOT rebuilt because rega is rendering this
worktree.
2026-09-27 18:53:52 +00:00
doxa-maps-88655c70
b84beaed9e Wire the corrected GRN sweep, and translate the three lines that make the map usable
THE RECHECK, reported at its real size. Re-asking all 293 Doxa codes the old
title catch-all had defaulted to "none" recovered EIGHT: the rule was wrong
2.7% of the time, not catastrophically. That moves 12 Doxa people groups out of
the gap — 381 to 369 — and each now carries a working Words of Life link. Modest,
and worth saying plainly rather than dressing up: the bug was real, its blast
radius was small, and the fix is that the classifier measures instead of
defaulting.

THE THREE LINES. rega's in-gallery count was right that these are chrome, not
prose: what a dot is, what "none found" does not mean, and that a country is
tappable. They are what a reader needs to use the map AT ALL, so leaving them
English made it unusable rather than merely untranslated. Translated in all
eleven; the long explanatory paragraphs around them stay English and are pinned
dir=ltr where they sit, which is option (b) unchanged.
2026-09-25 07:06:33 +00:00
doxa-maps-88655c70
4fc261f8df Say which film it is: three languages were labelled JESUS Film without one
Five codes still carried the retired ?languageId= URL, which nothing can verify.
Asking Arclight what each language actually has:

  ars  Arabic, Najdi        The Savior                 (8 groups; film was their ONLY resource)
  gjk  Kachi Koli           Magdalena - Director's Cut
  mzn  Mazanderani          Magdalena - Director's Cut
  lia  Limba, West-Central  no feature at all
  jos  Jordanian Sign Lang  left alone, see below

counts.featureFilm >= 1 says a feature exists, not that it is JESUS. Three of
these had a real JESUS Film Project film in their own language under a different
title, and the map called all of them the JESUS Film — the same class of lie as
calling Open Bible Stories Scripture. They now ship under their own names, with
verified deep links; lia's film is dropped, because no component carries it and
a link nobody can check is worse than none.

jos is left exactly as it was. Arclight files iso3 jos under a row whose own
name reads Lebanese Sign Language, while the JESUS Film sits at a different id
named Jordanian Sign Language. The ISO join and the publisher's label disagree,
and resolving that is a data question, not a guess to make inside a fetcher.
2026-09-25 03:44:39 +00:00
doxa-maps-88655c70
43e3102f47 Check 5fish links too, and say why YouVersion stays out
The rot sampler now covers 5fish by where its redirect LANDS — a published code
goes to its numbered language page, one they do not carry is swept to /regions —
the same rule the verifier uses, with both arms proved in band. Six links a run,
ten seconds apart, because their robots.txt asks for it. That leaves 94 of 8,510
shipped links outside every re-check, down from 5,760 this morning.

YouVersion is the largest catalogue the brief names and it is now recorded as
rejected, with the measurement: nodejs.bible.com serves it without a key but its
robots.txt is Disallow: / , www.bible.com answers even robots.txt with a bot
wall, and the unauthenticated slice returns 2 English versions against the dozens
that exist — so taking it would be both discourteous and wrong. It is named in
the unchecked list on 5,413 codes instead of being silently absent, because a
reader deciding that a group has nothing is entitled to know which pools nobody
searched.
2026-09-25 02:44:37 +00:00
doxa-maps-88655c70
2253d893b7 Finish the GRN sweep: every reachable pool has now been checked
Batch fourteen closed it — 2,347 language codes decided, 1,022 carrying Words
of Life. Forty groups leave the gap: 1,653 with nothing becomes 1,613, and the
gap breakdown drops from four situations to three, because "GRN not yet swept"
no longer describes anybody. What is left is 1,429 groups where every pool this
build can reach has been searched, 183 sign languages behind key-gated sources,
and one group with no language code at all.

Two things the sweep exposed. 5fish answers 200 for any path, so its 982 links
were being verified by a status that means nothing there; they are now judged by
where the redirect LANDS — a real code goes to its numbered language page, one
they do not carry is swept to /regions — with both arms proved in band before
any link is classified. And country-gap reads a file that another script
refreshes from the pins, so running them out of order publishes the previous
build's numbers: it said 1,653 while the map said 1,613. It now refuses to write
a table that disagrees with the index the map draws.
2026-09-25 02:44:37 +00:00
doxa-maps-88655c70
ccc6ae27a6 Sweep GRN batch thirteen: 133 codes from the end
170 more codes, 57 with gospel audio. 979 codes carry a Words of Life
link and 1,220 people groups whose ONLY resource in any pool is that
recording — 79.4 million people — can hear the gospel in their own
language. Tier 0 is 1,653, from 3,457 when this began.

2,215 of the gap's 2,456 codes are decided. The "not yet swept" bucket
is down to 133 groups, so one more batch ends it, and the breakdown
will then read three situations rather than four — which the sheet was
taught to handle last tick, before it could print "0 groups still
unswept" beside a claim that four situations remained.

Provenance exact: 2,079 name GRN as checked, 2,079 decided, none
decided goes unnamed. All 57 new URLs verified before shipping.
2026-09-25 02:44:36 +00:00
doxa-maps-88655c70
fc882f8842 Sweep GRN batch twelve: the unswept bucket is down to 311
170 more codes, 52 with gospel audio — 31%, against 43% over the first
nine batches. The sweep runs largest-population first, so the tail is
the small and rare languages where GRN is least likely to have
reached; the falling rate is the sweep working through the hard part.

922 codes carry a Words of Life link and 1,158 people groups whose
ONLY resource in any pool is that recording — 79.4 million people —
can hear the gospel in their own language. Tier 0 is 1,715, from 3,457
when this began. 2,045 of the gap's 2,456 codes are decided, 83%.

The shape keeps telling the same story: "GRN not yet swept" has fallen
842 → 660 → 484 → 311, while the real translation gap has risen 887 →
1,220. Groups are not getting worse off; they are moving from a bucket
that meant "we have not looked" into one that means "we looked
everywhere we can reach". That is the number a translator should plan
against, and it only became sayable once the two were separated.

Provenance exact: 1,910 name GRN as checked, 1,910 decided, none
decided goes unnamed. All 52 new URLs verified before shipping.
2026-09-25 01:23:07 +00:00
doxa-maps-88655c70
45ddbac364 Sweep GRN batch eleven: the unswept remainder halves again
170 more codes, 73 with gospel audio. 870 codes carry a Words of Life
link and 1,104 people groups whose ONLY resource in any pool is that
recording — 79.3 million people — can hear the gospel in their own
language.

Tier 0 is 1,769, from 3,457 when this began. 1,876 of the gap's 2,456
codes are decided, 76% of the sweep, and the "GRN not yet swept"
bucket has fallen from 842 groups to 484: that share of the gap is
evaporating as the crawl proceeds rather than because anything was
translated, which is why the sheet names it separately.

The real translation gap barely moves by comparison — 1,001 to 1,101
— because groups leaving the unswept bucket mostly land there. That is
the honest shape of this work: the sweep is not shrinking the gap so
much as telling the truth about which part of it is real.

Provenance exact: 1,744 name GRN as checked, 1,744 decided, none
decided goes unnamed. All 73 new URLs verified before shipping.
2026-09-25 00:50:22 +00:00
doxa-maps-88655c70
4d96907e4b Sweep GRN batch ten: 1,028 groups reachable by recording alone
170 more codes, 62 with gospel audio. 797 codes carry a Words of Life
link and 1,028 people groups whose ONLY resource in any pool is that
recording — 79.2 million people — can hear the gospel in their own
language.

Tier 0 is 1,845, from 3,457 when this began: 1,612 groups moved out of
"nothing found" on verified links. 1,707 of the gap's 2,456 codes are
decided, 70% of the sweep.

The hit rate is falling, and that is the sweep working rather than
failing: 36% this batch against 43% over the first nine. The codes are
probed largest-population first, so the tail is the small and rare
languages where GRN is least likely to have reached — which is exactly
where the remaining gap lives.

Provenance exact — 1,578 name GRN as checked, 1,578 decided, none
decided goes unnamed — and all 62 new URLs verified before shipping.
2026-09-25 00:18:31 +00:00
doxa-maps-88655c70
c94b3cb4b5 Sweep GRN batch nine: 960 groups reachable by recording alone
170 more codes, 78 with gospel audio. 735 codes carry a Words of Life
link, and 960 people groups whose ONLY resource in any pool is that
recording — 79.0 million people — can hear the gospel in their own
language.

Tier 0 is 1,913. It was 3,457 when this work began, so 1,544 people
groups have moved out of "nothing found" on real, verified links.
1,537 of the gap's 2,456 codes are decided, 63% of the sweep, and the
hit rate holds at 43% across nine batches.

Provenance exact — 1,412 name GRN as checked, 1,412 decided, none
decided goes unnamed — and all 78 new URLs verified before shipping.
2026-09-24 23:46:51 +00:00
doxa-maps-88655c70
1ca75ba838 Sweep GRN batch eight: tier 0 falls below 2,000
170 more codes, 74 with gospel audio. 657 codes carry a Words of Life
link and 872 people groups whose ONLY resource in any pool is that
recording — 78.7 million people — can hear the gospel in their own
language.

Tier 0 is 2,001, from 3,457 when this started: 1,456 groups have been
moved out of "nothing found" by real, verified links. 1,367 of the
gap's 2,456 codes are decided, 56% of the sweep, and the hit rate is
steady at 43% over eight batches.

Provenance exact — 1,246 name GRN as checked, 1,246 decided, none
decided goes unnamed — and all 74 new URLs verified before shipping.
2026-09-24 23:14:37 +00:00
doxa-maps-88655c70
08294cf232 Sweep GRN batch seven: half the gap's codes now decided
170 more codes probed, 72 with gospel audio. 583 codes carry a Words
of Life link and 785 people groups whose ONLY resource in any pool is
that recording — 78.3 million people — can hear the gospel in their
own language.

Tier 0 falls 2,172 to 2,088, from 3,457 when this began: the gap has
shrunk by 40%. 1,197 of the gap's 2,456 codes are decided, so the
sweep is now about half done, and the hit rate has settled around 42%
across seven batches.

Provenance exact through the change — 1,078 codes name GRN as checked,
1,078 decided, none decided goes unnamed — and all 72 new URLs
verified before shipping.
2026-09-24 22:41:29 +00:00
doxa-maps-88655c70
0d394e9924 Sweep GRN batch six: 701 groups reachable by recording alone
170 more gap codes probed, 84 with gospel audio. 511 codes now carry a
Words of Life link, and 701 people groups whose ONLY resource in any
pool is that recording — 77.6 million people — can hear the gospel in
their own language.

Tier 0 falls 2,270 to 2,172. It was 3,457 when this work began, so the
gap is down by more than a third, and the translation-priority table
grows in step: 2,556 groups now, because every code GRN reaches moves
a group out of "nothing found" and into "can hear it, no text".

1,027 of the gap's codes are decided. Provenance stays exact through
the change — 915 codes name GRN as checked, 915 have been decided,
none decided goes unnamed — and all new URLs were verified before
shipping.
2026-09-24 22:04:56 +00:00
doxa-maps-88655c70
810d346fd8 Sweep GRN batch five, and verify the map actually drives the table
170 more gap codes, 84 with gospel audio. 427 codes now carry a Words
of Life link; 603 people groups whose only resource in any pool is
that recording — 76.4 million people — can hear the gospel in their
own language. Tier 0 falls 2,373 to 2,270, from 3,457 when this began.
859 of the gap's codes decided, provenance exact at 752 claiming GRN,
752 decided, none decided-but-unnamed.

Also measured, rather than assumed: the map really does filter the
table beneath it. Composed on the dashboard, opening Foodo and
pressing "Every resource in Foodo ↓" cuts the table from 7,762 rows to
1 — Foodo has exactly one resource, the Scripture Earth PDF. That was
claimed by the brief and had never been checked end to end.

The translation-priority table tracks the sweep: 2,458 groups now,
up from 2,355, because every code GRN reaches moves a group out of
"nothing found" and into "can hear it, no text".
2026-09-24 21:25:17 +00:00
doxa-maps-88655c70
9512c54239 Make the translation-priority list a table you can export
The map could select the groups that can already hear the gospel but
have no text Scripture. A filter cannot be sorted, exported, or handed
to a committee, and this is precisely the list that gets handed to a
committee. None of these groups appears in "Where Nothing Was Found"
either, because none of them is tier 0 — it is the opposite question.

2,355 groups across 1,224 languages, largest first, with CSV and JSON
export. Each row names what the group DOES have and links to it, so it
is actionable without the map: Western Punjabi, 97 million, "audio
Scripture, the JESUS Film". The pools checked and the pools NOT checked
are columns on every row, because an exported spreadsheet strips the
caveat first and the caveat is the part that keeps this honest.

Fixing the map to agree exposed a real defect in the filter shipped
last tick: it counted 49 SIGN languages among its 2,289. "Can hear the
gospel" is the wrong sentence about a Deaf people group, and recorded
audio is neither what they lack nor what they need — this map already
suppresses the audio chip and the GRN attach for them for that reason.
Both surfaces now exclude them and both report 2,355.
2026-09-24 21:14:21 +00:00