Wrap ZeroWrap Zero

Methodology

The decision log

Wrap Zero's methodology is internally reviewed and revisable. Decisions are stated with rationale, dated, attributed and published here; challenges are welcome and answered on the record.

Tolmon reviews its own methodology. There is no external reviewer. Every open methodology question is settled by an internal decision, stated with rationale, dated, attributed, and REVISABLE. The platform says "internally reviewed, revisable" and NEVER implies external validation. The honest substitute for a countersignature is a PUBLIC DECISION LOG: every decision, its evidence, its date, its revision history, inspectable by anyone.

Published decisions

A note on the question texts below. Each decision sheet reproduces its reviewer question verbatim, exactly as it was first recorded, before this methodology's governance was settled. Some of those historical questions still speak of an external reviewer or external sign-off. Those references are historical only. The settled governance is the internal-review model stated above: the methodology is reviewed internally, every decision is dated, attributed and revisable, and no step depends on an outside party signing it off. Where a question's original wording mentions an external reviewer or external sign-off, read it as superseded by that internal-review model.

Decision sheet 1 - The textiles boundary

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Reviewer question 18 (choice register #43, W1098), verbatim from the dossier mirror: "Adjudicate: (a) are the default garment fibre splits (for example T-Shirt cotton 60 / polyester 35 / elastane 5) and their sources acceptable as a provisional v1; (b) is 'existing-DEFRA-family-factor-only, fibre split transparency-only until a published per-fibre factor exists' the right admission bar; (c) is the set-dec/props single-class default (refine into a real split per production) the right starting point?" Frozen awaiting this answer: authoring any non-baseline textiles factor generation (a database CHECK, `materials_factor_generations_textiles_boundary_locked`, pins 22.31 and 0.15225; the application guard `textilesBoundaryViolation` and the generation-authoring guard reject any change); promotion of the typical-weight and composition defaults from provisional. Question 18 is the gate the most work waits on.

The options considered

- (A) Remain whole-garment on DEFRA "Clothing" 22.31 kg CO2e/kg (recycled-content 0.15225); fibre splits stay recorded for transparency only. Source: DEFRA/DESNZ published line, transcribed in `calc/materials-factors.ts`; unchanged 2024 to 2026 (WA16 section 3.E: 22310.0 both editions). Licensing: OGL v3.0, clean. Restatement: none - byte-identical to every counted line. Revision cost: nil; the CHECK stays and a later upgrade is a new factor generation, never a rewrite. - (B) Adopt per-fibre factors from ICE, Textile Exchange, WRAP or Higg datasets. UNAVAILABLE: those sources are reference-only under the binding licensing rule - embedding their values is forbidden - and their per-fibre values are fibre-stage-only, understating a whole garment by roughly 6-9x (register #43/#45), so this is a boundary error besides a licensing bar. - (C) Adopt albert's per-fibre factors. UNAVAILABLE: SimaPro-derived and unpublished; the calibration route to them was deliberately retired at W1099 (register #40 supersession) because an unpublishable number cannot be audited. - (D) Defer entirely. Adds nothing over (A): (A) already carries the same revisit trigger and unblocks the frozen composition/typical-weight promotions.

The recommendation

Adopt (A): remain whole-garment on DEFRA 22.31, endorse the cited default splits and the single-class set-dec/props starting point as provisional v1, and keep the CHECK constraint in force. Every alternative is either licence-barred or a 6-9x fibre-stage boundary error, while (A) is the published, conservative, OGL option and the recorded fibre splits mean a future per-fibre upgrade is a data addition, not a rework. Revisit trigger: a published, licence-clean per-fibre factor set with a whole-garment boundary becomes available (register #43's own "what would change it").

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 2 - The DEFRA 2026 vintage adoption policy

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Four questions decide together. q1 (W1054 dossier s6): "Should the counted flight factors be re-pinned to 2025/2026, and how is the equivalence-byte-identical requirement reconciled with a deliberate factor movement?" q2: "Adopt the 2026 [grid] value?" (the code carries the 2025 grid value forward into 2026, so a 2026 activity year is overstated by roughly 26 per cent against the published 2026 edition - composite 0.24517 versus 0.18077, WA16 section 3.B). q12 (register #37): "What is the recompute/backfill policy" for immutable rows on older vintages. q28 (register #52, W1108): "(a) is the vintage model ... the right shape before any 2026 adoption; (b) ... must the vintage also appear on the client-facing framework exports ... before a submission can be filed under a mixed vintage estate; (c) on a corrected re-extraction ... is taking the CURRENT vintage right?" Frozen awaiting these answers: DEFRA 2026 adoption (WA16 waves W-b to W-e), any flight-factor re-pin, the historical recompute policy.

The options considered

- (A) The WA16 posture: adopt DEFRA/DESNZ 2026 (v1.1, published 2026-06-11, pinned workbook SHA-256 b5c4f2f8..., OGL v3.0) through the first-class vintage model W1108 built - per production, preview-then-APPLY, forward-only, sequenced by impact (electricity and aviation first, freight next with the HGV-rename guard, near-flat families last). Historical rows keep their filed vintage forever (q12: no restatement, register #37); a corrected re-extraction takes the current vintage (q28c, W1108's shipped choice); the vintage stamp is extended to the client-facing framework exports before any mixed-vintage estate files (q28b: yes). Evidence: WA16 sizes the moves (long-haul aviation -41.5%, grid composite -34.3%, road freight -13.2%, fuels/materials/waste under 3%, textiles 0%) and measures today's live exposure at a fraction of a percent (TYJ2MJ +0.0005 kg, K2BSBC ~+1.2 kg). Restatement: none - forward-only by construction. Revision cost: low; the vintage machinery is already shipped inoperable. - (B) Global platform cutover to 2026. Rejected: with -41.5% swings a silent cutover moves client headlines without a person choosing it, against the preview-then-apply discipline and the counting contract's halt-on-unexplained-movement rule. - (C) Stay on 2024 indefinitely. Rejected: 2026 is the published current edition; holding 2024 overstates aviation and grid materially and the overstatement is a staleness artefact (2021 COVID load factors), not conservatism.

The recommendation

Adopt (A) in full: it is the published-and-conservative path (every value from the pinned OGL workbook, no headline moves without an audited per-production preview) and it answers q12 and q28 with forward-only immutability, current-vintage on re-extraction, and export stamping before mixed-vintage filing. The equivalence reconciliation for q1 is the W1039/W1098 pattern: the movement is deliberate, previewed, applied all-or-nothing and explained in the wave report, so the equivalence gate's halt rule is satisfied by the explanation, not bypassed. This unfreezes WA16 W-b (authoring the 2026 tables behind the flag) immediately; APPLY per production follows once each preview is reviewed.

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 3 - The spend basis - SIC mapping sign-off and the VAT stance

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q71 (register #111, W1130), verbatim: "the SIC-mapping methodology - which spend category a production purchase maps to - needs external sign-off before any client is told a spend figure is robust; until then the basis label and visible citation state the estimate's nature on every surface." q72 (register #112), verbatim: "should captured amounts be normalised to ex-VAT before the multiplier is applied (and if so how - a recorded per-line net flag from the extractor, or a stated-assumption divisor), or is as-captured the right stance for an estimate rung whose label already says it is an estimate?" Frozen awaiting these answers: any client being told a spend-based figure is robust; the spend rung stays adoption-gated and estimate-labelled throughout.

The options considered

q71, the mapping: - (A) Sign off the nine-entry table as v1, internally reviewed and revisable. Evidence: register #111 - compile-exhaustive over MaterialCategory, a stated rationale per entry (metals to fabricated products 25OTHER, not basic iron and steel; textiles to SIC 13 where SIC 14 carries the identical 2023 multiplier, 0.6928 kg CO2e per GBP; timber cannot distinguish purchased furniture), an unmapped category yields no figure. Values from the pinned Defra/University of Leeds multipliers workbook (SHA-256 f694d0e5..., OGL 3.0 verbatim on its own cover sheet; importer halts unless licence text, no-VAT statement, hash and displayed-equals-stored all pass). Restatement: none - the rung values nothing until a production adopts, previewed. - (B) Remap specific entries (record as the variation). (C) Leave pending - the rung stays built but unadoptable, which helps nobody the label does not already protect. q72, VAT: - (A) As-captured, labelled (status quo, register #112): whether a captured line is net or gross is not recorded, and dividing by an assumed 1.2 would invent a number. - (B) Normalise to ex-VAT via a per-line net/gross flag the extractor records when the document states it - a capture-model extension; adopting it later is a previewed recompute, never a silent restatement. - (C) A stated-assumption 1.2 divisor. Rejected by the standing never-guess contract: a divisor applied to lines whose basis is unrecorded is an invented adjustment.

The recommendation

Sign off q71 option (A) - the mapping is published-sourced, pinned, rationale-stated and revisable, and the internal review is now the named sign-off authority. For q72 keep as-captured with the label (A) and record ex-VAT normalisation as a known limitation with the revisit trigger "the extractor gains a stated per-line net/gross capture" (option B's precondition); the labelled estimate stays honest either way. Neither decision moves a counted value; both let the spend rung become adoptable.

The decision

q71 (SIC mapping): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q72 (VAT stance): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 4 - Department attribution rules and the restatement policy

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q76 (register #119, W1136), verbatim: "two boundary calls need sign-off before the run: (a) a reviewer-EDITED 'other' on an ingested row is indistinguishable in data from the extractor default - is 'other' on an ingested row acceptable as always-machine (current stance), or must the backfill exclude rows whose extraction was human-edited; (b) may marketplace-sourced textiles (AMAZON/AMZ/EBAY) carry the costume attribution the clothing-first retailers carry (current stance, flagged in the rule's rationale), or must marketplace rows stay unattributed?" q70 residue (register #109, W1131): "Who signs off the void, and does a restatement on a production a client can see require client communication first?" (The K2BSBC restatement itself ran at INT8 on the operator's explicit yes; the standing policy remains open.) Frozen awaiting these answers: the attribution backfill (written, dry-run by default, per-row audited, reversible per run id, asserts counted totals unchanged before commit; deferred at INT9 on the operator's explicit choice).

The options considered

q76(a): (i) always-machine (current stance) - conservative eligibility already excludes manual-log rows, voided and test rows; the backfill moves only the department split, never a counted total (the totals assertion aborts on any delta), and is reversible per run id. (ii) Exclude human-edited extractions - only if the audit log can actually identify them; whether it can is unverified at this base, so (ii) is conditional on that check, not assumable. q76(b): (i) marketplace textiles carry the costume attribution (current rule, flagged). (ii) Marketplace rows stay at 'other' - a marketplace vendor name is weak evidence of costume even on a textiles line; attribution by equality-matched vendor is exactly the speculative precision the house posture avoids. q70: (i) operator sign-off for every restatement, with client communication before or with any restatement on a client-visible production. (ii) Operator sign-off, communication case by case.

The recommendation

q76(a): adopt always-machine (i) - the backfill is split-only, totals-guarded and reversible, so the residual risk of re-attributing a human's 'other' is bounded and undoable, and the run report names every row. q76(b): adopt (ii) as a variation from the shipped rule - hold marketplace rows unattributed, revisit trigger "per-vendor evidence that a marketplace account is costume-dedicated". q70: adopt (i) - the operator signs off every restatement and a client-visible production is told before or with the change; this is the posture the public decision log exists to support.

The decision

q76(a) (reviewer-edited 'other'): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q76(b) (marketplace textiles): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q70 (restatement sign-off and client communication): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 5 - The crew average-car cell - diesel-labelled-as-mix versus unknown fuel

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q22 (register #48, W1107), verbatim: "whether crew travel's `drive` mode (and the fuel-receipts mileage-`car` lane, which reuses the same constant) should be repinned onto DEFRA Average car, Unknown fuel (0.16691 / 0.04399, WTW 0.21090), restating future crew-drive and mileage-car counted output. ... the crew split's paired wtt/wtw (0.04146 / 0.21130) cannot be verified from the pinned reference, which carries only the combustion column for cars, so their cell provenance is part of the same question." Frozen awaiting this answer: the repin, held under the standing WA11 no-repin rule (now re-based onto this internal review).

The options considered

- (A) Repin crew `drive` and mileage-`car` onto DEFRA Average car, Unknown fuel (combustion 0.16691, WTT 0.04399, WTW 0.21090), forward-only. Evidence: the pinned `defra2024-keyfactors-reference.json` settles the cells (avg_car_diesel 0.16984, avg_car_petrol 0.16450, unknown-fuel 0.16691, which sits between them); a crew commute's fuel is not knowable, exactly as a delivery's, and delivery already resolves the unknown-fuel cell; W1107's single source of truth and the cell-uniqueness guard make the change one constant, loudly guarded. Counted impact today: nil, measured at W1107 - zero live rows use the lane (0.000000000 per production). Licensing: DEFRA published cell, clean. Restatement: none (forward-only, no live rows). Revision cost: one constant behind a guard. - (B) Keep the diesel cell 0.16984 / WTW 0.21130 with an honest "Average car, diesel" relabel. It is the higher (more conservative) figure, but it prices a fuel-unknown journey at a fuel-specific cell, and its paired WTT/WTW values cannot be verified from the pinned reference - a provenance gap on a counted factor, against the traces-to-a-document bar.

The recommendation

Adopt (A): the unknown-fuel cell is the published cell whose meaning matches the lane's ("average car, fuel not knowable"), delivery already proves the resolution path, and the current pair carries a partly unverifiable provenance that (A) retires. Land it in the same corrective wave as sheet 6 (bus-at-rail), forward-only, with the movement stated in the wave report; today's counted impact is measured nil. Sequencing: if sheet 2 adopts the 2026 vintage first, the repin lands as the 2026 unknown-fuel cell (0.16591, WA16 section 3.D) through the vintage flow instead of a 2024 constant swap.

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable) Execution checkpointed: recompute ships as a FULL-tier wave with preview and Sacha's explicit yes before any live figure moves.

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 6 - Crew bus journeys costed at the national-rail cell

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Unlanded - no register number exists for this yet; the follow-up wave allocates one from the then-current tail when recording the settlement. The finding, verbatim from the W1117 report (section W1117-SIBLINGS, item 3): "`bus` is costed at the rail factor, on both paths. TRANSIT_MODES includes `"bus"`, so `fallbackFactorForMode` returns `EMISSION_FACTORS_KG_PER_KM.transit` (`0.04443`, national rail) - while a `EMISSION_FACTORS_KG_PER_KM.bus` constant (`0.13495`) exists and is used by the fuel-receipts lane. ... It is roughly a 3x understatement of a bus journey against the project's own bus constant." Register #96 (W1125) left it open by name: "The open bus-vs-rail costing question is untouched by this wave"; q59 (register #85) lists it among "the declared sibling never-guess defects ... to be closed in their own waves". Frozen awaiting this answer: nothing structurally; the mode-to-cell selection for crew bus journeys.

The options considered

- (A) Cost crew `bus` at the platform's own bus cell, 0.13495 kg/km WTW (DEFRA 2024 average local bus: combustion 0.10846 + WTT 0.02649, per the constants and comments in `crew-travel/emission-factors.ts`, already applied by the fuel-receipts lane), forward-only, in both the TypeScript set and the SQL IN-list so the two vocabularies stay one artefact. Evidence: the cell is published, licence-clean, and already cited in the code; live exposure is nil (`crew_transport_journeys` is empty in production, W1117; crew-travel's `bus` mode is dormant, register #96). Restatement: none. - (B) Keep `bus` in the transit set at the rail cell 0.04443. A roughly 3x understatement against the platform's own published bus cell - neither conservative nor defensible once recorded. - (C) Make `bus` unresolvable (null, surfaced for review). Unnecessary: null-not-zero exists for inputs with no published cell; bus has one.

The recommendation

Adopt (A): a published cell the platform already carries beats both the known 3x understatement and an unnecessary null, and with zero live rows the change is forward-only with nil restatement. Land it in the same corrective wave as sheet 5, with the settlement recorded under a newly allocated register number. Sequencing: if sheet 2 adopts the 2026 vintage first, the bus cell lands at its 2026 value (combustion 0.10151, WA16 section 3.D) through the vintage flow.

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable) Execution checkpointed: recompute ships as a FULL-tier wave with preview and Sacha's explicit yes before any live figure moves.

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 7 - The two diesel boundaries - combustion-only versus well-to-wheel

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q11 (register #36), verbatim from the dossier: "The same litre of diesel is counted on two boundaries: fuel-receipts count combustion-only (2.51279 kg/litre) while energy/generator counts well-to-wheel (3.1238 kg/litre), about 20% apart. Which boundary should both diesel paths harmonise onto, and how is a harmonisation reconciled with the equivalence-byte-identical requirement?" Frozen awaiting this answer: the harmonisation direction; also the condition under which fuel attribution (q17, sheet 12) stops being CO2e-neutral (register #42 names q11 as exactly that trigger).

The options considered

- (A) Harmonise both paths onto well-to-wheel 3.1238 kg/litre (combustion 2.51279 + WTT 0.61101, both DEFRA published components, W1054 dossier section 2.2). Fuel-receipt diesel moves up roughly 24%; the upstream (WTT) component lands in its own scope bucket through the existing scope machinery. Conservative (counts the full published chain), consistent with the energy/genset lane and with the crew per-km factors, which are already WTW. Restatement: forward-only via a previewed change; existing rows keep their calculation-time factor (register #37). - (B) Harmonise both onto combustion-only. Rejected: drops a published upstream component the platform already counts elsewhere; energy/genset would move down roughly 20% and the crew WTW factors would sit inconsistently beside it. - (C) Keep both, as a stated known limitation: each lane's boundary is documented (the fuel-receipts lane is a Scope 1 direct-combustion lane; the energy lane counts WTW), and the Methodology page states the difference. Zero movement, zero cost, but the same litre keeps two prices depending on which tool read the receipt.

The recommendation

Adopt (A), forward-only and previewed per production, in its own equivalence- sensitive wave: WTW is the published, conservative, internally consistent boundary, and the equivalence reconciliation is the same as sheet 2's - a deliberate, previewed, explained movement satisfies the halt rule rather than bypassing it. Until that wave lands, (C)'s documentation stands as the interim truth. Note the knock-on recorded in register #42: once generator fuel re-costs differently from vehicle fuel, attribution stops being CO2e-neutral and sheet 12's default must be re-confirmed per line with the movement reported.

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable) Execution checkpointed: recompute ships as a FULL-tier wave with preview and Sacha's explicit yes before any live figure moves.

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 8 - Materials valuation - estimation, guardrails, generations, chains

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Five open questions on the materials valuation mechanism, each anchored: q14 (register #39, W1078) - the typical-weight table's sources and defaults, estimation over the spend fallback, and refund netting; q19 (register #44, W1098) - override guardrails and the mass range band; q20 (register #45, W1102) - the factor-generation model and its boundary lock as the admission bar; q21 (register #46, W1104) - derivation performed at capture; q69 (register #106, W1129) - whether capture-time lines need a structural platform-assumption version stamp. (q13 is recorded superseded by q14; q15 was closed at W1099 - both recorded, no decision needed.) Frozen awaiting these answers: promotion of the typical-weight table and mass bands from provisional (also gated by sheet 1).

The options considered and recommendations

- q14: adopt the WRAP-informed typical-weight estimation as provisional v1 - the estimate supplies only kilograms to the existing DEFRA factor, provenance travels in `weight_basis`, refunds net negatively; a per-item measured mass always beats the estimate (that is the standing revisit trigger). The rejected spend fallback now exists separately as the adoption-gated bottom rung (sheet 3), so the ladder covers the gap either way. - q19: role-gating plus validated, version-stamped, audited overrides with a counted-delta preview are sufficient guardrails at the current operator scale; the low/typical/high band is acceptable as a documented default. Revisit trigger: evidence of override misuse, or a client submission programme that demands a second approver. - q20: endorse the generation model (immutable platform generations, generation 0 implicit baseline, per-production audited adoption) and the textiles boundary lock as the admission bar - the lock's fate is sheet 1's decision, referenced here, not re-decided. - q21: endorse capture-time derivation - byte-identical by construction, guarded to 9dp, and it made the published methodology description true of the write path. - q69: accept note-plus-time-correlation as meeting the audit standard for now; record a structural version stamp as a forward-only capture-model improvement for a future wave (a column addition, cheap, no backfill).

The decision

q14 (typical-weight estimation v1): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q19 (override guardrails and band): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q20 (generation model and admission bar): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q21 (capture-time derivation): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q69 (assumption version stamp): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 9 - Flights - partial bookings and the return-trip divergence

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q33 (register #57, W1112), verbatim: "the booking total is all-or-nothing - one unreadable airport in a twelve-leg itinerary nulls the whole booking, which is honest but coarse, and a client may prefer a counted partial with a stated exclusion. Whether a part-resolved booking should count its resolved legs and carry an explicit 'legs not counted' figure into the export, rather than counting nothing, is open." q34 (register #58, W1112), verbatim: "Wrap Zero now doubles a return fare itself AND still sends albert a `Return Trip = true` cell for albert to double independently. The two figures are produced under different methodologies and are not reconciled anywhere; whether the albert cell should be suppressed when Wrap Zero has already expanded the legs, or whether the divergence is correct because albert owns its own factors, is open." Frozen awaiting these answers: nothing structurally; live counted flight exposure was zero at W1112.

The options considered and recommendations

- q33: (i) keep all-or-nothing null (status quo) - the booking surfaces for review and counts nothing until every leg resolves; (ii) count resolved legs with an explicit "legs not counted" marker in the export. Recommend (i): a partial total that reads as complete is the exact defect class W1112 closed, `resolvedCo2eKg` is already shown under a name no caller can mistake for the total, and with zero live flight lines the coarseness costs nothing today. Revisit trigger: a client estate with materially part-resolved itineraries. - q34: (i) keep sending albert the Return Trip cell (status quo); (ii) suppress it when legs are expanded. Recommend (i): the cell is activity data and it is true of the journey; suppressing it would misdescribe the booking to albert to force agreement between two frameworks the platform explicitly does not reconcile (the product makes no claim of parity, and albert applies its own factors after upload). Document the divergence on the Methodology page.

The decision

q33 (partial bookings): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q34 (return-trip cell): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 10 - Factor-cell resolution - genset constant, internal factors, census gaps

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q8 (register #22; dossier s6): endorse the genset kWh-to-litres constant (0.3 L/kWh at well-to-wheel diesel, roughly 0.937 kg/kWh, labelled "pending climate-advisor confirmation") and the WTW basis. q9 (dossier s6): are the internal provisional factors (catering occasion per-cover; equipment per-day) acceptable as interim, "or must they be replaced before external reporting?" q57 (W1115): "Should the platform adopt a single canonical DEFRA cell-coordinate vocabulary so every lane's citation is comparable...?" q58 (W1115): "Should DB-seeded factor tables expose a canonical in-code or fixture census so coverage does not depend on regex-parsing migration SQL?" q75 (register #116, W1135): fuel-receipt factors are described as "Provisional v1 pending verification" on the Methodology page yet absent from PROVISIONAL_TOOLS - "are these factors now verified against DEFRA 2024 / ADEME v23 (retire the limitation note), or provisional (extend the marking)?"

The options considered and recommendations

- q8: endorse the constant as a documented internal assumption with the WTW basis - it exists to avoid a roughly 70% undercount on electrically metered gensets, and the honest alternative (null) would count nothing for real burn. Revisit trigger: provider genset efficiency data or a per-fuel genset curve (register #22's own). - q9: acceptable as interim ONLY under the existing containment - marked provisional in the product, named as internal on the Methodology page, held out of the Carbon'Clap export. Revisit trigger: a licence-clean published per-cover or per-day source is identified; replacement is then a previewed, forward-only change. - q57: adopt the canonical cell-coordinate vocabulary as an engineering follow-on - it closes the same-cell-different-slug gap the census itself disclosed, moves no value, and makes every future citation comparable. - q58: adopt - an in-code fixture census for DB-seeded factor tables replaces regex-parsing migration SQL, same follow-on wave as q57. - q75: the W1054 dossier's own verification (section 2.1) records the fuel/energy family as matching published DEFRA 2024, so retire the "Provisional v1" note for the DEFRA-sourced fuel factors in a deliberate copy wave, while the ADEME v23 inputs stay marked pending verification. Either way the page and the marking mechanism must agree - that is the actual defect q75 surfaced.

The decision

q8 (genset constant): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q9 (internal provisional factors): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q57 (canonical cell vocabulary): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q58 (in-code census for DB-seeded factors): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q75 (fuel-receipts provisional marking): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 11 - The predicted plane - EPA spend factors and the fixed exchange rate

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q5 (dossier s6), verbatim: "energy = 0.55 kg/USD is not traceable to EPA v1.2 (electricity is excluded from the NAICS-6 file) and travel = 0.35 sits below both EPA air (0.976) and ground (0.499) components. Endorse these proxies, or re-base (and adopt v1.3/v1.4)?" q10 (dossier s6), verbatim: "Fixed `GBP_USD_RATE = 1.27` restates 2021-USD EPA factors (2021 average was 1.376). Immaterial for planning, but confirm the dollar-year mixing is acceptable pending phase 2." Frozen awaiting these answers: nothing - the predicted and committed planes are hard-isolated from counted figures and structurally prevented from presenting as actuals (W1054 dossier section 7); these are planning-quality questions only.

The options considered and recommendations

- q5: (i) keep the proxies, provisional-labelled (status quo); (ii) re-base onto EPA Supply-Chain GHG v1.4 (October 2025 release, 2024 USD), replacing the two untraceable proxies with documented component mappings. Recommend (ii) as a planned low-priority wave: the plane is isolated so nothing counted moves, but two factors that cannot be traced to their claimed source fail the pack's own evidence bar and v1.4 is the published successor; until that wave, the provisional labels stand. (EPA publications are US federal material; embedding is licence-clean.) - q10: accept the fixed 1.27 restatement as documented for the provisional plane, and fold the FX-year question into the same v1.4 re-base (matching-year FX chosen and documented there). A live FX feed stays rejected - determinism and reproducibility outrank currency precision on a planning estimate.

The decision

q5 (EPA proxies / re-base): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q10 (fixed FX on the provisional plane): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 12 - Fuel that cannot be attributed - vehicle, generator, or unattributed

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q17 (register #42, W1100), verbatim: "how should fuel that the document and the supplier map cannot attribute be treated - held in review indefinitely, or counted on the status-quo transport/Vehicles basis while surfaced (the current choice, byte-identical), pending a documented per-production or platform default?" And, from the dossier mirror: "is keeping generator fuel on the same `fuel_factors` WTW factor (rather than re-costing through the energy-factors genset path) the right basis, given the open diesel-boundary harmonisation (question 11)?" Frozen awaiting this answer: a documented default for unattributable fuel.

The options considered

- (A) Count unattributed fuel on the status-quo transport/Vehicles basis while surfaced for review (current choice). Evidence: attribution is CO2e-neutral by construction (register #42) - a generator-attributed receipt keeps the identical `fuel_factors` WTW figure, so the classification changes only the albert destination, never the stored kg; counting while surfacing therefore loses nothing and keeps the litres in the headline. - (B) Hold unattributed fuel uncounted until a human answers. Rejected while attribution is CO2e-neutral: the factor is identical either way, so holding subtracts real, documented emissions from the headline over a destination question, which is less honest than counting and surfacing. - On the factor basis: keeping generator fuel on the shared WTW factor is the one-writer-lane answer today; re-costing through a genset-specific path is exactly the q11/sheet 7 harmonisation question and is decided there, not here.

The recommendation

Adopt (A) and record it as the documented platform default the register entry asked for; the review surface keeps every unattributed line visible with one-click, audited assignment. Keep generator fuel on the shared WTW factor pending sheet 7. Standing condition, from register #42 itself: if sheet 7 ever re-costs generator fuel distinctly, attribution stops being CO2e-neutral, and this default must be re-confirmed with per-line movement reported before it continues to apply.

The decision

- [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 13 - Counting stances - unproven budget, soft-delete, null exports, mode refusal

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q35 (register #59, W1112): should every lane-owning wave supply a null-not-zero probe, and should the unproven budget (five of thirteen lanes) be driven to zero on a schedule? q46 (register #70, W1114): "whether soft-delete should be a counting predicate or a display predicate has never been adjudicated." q59 (register #85, W1119): should the shared journey resolver be null-honest (since actioned by W1125), and should the declared sibling never-guess defects be closed in their own waves? q64 (register #93, WA23): "when a confirmed row's stored co2e is NULL, should an export recompute the figure from activity data at export time ... or hold the counting stance and export the row factor-less flagged for review (headline and workbook always agree)?" q65 (register #96, W1125): "Is exclusion-with-reason the final client-facing stance, or should such rows also present a clearly-labelled provisional over-estimate band ... until the mode is resolved?"

The options considered and recommendations

- q35: require a probe whenever a wave next touches an unproven lane (the ratchet stays exact, conversions lower the budget deliberately); no calendar schedule - an invented deadline adds pressure without evidence. W1117 proved the sharper rule worth adopting alongside: a stance about counting needs a probe that reaches the counted column, or it says unproven. - q46: adopt soft-delete as a counting predicate (the current repaired behaviour): a deleted production's rows must not count into any live figure, and a restored production regains its history when the flag clears - state that consequence in the counting invariants doc. - q59: endorse W1125's null-honest resolver (actioned); the two remaining siblings get their own waves - the bus cell is sheet 6, and crew-travel's `computeCo2e` returning 0 for an unresolved factor is a standing never-guess violation to close next. - q64: hold the counting stance everywhere - a confirmed row with null co2e exports factor-less and flagged, never recomputed at export time, so headline and workbook always agree (catering's P512 fix becomes the uniform rule; the four recomputing export families are brought into line in a deliberate wave before the first such row exists). - q65: exclusion-with-reason is the final stance; a labelled provisional upper bound is still an invented figure and never-guess is the platform's oldest rule.

The decision

q35 (probe obligation and budget): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q46 (soft-delete as counting predicate): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q59 (resolver endorsement and siblings): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q64 (null-co2e export stance): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q65 (exclusion-with-reason): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 14 - GHG scopes and framework mappings - placements, divergences, readiness

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q3 (dossier s6): adjudicate the scope placements (fuel receipts Scope 1; accommodation 3.6; equipment 3.1 not 3.2; "other" energy defaulting to Scope 1). q4: is location-based-only Scope 2 sufficient, or is a market-based or dual disclosure required? q6: confirm the albert CSV filing of equipment/post-production under "Materials"/"Energy" matches current albert methodology and the coarse-map divergence is deliberate. q7: is the DEFRA-inside-Carbon'Clap freight treatment versus the waste hold-out acceptable? q16 (register #41, W1093): tracker-vocabulary-as-source-of- truth, the dimensions-basis mass, and the one-way air freight "Return Trip = No" default. q31 (register #55, W1109): per-line readiness verdicts with a named actor, and whether readiness becomes a cross-tool obligation. q32 (register #56, W1109): application-enforced pin admissibility, and whether a route pin needs a stated reason and version history.

The options considered and recommendations

- q3: endorse the placements as documented - all nine judgement calls are published verbatim in `SCOPE_METHODOLOGY_CHOICES` with their reversal conditions (owned fleet, purchased equipment, in-house post), which is the revisable form this review exists to sign. - q4: keep location-based only as a stated known limitation - the platform captures no supplier-contract evidence, and a market-based figure without it would be invented. Revisit trigger: a client supplies supplier-specific contract evidence or a target framework demands dual reporting. - q6: do not settle from memory - the follow-up wave verifies the filing against the pinned tracker's own sheet structure (the workbook is the authority), then records the divergence as deliberate or realigns the coarse map labels. Deciding this sheet means commissioning that check, not asserting the answer. - q7: keep the asymmetry with its stated reason (no ADEME film freight factors exist; waste is held out for exactly the same mismatch); revisit trigger: ADEME publishes them (register #29's own condition). - q16: endorse all three limbs - SHA-pinned drift-guarded vocabulary, the dimensions-basis mass (stated inputs through the workbook's own embedded, cited conversion), and the documented one-way "Return Trip = No" default surfaced in the manifest. - q31: endorse readiness verdicts including the honest "nobody yet"; adopt cross-tool readiness as a standing obligation for future waves, each tool pinned to its own export writer by an agreement test as materials is. - q32: accept application-enforced admissibility (the database cannot express a free-text classification, and the shape/timestamp constraints it can express are in place); require a stated reason on a route pin in a small wave, aligning with composition overrides; audit-log history is sufficient - no first-class versions.

The decision

q3 (scope placements): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q4 (location-based only): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q6 (albert category divergence - commission the check): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q7 (Carbon'Clap asymmetry): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q16 (tracker vocabulary, dimensions mass, return default): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q31 (readiness contract and cross-tool obligation): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q32 (pin admissibility, reason, history): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 16 - Governance, controls and evidence - guards, citations, incident disclosure

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

q42 (register #67, W1113): should the licence allow-list guard acquire a runtime or CI caller, and should licence basis be provenance-derived rather than a hand-authored string? q43 (register #67): should the superseded, unsourced ~4x aluminium figure be struck from the register or retained as labelled unsourced history? q45 (register #69, W1116; actioned by W1126): endorse or reverse the promotion of the two proven SQL checks to blocking, now that branch protection exists. q47 (register #71, W1114): generalise the statement-level reader registry per table, and audit whole-file substring pins for vacuity? q50 (register #74, WA20): disclose the 18-19 July audit-trail gap as a standing note or a dated incident entry? q51 (register #75, WA20): should `logAudit`'s best-effort path return a failure signal so callers can record that a record was lost?

The options considered and recommendations

- q42: give the guard a CI caller (cheap, makes the enforcement claim true outside the test lane); keep licence basis as a string plus the SHA-pinned re-read, which is the control that actually closes the mislabelling hole - full provenance derivation is recorded as a nice-to-have, not required. - q43: retain as labelled unsourced history (the current choice) - striking history is how a fabricated citation happens twice; an unsourced-but-corrected trail is the honest audit shape. - q45: endorse W1126 - protection enabled with the operator's explicit approval, both proven checks promoted, the demotion pinned by test; the question's second half ("does promotion mean anything without protection") was answered by building the protection. - q47: generalise opportunistically - each wave that touches a counted table's readers brings that table into the stance-registry pattern (W1132 already covers four more), and audits any whole-file substring pin it passes; no big-bang sweep. - q50: dated incident entry - the WD1 dossier already carries it dated (section 4.1), and a dated entry with a stated cause ages more honestly than a standing note. - q51: adopt - the best-effort path returns a failure signal so a caller can at least record the loss; an engineering wave, roughly 397 call sites reached through one helper.

The decision

q42 (licence guard caller): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q43 (unsourced history retained): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q45 (blocking checks endorsement): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q47 (reader-stance generalisation): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q50 (incident disclosure form): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q51 (audit-write failure signal): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 17 - Operations - capacity ledger, alerting, backup and recovery

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

None of these touches a counted CO2e figure; they are operational honesty and resilience questions. q48 (register #72, WA20) and q52 (register #76, WA20-2, independent corroboration): should the allowance gate read priced actuals instead of the tier-blind token ledger, and should the ledger be reconciled against the provider's billed usage with pounds figures blocked until it is? q49 (register #73, WA20): should never-reconciled reservations be swept, and what is the acceptable maximum age? q60 (register #86, W1123): whether and how to restate the historical ledger divergence. q61 (register #88, W1123): should unrecoverable orphan debits net to zero or stay flagged permanent-estimates? q62 (register #90, W1122): is at-least-once alert delivery the right stance? q53 (register #77, WA19): what recovery guarantee (RPO/RTO) is committed to clients, on what evidence? q54 (register #78, WA19): is single-vendor, single-copy storage of the source-document evidence base an accepted risk?

The options considered and recommendations

- q48+q52 (decided together): adopt priced actuals as the gate's basis (the velocity brakes already read them), reconcile against billed usage on a schedule, and keep any pounds figure derived from the token ledger off every surface until reconciliation runs - both audits' own bar, and the honest labelling rule already in force. - q49: endorse the W1123 sweeper as the mechanism (grace-aged, Sentry-visible); the maximum age is the grace age configured in code, revised there if wrong - no second policy number invented here. - q60: restate the historical ledger by a documented one-off operational correction at the operator's convenience - it is bookkeeping, not counted history, and the stored actuals make it reproducible. - q61: keep flagged permanent-estimates (the sweeper never guesses an outcome it cannot prove); netting to zero would be an invented recovery. - q62: endorse at-least-once - a duplicate alert is cheap, a black hole during an outage is not, and the late copy names its original raise time. - q53: commit to NOTHING client-facing until the off-site dump is scheduled, run, and a restore test has passed; the honest current answer is "detection exists, recovery is unverified" and the ops wave that changes that is the highest-priority non-counting work in this pack. - q54: not an accepted risk - build the independent second copy (mirror) of source-document bytes before more clients onboard; the evidence base is irreplaceable by definition and detection-without-recovery only converts a silent loss into a witnessed one.

The decision

q48+q52 (priced actuals and reconciliation): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q49 (reservation sweep and age): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q60 (historical ledger restatement): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q61 (orphan debits): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q62 (at-least-once alerting): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q53 (recovery commitment): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q54 (evidence mirror): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 18 - Harness and deployment engineering

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Engineering questions with no counted-value component. q44 (register #68, W1118): make the counted week-bucketing zone-independent at the query layer, rather than depending on every cluster being pinned UTC? q55 (register #79, W1120): serve the pinned workbook templates from durable object storage with the byte pin verified against the stored object, removing the file-tracing dependency? q56 (register #81, W1121): are the real-extraction large smokes and the skip-to-review (not re-route) send guard the right trade-offs? q63 (register #91-92, W1124): adopt a standing rule that every runtime file read outside dependencies carries an explicit tracing include plus a build-output assertion at introduction? q73 (register #113, W1134): confirm no automation outside the repository still relies on the old bare `gate:down` form. q74 (register #114, W1134): may the teardown ownership ledger live under a dependency cache directory a clean reinstall wipes?

The options considered and recommendations

- q44: adopt the durable fix - zone-independent week-bucketing at the query layer, so a non-UTC server cannot move a bucket at all; the W1118 pin remains as defence-in-depth. W1118's own words: the wave bought the guard, not the immunity. - q55: adopt as a follow-on - durable object storage with the byte pin verified against the stored object removes the tracing fragility class entirely; until then the W1120/W1124 build-output guards stand. - q56: endorse both trade-offs - a bounded real extraction is what makes the canary assert the thing clients need (a read, not a write), and skip-to-review keeps the send path honest instead of coupling it to a finer sniff. - q63: adopt the standing rule - two of three declarations in the class were artefacts of undeclared implicit tracing; the rule makes the next runtime asset declare itself at introduction. - q73: an operator confirmation item, not a code decision - the decision line is ticked once shell history and any scheduled cleanup are checked for the bare form. - q74: move the ledger to a reinstall-proof location in a small wave - an ownership authority that `npm ci` wipes orphans live records by design, which the register entry itself flags.

The decision

q44 (zone-independent bucketing): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q55 (templates from object storage): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q56 (smoke and send-guard trade-offs): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q63 (tracing standing rule): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q73 (bare teardown confirmation): - [x] adopted as recommended (confirmed checked) - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ q74 (ledger location): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Decision sheet 19 - Unlanded audit proposals - land, decide, or record as subsumed

Status: decided - decided by Sacha Kovac, 2026-07-23

The question

Two audits proposed reviewer questions in report form only; the register (the numbering authority) never received them, so the numbers 23-27 are consumed but unlanded, and WA18's proposals in the 36-38 band became gaps after W1112 landed 33-35. Each item below needs one of: land it (the follow-up wave allocates a fresh number from the then-current tail) and decide it, or record it as subsumed. Sources: `audit-reports/2026-07-21-wa17-derivation-chains.md` section 6; `audit-reports/2026-07-21-wa18-claimed-controls.md` section 6.

The options considered and recommendations

- WA17 q23 (unresolved flight leg counted as zero): record as SUBSUMED - W1112 landed the fix and its residue is landed q33 (sheet 9). No landing needed. - WA17 q24 (haul-band 3700 km boundary; non-UK-to-non-UK on UK-derived bands; undisclosed): land and decide - keep the distance basis (deterministic from stated airports; the DEFRA condensed set is distance-banded; WA16 records DEFRA publishes no fixed cutoff) and disclose the boundary on the Methodology page. - WA17 q25 (charter/private at long-haul business, helicopter at domestic average; RF magnitude undisclosed): land and decide - keep the proxies marked provisional with their industry-convention citation stated, and disclose the radiative-forcing magnitude (the DEFRA with-RF convention, roughly 1.7x on the CO2 component) on the Methodology page. - WA17 q26 (raw great-circle distance, no routing uplift): land and DEFER with a stated evidence task - WA16 notes an 8 per cent great-circle uplift inside DEFRA's aviation method, so whether the published factors already embed routing must be read from the pinned 2026 methodology report's aviation section before any uplift decision; deciding without that read would be the invention this pack forbids. - WA17 q27 (default-to-petrol fill on fuel-unknown receipts; two taxi WTT values): land and decide - surface the missing fuel rather than defaulting (never-guess, matching the unattributed-fuel and unknown-mode stances), and reconcile the taxi WTT onto the sourced DEFRA cell (0.05176; the derived 0.05079 retires), noting the W1115 census already confirmed the combustion cell agrees across lanes. - WA18 proposal 36 (dedup-on-content-hash binds only hash-carrying rows; manual and legacy rows outside it): land and decide - state the limit in the dossier and on the Methodology page; the invariant's honest scope is part of the public decision log's job. - WA18 proposal 37 (down migrations asserted by substring, never executed): land and decide - add an executable up-down-up pass to the ephemeral integration gate as an engineering follow-on, retiring the substring assertion.

The decision

WA17 q23 (record subsumed): - [x] adopted as recommended - [ ] adopted with variation: ____ WA17 q24 (haul band): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ WA17 q25 (proxies and RF disclosure): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ WA17 q26 (routing uplift - evidence task): - [ ] adopted as recommended - [ ] adopted with variation: ____ - [x] deferred, revisit trigger: the pinned 2026 methodology report's aviation section is read to determine whether the published aviation factors already embed a routing uplift, before any uplift decision WA17 q27 (petrol default and taxi WTT): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ WA18 p36 (dedup scope disclosure): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ WA18 p37 (executable down-migration proof): - [x] adopted as recommended - [ ] adopted with variation: ____ - [ ] deferred, revisit trigger: ____ Decided by: Sacha Kovac Date: 2026-07-23 (internal methodology review v1, revisable)

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted.

Design decisions

These are design-stage methodology decisions taken in the internal methodology review. Each one is dated, attributed and revisable, under the same standing model as the published decisions above, and is recorded on the methodology register with its own settlement line.

Design sheet W1151-A - Org comparison intensity metrics - definitions and denominator repair

Status: decided - decided by Sacha Kovac, 2026-07-24 (internal methodology review, revisable) - reviewer question q82, methodology register #143

The question

The org comparative view needs per-shoot-day, per-hour-of-content and per-budget-band comparisons. A methodology-versioned pure core already defines tCO2e per shoot day, per production day, per GBP 1m and per runtime minute (`src/lib/intensity/metrics.ts`, numerator = `getToolCo2eTotals`, null when a denominator is missing), but its denominator read names two columns that do not exist (`finished_runtime_minutes`, `budget_gbp` - `read.ts:96-104`), and no numeric budget field exists anywhere. Adjudicate: (a) are the existing core definitions the org-comparison metrics, with per-hour-of-content displayed as the per-runtime-minute ratio times 60; (b) is the denominator repair reader-side (point the read at the real `runtime_minutes` column - code-only, no schema change) rather than schema-side; (c) is budget comparison BAND-COHORT ONLY (no numeric budget captured, comparisons grouped by the 6 bands) for v1; (d) is the missing-denominator posture "shown as not comparable, never ranked, never guessed"?

The options considered

- (A) Adopt the existing core as-is: the four ratios stand; per-hour is a display transform (x60) of per-runtime-minute; reader-side repair to `runtime_minutes`; budget stays band-cohort (no new numeric capture); a production missing a denominator appears unranked with the reason named. Evidence: the core is already methodology-versioned (wz-2026.1), null-not-zero throughout, numerator on the canonical counted reader; W992 pinned film's four denominators; the ratios are display-only so the repair moves NO counted figure. Restatement cost: nil (all ratios are null live - 2.9 - so no displayed figure changes). - (B) As (A) plus capture a numeric `budget_gbp` column for a true per-sterling ratio. Adds sensitive financial capture (masking questions: band cohorts were chosen for the cross-org engine specifically to avoid raw budgets), a new column, and WA22 already flags budget recoverable from intensity ratios as an indirect leak. Deferrable without loss: band cohorts serve v1 comparison. - (C) Define new org-specific metrics apart from the core. Rejected on its face: two definitions of intensity is two truths; the core exists, is versioned, and is already what the production-side panel shows. - (D) Defer all metrics. Rejected: the org home (phase B) can ship without ratios, but phase C is gated on THIS decision either way; deferral just moves the same question later.

The recommendation

Adopt (A). It is the only option that adds zero new capture, zero counted movement and zero second truths; (B) remains available later behind its own decision if band cohorts prove too coarse. Revisit trigger: an org with populated numeric budgets asks for per-sterling ranking, or the cross-org engine's band posture changes.

The decision

Settled by internal methodology review, Sacha Kovac, 2026-07-24, revisable, decision sheet W1151-A.

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted. Full decision sheet: docs/design/org-experience-v1.md section 4.

Design sheet W1151-B - Within-org cohorts - derivation, floors and fairness

Status: decided - decided by Sacha Kovac, 2026-07-24 (internal methodology review, revisable) - reviewer question q83, methodology register #144

The question

Cohort views (scripted vs non-scripted, format) and cross-production department comparison inside one organisation are comparisons between named productions the org's members can already see individually (P539). Adjudicate: (a) is scripted/non-scripted DERIVED from `production_type` via a pinned, compile-exhaustive mapping (scripted: feature_film, high_end_tv, tv_drama, comedy, soap_continuing_drama, childrens, animation, short_film; non-scripted: documentary, factual_entertainment, commercial; other: unclassified and shown as such) rather than stored as a new column; (b) same for format (film / TV / commercial / other from `production_type` x `vertical`); (c) within-org cohorts carry NO anonymity floor (members see the productions anyway) but an empty-or-single cohort renders "no comparison available" rather than a one-production "cohort"; (d) department comparison across productions compares only departments both productions actually captured, with absent departments named as not-captured rather than zero (null-not-zero extended to comparison display); (e) the cross-org k-anonymised engine (floor 5, bands only) remains the ONLY cross-org read, untouched?

The options considered

- (A) All five as stated: derived mappings pinned to the taxonomy (a new type slug is a compile error until mapped - the W1112 discipline), no stored duplicate of derivable state, no within-org floor but honest empty states, not-captured never rendered as zero, cross-org engine untouched. Evidence: the taxonomy CHECK is the schema authority (2.6); every mapping is one constant with an exhaustiveness assertion; null-not-zero is the standing counting contract extended to display. - (B) Store `scripted BOOLEAN` and `format TEXT` as columns instead of deriving. Adds capture UI and drift risk (a stored flag can contradict its type); justified only if productions genuinely defy the mapping - no evidence today (live data: every production_type is NULL; nothing to defy yet). - (C) Apply a k-floor within the org as well. Rejected: it protects nothing (the member sees each production's own page) and would blank the 2-production slates that are the realistic near-term org size (live: the largest org has 1). - (D) Defer cohorts; ship phase C with intensity ranking only. Viable fallback if (a)/(b) mappings are contested; costs the scripted/format views the target names.

The recommendation

Adopt (A). Derivation keeps one source of truth, exhaustiveness makes taxonomy growth a forced decision, and the honest-empty postures match the platform's null-not-zero contract. Revisit trigger: a real production whose scripted/format classification contradicts the pinned mapping (then and only then add a per-production override, not a free column).

The decision

Settled by internal methodology review, Sacha Kovac, 2026-07-24, revisable, decision sheet W1151-B.

Revision history: a revised decision is a new settlement line in the methodology register with its own date; earlier lines are never deleted. Full decision sheet: docs/design/org-experience-v1.md section 4.

Recorded variations

No methodology variations have been recorded. A variation is a methodology decision applying the platform's existing, audited methodology levers to a stated scope; when one is recorded it appears here with its rationale and scope breadth.

Challenges answered on the record

Anyone whose numbers a decision touches can challenge it. Every challenge receives a recorded response; the responses are published here. Open challenges are answered first and rendered only once responded.

No challenge responses have been recorded yet.