# PANEL WAVE B — P31 AL-MIZAN — STRATA REVIEW
**Scope**: PB3 — W7 Strata / Dossier / Registry stack  
**Panel class**: MACHINE-SCHOLAR  
**Date**: 2026-09-04  

---

## VERDICT: CLEAN

No era-ordering violation found. No parity misclassification detected in sample.
All structural counts verified. Two low-severity transparency gaps noted
(unmerged spelling-duplicates undeclared in M2/M3). No FIX-FIRST findings.

---

## NUMBERED FINDINGS

### FINDING 1 — LOW · M2 companion_registry: three Ibn Abbas variants, no unmerged declaration
**File**: `W7-M2/companion_registry.json`  
**Evidence**: The top-carrier table lists three distinct entries for the same Companion:  
| Name form | Rows | Verses |
|---|---|---|
| "Ibn Abbas رضي الله عنهما" | 2438 | 1286 |
| "Abd Allah ibn Abbas رضي الله عنهما" | 514 | 256 |
| "Ibn 'Abbas radiyallahu 'anhuma" | 330 | 84 |
| **Total** | **3282** | — |

The registry reports "distinct_names: 84" — but at minimum 3 of those 84 are
transliteration/form variants of a single Companion. The mission expected "two
Ibn Abbas spelling variants" but three are present.  
The file has only `_meta` and `totals` keys. There is **no unmerged-declaration** field
stating that these variants are known to be the same person and are intentionally unmerged
to preserve pool attribution fidelity.  
**Impact**: The "84 distinct names" count is inflated. A user building a per-Companion
index would silently count Ibn Abbas contributions three times.  
**Law text**: "Companions BY NAME from the pool's own attribution fields — transmitted,
never inferred" — this justifies keeping variants unmerged; but it does not justify
keeping silent about the merge gap.  
**Severity**: LOW — no data is wrong; the pool attribution is faithfully surfaced.
But an honest registry of this kind should carry: "unmerged_variants: [[name_a, name_b, name_c], ...]"
or at minimum a prose note.

---

### FINDING 2 — LOW · M3 successor_registry: four pairs of spelling-duplicates, no declaration
**File**: `W7-M3/successor_registry.json`  
**Evidence**: The top-carrier table contains four confirmed duplicate pairs:  
| Long form | Rows | Short form | Rows | Total |
|---|---|---|---|---|
| Mujahid ibn Jabr (tabi'i) | 647 | Mujahid | 277 | 924 |
| Qatada ibn Di'ama (tabi'i) | 573 | Qatadah | 422 | 995 |
| Ikrima (tabi'i) | 112 | Ikrimah | 29 | 141 |
| al-Dahhak (tabi'i) | 53 | al-Dahhak | 26 | 79 |

Four distinct Successors appear as eight "distinct names." The registry reports
"distinct_names: 22" — at minimum 8 of those 22 are 4 people, making the effective
count ≤ 18. Same structural issue as M2: no unmerged declaration.  
**Severity**: LOW — same reasoning as Finding 1. Same fix path.

---

### FINDING 3 — VERIFIED · dossiers_v3: all 6,236 verses present; absence correctly declared
**File**: `W7-M6/dossiers_v3.json`  
| Check | Evidence | Result |
|---|---|---|
| Total verse count | `totals.verses = 6236` | ✅ VERIFIED |
| With transmitted rows | `with_transmitted_rows = 3824` | ✅ CALCULATED |
| Absence declared | `absence_declared = 2412` | ✅ CALCULATED |
| 3824 + 2412 = 6236 | arithmetic | ✅ VERIFIED |
| surah_level_unbound declared | `18` | ✅ DECLARED |
| Sample absent verse 1:1 in strata pool | False | ✅ VERIFIED |
| Sample absent verse 1:2 in strata pool | False | ✅ VERIFIED |
| Sample absent verse 1:3 in strata pool | False | ✅ VERIFIED |
| Sample absent verse 1:4 in strata pool | False | ✅ VERIFIED |
| Sample absent verse 1:5 in strata pool | False | ✅ VERIFIED |

Five sampled absence-declared verses are absent from strata pool ✅. The
absence declaration is honest and matched by the pool.

---

### FINDING 4 — VERIFIED · dossiers_v3 era ordering (prophetic before companion)
**File**: `W7-M6/dossiers_v3.json`  
- 2:255 (Ayat al-Kursi): row 0 = era_stamp "prophetic", row 2 = era_stamp "companion" ✅  
- 55:13 (Ar-Rahman): all 9 rows era_stamp = "companion" (single-era verse,
  ordering trivially correct) ✅  
- Era-ordering law ("oldest stratum speaks first") is implemented; the
  "transmitted_meaning_oldest_first" field name is accurate. CLEAN.

---

### FINDING 5 — VERIFIED · strata_layer M1: internal consistency
**File**: `W7-M1/strata_layer.json`  
| Check | Evidence | Result |
|---|---|---|
| Total rows | `rows: 14961` | ✅ VERIFIED |
| companion rows | `by_era.companion: 8256` | ✅ matches M2 companion_rows |
| prophetic rows | `by_era.prophetic: 2337` | ✅ VERIFIED |
| successor rows | `by_era.successor: 4368` | ✅ matches M3 successor_rows |
| Sum | 8256+2337+4368 = 14961 | ✅ VERIFIED |
| distinct_verses | `3842` | ✅ matches M7 parity dossier_verses |
| verses_with_prophetic | `1085` | ✅ matches V8 standard claim |
| Speaker-detector outcome | 2337 PASS, 1614 DOWNGRADED declared | ✅ DECLARED |

---

### FINDING 6 — VERIFIED · M7 parity_layer: totals consistent
**File**: `W7-M7/parity_layer.json`  
- dossier_verses: 3842  
- sunni-only 2492 + both 803 + shia-only 547 = **3842** ✅ VERIFIED  
- Sample per-verse parity verified against strata pool editions:  
  - 103:2 = "shia-only" — single strata row from edition "nurthaq" (Nur al-Thaqalayn,
    a Shia tafsir) ✅ PLAUSIBLE  
  - 12:2 = "sunni-only" — strata rows from tabari and ibnkathir_ar ✅ PLAUSIBLE  
  - 2:255 = "both" — strata has 3 rows including tusi-sourced content ✅ PLAUSIBLE

---

### FINDING 7 — VERIFIED · M5 sirah_sync 1,378 count re-derives
**File**: `W7-M5/sirah_sync_layer.json`  
- Engine re-run: `python p31_w7_m5.py` → **"1378 surah-name citations across 10 sirah works  SELFTEST GREEN"** ✅ VERIFIED  
- verses_stamped: 6236 ✅ (all Quranic verses get a period stamp)  
- Makki 4613 + Madani 1623 = 6236 ✅ VERIFIED  
- Axis B (sirah citations) declared as candidates only; verse-level joins awaited ✅ CLEAN.

---

### FINDING 8 — VERIFIED · M10 carrier_verdicts: totals consistent
**File**: `W7-M10/carrier_verdicts.json`  
| Check | Evidence | Result |
|---|---|---|
| Total rows | `rows: 14961` | ✅ matches strata total |
| With grading | `with_grading_verbatim: 3895` | ✅ VERIFIED |
| Without | `without: 11066` | ✅ VERIFIED |
| Sum | 3895+11066 = 14961 | ✅ VERIFIED |
| Engine re-run | p31_w7_m3910.py → "3895/14961 rows carry a verbatim grading"  SELFTEST GREEN | ✅ VERIFIED |

**Transparency note (INFO, not FIX-FIRST)**: Several of the most common
"grading_verbatim" strings are isnad chains (e.g., "حدثنا الحسن، قال: أخبرنا عبد
الرزاق..." appears 164 times as a "grading string"). These are transmission-chain
segments, not qualitative Islamic grading terms (حسن/صحيح/ضعيف). The layer's law
says "surfaced VERBATIM" — this is honest about what the pool's grading field
contains. The pool mixes isnad text into the grading field in some editions; the
layer faithfully reports it. Not a layer error, but downstream users should know
that "with_grading_verbatim: 3895" includes both authentic grades and isnad strings.

---

## MECHANICAL-CHECKS TABLE

| Check | Result |
|---|---|
| dossiers_v3 verses == 6236 | ✅ VERIFIED |
| 5 sample absence-declared verses not in strata pool | ✅ VERIFIED |
| 3 filled verses era-ordered oldest-first | ✅ VERIFIED (2:255 prophetic before companion) |
| M2 Ibn Abbas variants count | 3 variants (mission expected 2; 3 found) |
| M2/M3 unmerged declaration present | ❌ NOT PRESENT — LOW severity |
| M7 parity total adds to 3842 | ✅ VERIFIED |
| M7 parity sample plausible (3 of 3 checked) | ✅ PLAUSIBLE |
| M5 1,378 count re-derives | ✅ VERIFIED |
| M10 grading rows: 3895+11066 = 14961 | ✅ VERIFIED |
| strata rows sum by era: 14961 | ✅ VERIFIED |
| Era-ordering violation found | ❌ NONE FOUND |
| Parity misclassification found | ❌ NONE FOUND in sample |

---

*PANEL-P31-WAVEB-STRATA.md · PB3 · 2026-09-04*
