# comparison-data Raw measurement data behind [buildfor.life/comparisons](https://buildfor.life/comparisons). This repo is consumed by [buildfor_life_web](https://git.b4l.co.th/B4L/buildfor_life_web) as a git submodule at `apps/web/comparison-data`. At build time the site copies it to `/data/comparisons/`, where every file is both chart input and a raw download. Directory names are the keys the site's device pages reference in their `csv:` front matter, so renaming a directory here requires updating the matching page in the web repo. ## Layout ``` lamps//spd.csv SPD 380-1050 nm: wavelength_nm,value lamps//tm30.csv ANSI/IES TM-30-18 per-hue-bin data (16 bins): Rcs, Rhs, Rf_h, ... lamps//metrics.json Summary: TM-30 Rf/Rg, CRI Ra + R1-R15, CCT, flux, instrument metadata solar-charge-controllers/.csv Efficiency sweep: set/measured Vin, Iin, Pin, Vout, Iout, Pout, eff_pct, heatsink and board temperature ``` Every lamp has an internal ID (`L0001`, `L0002`, ...) as its primary key, assigned in measurement order by `lamp_station.py`. The EAN barcode is optional metadata in `metrics.json` (`ean`): one barcode can cover several versions of a lamp (daylight and warm white sharing box art get distinct IDs and a `variant` field), unbranded lamps have no barcode at all, and EANs starting with 2 are retailer-internal codes that cannot be resolved publicly. `metrics.json` may also carry a `rated` block with the advertised values from the packaging (`Phi_lm`, `CCT_K`, `Power_W`, `Ra`, `lifetime_h`, `W_equiv`), keyed like their measured counterparts so consumers can render advertised-vs-measured comparisons. ## Provenance - Lamps: HPCS-6500 integrating sphere, 230 V / 50 Hz, five consecutive readings averaged after stabilization. Instrument driver and TM-30 tooling: [HPCS6500-py](https://git.b4l.co.th/B4L/HPCS6500-py). Procedure: [lamp test procedure](https://buildfor.life/docs/tooling/lamp-test-procedure/). - Solar charge controllers: automated MPPT testbench sweeps. Procedure: see the linked test procedure on the comparison page. Data is published as measured; files are never edited after the fact. Corrections happen by re-measuring and replacing the whole device directory in one commit.