OpenLCA JSON-LD to ILCD round trip and model versioning
A consultancy models a cradle-to-gate LCA of a heat pump in openLCA 2.0 and exports the product system as openLCA JSON-LD for a client who uses SimaPro 9.5 and ILCD. The model contains a parameter 'grid_share' (0.6 wind, 0.4 grid) and links to ecoinvent 3.10 APOS. After the round trip, the client reports GWP of 1,510 kg CO2e versus the consultancy's 1,240 kg. Inspection shows: the parameter became fixed values; the client's database is ecoinvent 3.9.1 cut-off; one flow 'electricity, low voltage' was mapped by UUID to a different dataset; the LCIA method is ReCiPe 2016 v1.1 in the original and v1.2 at the client; and the functional unit '1 unit (heat pump, 8 kW)' lost its reference flow property in ILCD. The client asks whether the 22% difference is a real modelling difference and how to make future exchanges reproducible.
1. Diagnose the likely causes of the 22% GWP difference and outline a stepwise reconciliation.
Read the worked answer
The 22% gap is probably a combination of causes, not one error. Ranked by likely effect:
- Parameter fixation: 'grid_share' 0.6/0.4 became fixed values and may not match the intended mix.
- System model change: APOS versus cut-off changes waste and by-product burdens, often 5-15% for electricity-intensive products.
- UUID mapping: 'electricity, low voltage' mapped to a different dataset (voltage, geography or year), which can change GWP substantially.
- LCIA method version: ReCiPe 2016 v1.1 versus v1.2 has revised characterisation factors for some flows.
- Reference flow property loss in ILCD can alter unit conversion for the 8 kW unit.
Reconcile stepwise: run both models with identical dataset version, method version and fixed parameter values; compare per-flow LCIA contributions (top 10 flows) and mass/energy balances; validate the ILCD package; inspect the UUID mapping table. Only after harmonising these should you judge whether any residual difference is a real modelling difference.
2. Design a versioning and exchange workflow that would make future transfers reproducible.
Read the worked answer
Use a versioned exchange package:
- Freeze and declare ecoinvent version and system model, LCIA method version, and openLCA/SimaPro versions.
- Export a manifest listing every dataset UUID, name, version and unit.
- Do not rely on parameters surviving ILCD. Export openLCA JSON-LD for the full parameterised model and a separate ILCD package for the client, with a parameter sheet (grid_share = 0.6 wind / 0.4 grid).
- Maintain a UUID mapping table and require manual review of every mapped flow.
- Run a round-trip test before delivery and compare GWP within a tolerance (for example <1%).
- Use the openLCA API or a script to generate exports, checksums and a change log, stored in version control.
- State the model version in the final report.
With this workflow, the 1,240 versus 1,510 kg difference becomes explainable and reproducible rather than an unexplained 22% discrepancy.