Say that audio was never searched, on the groups whose need it is

MEASURED: has_audio is 'unknown' for all 2,106 source records and therefore for all
12,379 pins. Not one group on this map has had its audio checked, because GRN — the main
audio-gospel pool — is named as unchecked on every record. The map was nonetheless
showing 3,444 groups as "nothing found", covering 347,125,659 people, and for an oral
culture audio is not one resource among several, it is the one that matters.

So the claim was overstated in the place it is least affordable. Three changes, all copy,
no data:

The audio chip said "unknown", which did no work — it is unknown for EVERY group, so it
read as a property of that group rather than of our search. It now says "not searched
(GRN)" and names the pool in its tooltip. A shrug becomes something a reader can act on.

The gap list now leads with it: 3,444 groups, 347,125,659 people, and "Audio has never
been searched for any of them" before the ranked rows rather than after.

The legend caveat names the pool and what its absence costs, instead of the passing
"GRN audio is unchecked".

NOT ADDED, DELIBERATELY: Arclight publishes an audioPreview for 2,074 of these codes and
it is a real, resolving URL. It is also ~24.4KB of AAC — MEASURED at a uniform 11.8
seconds — a language-identification sample, not Scripture. Shipping it under "Audio ·
found" would be the same error as calling Open Bible Stories a Bible, so it is left out.
Real audio still needs GRN or FCBH credentials.

Verified on the served tree: the legend carries the warning, a group sheet reads "Audio ·
not searched (GRN)" with no bare "unknown" anywhere in it, the gap panel carries the
sentence, and the people-count renders 347,125,659 — the same number the build measures.
Pins, filter, gap-list and sign-language probes all still pass.
This commit is contained in:
doxa-maps-88655c70 2026-09-24 04:48:45 +00:00
parent 45354c95ec
commit 5e54e601aa
8 changed files with 47 additions and 33 deletions

View file

@ -168,6 +168,11 @@ function setPinFilter(v) {
// Sorted by population because a mobiliser choosing where to go is choosing how many
// people are behind the decision, not how many rows are.
const showGapList = ref(false)
const gapPeople = computed(() => {
let n = 0
for (const r of pinRows.value) if (r[6] === 0) n += r[5] || 0
return n
})
const gapList = computed(() => {
if (!showGapList.value) return []
const out = []
@ -686,7 +691,9 @@ useShadowStyles(
<b>A dot and the country under it mean different things.</b> The country is an AVERAGE
across its groups; a dot is that ONE group's own language. So a red dot can sit on a green
country — that is the case worth finding, not a rendering fault.
<br>“None found” = not in the pools checked (eBible, JESUS Film, Door43). GRN audio is unchecked — never proof of absence.
<br>“None found” = not in the pools checked (eBible, JESUS Film, Door43). <b>Audio is unchecked for
every group here</b> — GRN needs credentials — so for an oral culture this map has not yet
looked where it matters most. Never proof of absence.
<template v-if="mode === 'coverage'">
A “found” colour is equally bounded: it counts what these pools list, not everything that exists.
</template>
@ -707,7 +714,10 @@ useShadowStyles(
</div>
<p class="gm-note" style="margin-top:0">
{{ fmt(pinTally.none) }} people groups have no Scripture, film or Door43 resource in the
pools checked. These are the 40 largest. Tap one to fly there and see what was checked.
pools checked — {{ fmt(gapPeople) }} people. These are the 40 largest; tap one to fly there.
<br><b>Audio has never been searched for any of them.</b> GRN is the main audio-gospel
pool and needs credentials this build does not have, so for an oral culture the most
relevant resource is the one pool nobody has looked in.
</p>
<button v-for="g in gapList" :key="g.i" type="button" class="gm-pg gm-pg-btn" @click="gotoGap(g)">
<span class="gm-pg-n">{{ g.name }}</span>
@ -748,9 +758,13 @@ useShadowStyles(
<!-- has_audio ships the STRING 'unknown' for key-blocked pools. It is
rendered as "unknown", never collapsed to a no. -->
<span class="gm-chip meh">
<!-- "unknown" was doing no work: it is unknown for EVERY group on this map,
because the audio pool has never been searched at all. Naming the pool
turns a shrug into something a reader can act on. -->
<span class="gm-chip meh" :title="selectedGroup.has_audio === null || selectedGroup.has_audio === 'unknown'
? 'GRN (Global Recordings Network) is the main audio-gospel pool and has not been searched for any group on this map.' : ''">
Audio · {{ selectedGroup.has_audio === true ? 'found'
: selectedGroup.has_audio === false ? 'none found' : 'unknown' }}
: selectedGroup.has_audio === false ? 'none found' : 'not searched (GRN)' }}
</span>
<!-- Door43 entries are real published repos, so they ship as real links. The
SUBJECT is shown verbatim: "Open Bible Stories" is 50 illustrated narratives,

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -26,7 +26,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
<script src="../gospel-resources.js" integrity="sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr" crossorigin="anonymous"></script>
<script src="../gospel-resources.js" integrity="sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -556,7 +556,7 @@
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "doxa-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr",
"integrity": "sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9",
"elements": [
"gospel-resources-map"
],
@ -572,7 +572,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -586,7 +586,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -600,7 +600,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
},
{
@ -614,7 +614,7 @@
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-AKE1Jldawoq7IpPP89iDZJmY1uc8lb4fOjzTyi/xVTLUspsiuqIUAc04H1Kn/ayr\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-2nSIiWFCYP0BZIB894cHtr8kR8jlovo3hD9LQTuWmkdbZLNjj3nD2km+7j4cd+Y9\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
}
}
]