Blog
ProductGuidePhase 253D ReconstructionEngineeringResearchMEP TakeoffS33

Phase 25 — Training Coverage Ladder 3/21; Count CP 0/63, Still Not 80/80

Teraquant Team9 min read
STATUS: COVERAGE_LADDER_PASS. Coverage evaluated 3/21 (ladder target 3 met). Frozen scorer next ladderTarget 5, ladderMet false. Count CP status evaluated, reasonCode null (not IDENTITY_ONLY_NO_GT), 0/63 QA@20. Count detection 1/63. S33 preserved. Live 圖則.pdf residual not credited (liveResidualCredited false). peak80Claim not_evaluated. RSI_CONTINUE. Not Peak 80/80. Not corpus 80–90%. Not NO_PLAN_POLYLINES. Not COVERAGE_PARTIAL.

Numbers are copied from apps/web/data/phase25/coverage-ladder-verify.v1.json (generatedAt 2026-08-20T17:54:17.045Z) and the frozen evaluate.ts scorecard (schemaId rsi.scorecard.v1, generatedAt 2026-08-20T17:54:17.006Z, phase 25, verdict RSI_CONTINUE). The scorecard file apps/web/data/rsi/scorecard.v1.json is absent in this blog worktree; the integers below match the SG copy and that frozen card. Nothing was re-scored for publication. Reconstruct was not re-run.

What Phase 25 asked

Phase 24 earned LIVE_PIPE_GRAPH_PASS on live 圖則.pdf page 2 (21 pipe_run + 8 fittings). The frozen scorer does not count that graph: live IDs are residuals. Coverage was still S33 only (1/21). Count CP was blocked IDENTITY_ONLY_NO_GT (identity-only rows, no gtQty). Phase 25 ran two separate jobs: reconstruct two more training_data PDFs so coverage reaches 3, and pair S33 qty_3d fittings to billed count rows on BQ sheet E so count CP can score.

The estimand is qty_3d (methodVersion rsi_qty_3d_count_cp_v1). Coverage and count CP are never blended into one percent. Opt-in research flags (EVIDENCE_TILED_EXTRACT, VECTOR_GEOMETRY_COUNT) stay off; they are not this 3D path.

Coverage: 3/21 (ladder step 3 met)

A training project counts only when fabricatedGeometry is false, floorKeys.length ≥ 1, and at least one world fitting, valve, pipe_run, or riser exists. Missing projects stay blocked, never 0%. Phase 25 C2 is evaluated ≥ 3. The frozen ladder is [3, 5]; with evaluated = 3 the card prints the next unmet step (5) and ladderMet false. That is not a retune and is not COVERAGE_LADDER_NOT_EARNED.

ProjectStatusFloorsWorld elementsNote
S33 (s33-7d7fadc7)evaluated (preserved)G1 keptscorecard 12training_data/…S33…/圖則.pdf. fabricatedGeometry false. Do not delete G1.
N23 (n23-83c0da00)evaluated (new)G20training_data/…N23…/圖則.pdf. Not live a48e6815-… .
Kwai On (kwai-on-factory-estate-88ab7191)evaluated (new)G19KS28_-_SITE_A_DR-02.pdf. Peak-SOR not loaded.
18 other roster rowsblocked NO_TRAINING_GRAPH0blocked ≠ 0%. Peak montage was not collapsed to G.

Scorecard coverage percent is 14.285714285714285 on 3/21. That is not a product headline. The Peak training slug stays NO_TRAINING_GRAPH. pageIndexAsFloor is false. Assumed storey height 3.15 m stays 假設, never 量度. Default plan scale 1:100 stays 預設 — length from that scale is assumed, not measured.

Count CP: evaluated 0/63 (unblocked, not a win)

Pairing wrote gtQty on drawable billed count rows from S33 BQ 4.2 (For reference only) BQ.xlsx, sheet E 供水及排水系統 (P&D). The scorer reads gtQty, not billedQty. Peak-SOR.xlsx was not loaded for S33, N23, or Kwai. qty_3d was preserved; ground-truth quantities were not copied into qty_3d or vision prompts.

Family BStatusn/NNote
Count CP (QA@20)evaluated0/63reasonCode null. 0/63 is a scored rate, not blocked encoded as 0%.
Count detectionevaluated1/6362 detection misses. Scorecard percent 1.5873015873015872 (Wilson method).
Linked billed drawablepairing63/63identity_only leftover 10 — those rows are not CP.

Denominator did not shrink (scorecard.denominatorShrunk false). First unblock from blocked IDENTITY_ONLY_NO_GT to evaluated N=63 is allowed. Shrinking N to raise percent would have been RSI_DENOMINATOR_SHRANK. IDENTITY_ONLY_NO_GT is not the headline.

Live 圖則.pdf is not training coverage

Scorecard liveGraph.creditedAsTraining is false. The scorer’s residual note still describes the Phase 23 artefact (LIVE_GRAPH_PASS, 8 fittings, 0 pipeRuns). Phase 24’s 21 live pipes are not this card’s coverage numerator. Training N23 is training_data/…N23…/圖則.pdf, not project a48e6815-… / file 65b1bfde-… / persist 643835d1-….

How to reconstruct and pair (without Peak-SOR on S33)

This is a product walkthrough of chips and pairing rules. It is not a claim that the signed-in Peak 3D tab shows these three training meshes. SJ left P4 as BROWSER_NOT_CERTIFIED: no Clerk session, no mesh PNG. Training JSON is not a photograph of a model.

  • Sign in. Open a drawing 3D tab or /projects/…/3d. Rebuild if the model is stale. Amber chips mean 估算 / 假設 / 預設 — estimated floor, assumed 3.15 m height, default 1:100 scale. They never flip to 量度.
  • Training reconstruct targets are on-disk PDFs: S33 圖則.pdf (keep G1), N23 圖則.pdf (training folder, not the live project), and Kwai On KS28_-_SITE_A_DR-02.pdf. Empty geometric takeoff would have printed NO_PLAN_POLYLINES — no demo-grid pipes.
  • Pair S33 count items to billed GT on 4.2 (For reference only) BQ.xlsx sheet E 供水及排水系統. Write pairingStatus linked and finite gtQty. Unmatched 3D stays identity_only. Do not copy GT into qty_3d.
  • Never load Peak-SOR.xlsx for S33, N23, or Kwai On. Peak-SOR is Peak-only. Native S33 BQ sheet E is the count-CP denominator.
  • If plan scale is missing, 1:100 is default. Metres from that scale are assumed length, not measured length. Keep assumed 3.15 m out of measured metres.

What this is not

  • Not Peak P&D 3D Detection / QA@20 ≥ 80%. peak80Claim is not_evaluated. Percents stay unevaluated — not a fabricated 0%.
  • Not corpus 80–90%. Eighteen of twenty-one training projects stay blocked NO_TRAINING_GRAPH. Phase 17 sufficiency remains INSUFFICIENT_CROSS_PROJECT_COVERAGE.
  • Not a count-accuracy win. Count CP 0/63 and detection 1/63 are honest evaluated rates after pairing unblocked the denominator.
  • Not NO_PLAN_POLYLINES and not COVERAGE_PARTIAL. Geometric takeoff was non-empty on the two new plans; both coverage and CP unblock hold, so the gate is COVERAGE_LADDER_PASS for step 3 — not a ladder-5 win.
  • Not a signed-in 3D screenshot. SJ: BROWSER_NOT_CERTIFIED. No files under /blog/phase25/. No fabricated mesh PNG.
  • Not a promote of EVIDENCE_TILED_EXTRACT or VECTOR_GEOMETRY_COUNT.

What happens next

  • Frozen loop verdict is RSI_CONTINUE: ladder step 5 is unmet, and count CP on the non-shrinking N=63 can still move.
  • Do not credit live 圖則.pdf as N23. Do not collapse Peak montage to a single G.
  • Do not headline 80–90% 3D accuracy. Do not treat assumed 1:100 length as measured metres.

Parent live pipe graph: /blog/phase24-live-pipe-graph. First training model (S33 G1): /blog/phase20-first-training-3d-model. Estimated-parameter graph: /blog/phase23-estimated-3d-graph. Field guide: /blog/how-to-use-teraquant.