# UTFANSWF v21 — Row 20 ell_A Origin Trace

**Context:** DIAGNOSTIC_NON_GATING. No physics, thresholds, datasets, parameters, or gate verdicts changed.

## ell_A summary

| Quantity | Value |
|---|---:|
| data | 301.471000000 |
| theory | 301.078971200 |
| residual | 0.392028800 |
| fractional shift to match data | 1.302079645e-03 |

## Origin notes

- ell_A/acoustic/theta references were found in the harness or datasets.
- No theta_* node was found in the CMB diagnostic block; ell_A appears to be directly stored or computed elsewhere.
- The ell_A offset is small in fractional terms (<0.2%) but high significance due to tight covariance.

## File references found

| File | Line | Text |
|---|---:|---|
| `datasets\ai_guardrail_benchmark.csv` | 1 | `model,baseline_auc,utfanswf_auc,safety_violations` |
| `datasets\ai_guardrail_benchmark.csv` | 2 | `modelA,0.72,0.81,0` |
| `datasets\assets_missing.json` | 16 | `"ref": "UTFANSWF_rebuild/figs/moduli_landscape.pdf",` |
| `datasets\assets_missing.json` | 18 | `"UTFANSWF_rebuild/figs/moduli_landscape.pdf"` |
| `datasets\assets_missing.json` | 46 | `"ref": "{figs/axion_theta_vs_mass.png",` |
| `datasets\assets_missing.json` | 48 | `"{figs/axion_theta_vs_mass.png"` |
| `datasets\cosmology_provenance.json` | 2 | `"CMB_R_lA_ombh2": {` |
| `datasets\README_templates.txt` | 1 | `These are CSV/JSON templates for UTFANSWF v19 gates.` |
| `datasets\REPORT.md` | 4 | `- Platform: Linux-4.4.0-x86_64-with-glibc2.36` |
| `datasets\row20_results.json` | 23 | `"ell_A": 301.34986259879184,` |
| `datasets\row20_results.json` | 26 | `"Omega_Lambda": 0.6853079584353742` |
| `datasets\row20_results.json` | 31 | `"ell_A",` |
| `datasets\v19_1_generated_assets_manifest.json` | 18 | `"generated_placeholders": [` |
| `datasets\v19_1_generated_assets_manifest.json` | 19 | `"/mnt/data/UTFANSWF_v19_1_unzipped_run1/UTFANSWF_rebuild/figs/moduli_landscape.pdf",` |
| `datasets\v19_1_generated_assets_manifest.json` | 20 | `"/mnt/data/UTFANSWF_v19_1_unzipped_run1/UTFANSWF_rebuild/UTFANSWF_rebuild/figs/moduli_landscape.pdf",` |
| `datasets\v19_1_generated_assets_manifest.json` | 29 | `"/mnt/data/UTFANSWF_v19_1_unzipped_run1/UTFANSWF_rebuild/figs/axion_theta_vs_mass.png",` |
| `datasets\v19_1_generated_assets_manifest.json` | 30 | `"/mnt/data/UTFANSWF_v19_1_unzipped_run1/UTFANSWF_rebuild/UTFANSWF_rebuild/figs/axion_theta_vs_mass.png"` |
| `datasets\CMB\gw_cov.csv` | 2 | `# Example 3x3 covariance; replace with your real one` |
| `datasets\CMB\README_templates.txt` | 1 | `These are CSV/JSON templates for UTFANSWF v19 gates.` |
| `datasets\CMB\sn_cov.csv` | 2 | `# Example 3x3 covariance; replace with your real one` |
| `datasets\UTFANSWF_v19_stresspack\CMB\gw_cov.csv` | 2 | `# Example 3x3 covariance; replace with your real one` |
| `datasets\UTFANSWF_v19_stresspack\CMB\README_templates.txt` | 1 | `These are CSV/JSON templates for UTFANSWF v19 gates.` |
| `datasets\UTFANSWF_v19_stresspack\CMB\sn_cov.csv` | 2 | `# Example 3x3 covariance; replace with your real one` |
| `harness\common.py` | 8 | `for chunk in iter(lambda: f.read(1<<20), b""):` |
| `harness\cosmology_theory.py` | 39 | `invE = lambda zp: 1.0 / _ez(zp, om, orad, ok, w0, wa)` |
| `harness\cosmology_theory.py` | 167 | `# Keep rs available in metadata/debugging only.` |
| `harness\cosmology_theory.py` | 174 | `lA = math.pi * (Dc / rd) * cal_factor` |
| `harness\cosmology_theory.py` | 230 | `"cmb": np.array([R, lA, ombh2], dtype=float),` |
| `harness\gate_row20_cosmology.py` | 33 | `def looks_like_template(pth: str) -> bool:` |
| `harness\gate_row20_cosmology.py` | 42 | `"placeholder",` |
| `harness\gate_row20_cosmology.py` | 43 | `"template",` |
| `harness\gate_row20_cosmology.py` | 101 | `if looks_like_template(data_path) or looks_like_template(theory_path) or (cov_path and looks_like_template(cov_path)):` |
| `harness\gate_row20_cosmology.py` | 108 | `"notes": "Template/placeholder detected.",` |
| `harness\gate_row20_cosmology.py` | 274 | `timestamp = datetime.datetime.now(datetime.UTC).isoformat(timespec="seconds").replace("+00:00", "Z")` |
| `harness\gate_row21_axion.py` | 9 | `# Expect columns: m_ueV, g or similar. We'll infer first numeric columns.` |
| `harness\gate_row21_axion.py` | 25 | `# Interpolate limit onto pred masses; assume exclusion if pred_g >= lim_g at same mass` |
| `harness\gate_row21_axion.py` | 39 | `# Pass rule: at least some fraction remains allowed OR comparisons unavailable (PENDING)` |
| `harness\gate_row22_nz.py` | 10 | `return datetime.datetime.now(datetime.UTC).isoformat(timespec="seconds").replace("+00:00", "Z")` |
| `harness\gate_row22_nz.py` | 52 | `text.replace("\\", r"\textbackslash{}")` |
| `harness\gate_row22_nz.py` | 53 | `.replace("{", r"\{")` |
| `harness\gate_row22_nz.py` | 54 | `.replace("}", r"\}")` |
| `harness\gate_row22_nz.py` | 55 | `.replace("_", r"\_")` |
| `harness\gate_row22_nz.py` | 56 | `.replace("&", r"\&")` |
| `harness\gate_row22_nz.py` | 57 | `.replace("%", r"\%")` |
| `harness\gate_row22_nz.py` | 58 | `.replace("#", r"\#")` |
| `harness\gate_row24_ai.py` | 26 | `required_cols = ["model", "baseline_auc", "utfanswf_auc", "safety_violations"]` |
| `harness\gate_row24_ai.py` | 44 | `total_violations = int(df["safety_violations"].sum())` |
| `harness\gate_row24_ai.py` | 47 | `pass_rule = (mean_auc_gain >= 0.02) and (total_violations == 0)` |
| `harness\gate_row24_ai.py` | 61 | `"total_violations": total_violations,` |
| `harness\gate_row25_stress.py` | 13 | `return datetime.datetime.now(datetime.UTC).isoformat(timespec="seconds").replace("+00:00", "Z")` |

## CMB file samples

### `datasets\cmb_cov.csv`

```text
1: 2.1353750110151375e-05,0.00019029839990393948,-4.546257021883778e-07
2: 0.0001902983999039395,0.007896826818661168,-4.337087985365848e-06
3: -4.5462570218837776e-07,-4.3370879853658465e-06,2.2236260042591032e-08
```

### `datasets\cmb_data.csv`

```text
1: 1.750200
2: 301.471000
3: 0.022360
```

### `datasets\cmb_theory.csv`

```text
1: 1.748427061
2: 301.0789712
3: 0.02235976
```

## theta-derived l_A candidates

No theta-derived candidates found.

## Verdict

origin trace complete; diagnostic only; no physics, thresholds, datasets, parameters, or gate verdicts changed.
