Skip to content

LCIA Methods

VoLCA computes environmental impacts by applying characterization factors from LCIA methods to inventory flows. Methods are loaded separately from databases, so you can mix and match.

VoLCA loads methods from ILCD method packages - ZIP archives or directories containing XML files structured per the ILCD data format spec (used by GreenDelta’s openLCA and SimaPro).

Common method packages:

  • EF 3.1 / EF 3.0 - European Commission PEF methods (available from European Commission)
  • ReCiPe 2016 - Midpoint and endpoint methods
  • CML 2002 - Classic midpoint method
  • IPCC 2021 - Climate change characterization
Section titled “Via config file (recommended for production)”
[[methods]]
name = "EF3.1"
path = "/data/EF3.1" # directory or .zip of ILCD method XML files
active = true # default true; set false to keep it unloaded

Upload a ZIP or directory once, then it persists across restarts:

Terminal window
volca --config volca.toml method upload /data/EF3.1.zip --name "EF3.1"
Terminal window
# List loaded methods
curl http://localhost:8080/api/v1/methods
# List method collections
curl http://localhost:8080/api/v1/method-collections

Any loaded collection can be exported to any of four formats, whatever format it was imported from. A method loaded from an ILCD package (for example the Environmental Footprint 3.1 reference package) can be handed to a SimaPro user as one .csv file carrying its impact categories, damage categories and normalization/weighting sets.

FormatKeywordFile
SimaPro method CSVsimaproone .csv
Columnar CSVcsvone .csv, one column per impact category
openLCA JSON-LDopenlcaa .zip, one ImpactCategory per method
ILCD packageilcda .zip, lciamethods/ plus the flows/ it needs
  • Web UI: the Export button on the collection’s card in the Methods page opens a menu of the four.
  • CLI: volca method export NAME --format simapro --out method.csv
  • API: POST /api/v1/method-collections/{name}/export with body {"format": "simapro"} - the response body is the file itself.

How much survives depends on the format. openLCA and ILCD carry UUIDs, direction and location natively, so a collection round-trips through them unchanged. The two CSV formats have no place for a region, so a regionalized factor is written the way SimaPro method files write it (a name-suffixed substance per region, like Water, FR), and land occupation/transformation factors are filed under the Raw compartment.

Anything the chosen format cannot carry - a factor without a compartment, formula scoring sets, per-factor units in ILCD - is reported in export warnings (shown in the UI and CLI, and sent in the X-Volca-Export-Warnings response header), never dropped silently.

Terminal window
# Flat list of all characterization methods
volca --config volca.toml methods
# Or via CLI
volca --config volca.toml --format table methods

Each method has a UUID that you pass to impacts and flow-mapping commands.

Terminal window
# Single method
volca --config volca.toml --db ecoinvent impacts <PROCESS_ID> --method <METHOD_UUID>
# Export to CSV
volca --config volca.toml --db ecoinvent impacts <PROCESS_ID> --method <METHOD_UUID> --csv scores.csv

Before running LCIA, verify how well the method maps to your database flows:

Terminal window
volca --config volca.toml --db ecoinvent flow-mapping <METHOD_UUID>

This shows:

  • Total characterization factors
  • How many are matched (and by what strategy: UUID, CAS, name, or synonym)
  • How many are unmatched
  • How many database flows are uncharacterized
Terminal window
# See which CFs are matched and how
volca --config volca.toml --db ecoinvent flow-mapping <METHOD_UUID> --matched
# See which CFs have no database match
volca --config volca.toml --db ecoinvent flow-mapping <METHOD_UUID> --unmatched

When VoLCA matches a characterization factor to a database flow, it tries in order; the first hit wins:

  1. UUID - exact elementary-flow UUID match
  2. CAS - CAS-number match (compartment-aware)
  3. Name - normalized-name match (compartment-aware)
  4. Synonym - name matched via loaded flow synonym sets
  5. Unmatched - no match found; the flow stays uncharacterized and won’t contribute to the score

Low matching rates are normal for some method/database combinations. The --unmatched flag in flow-mapping shows exactly which characterization factors are missing. See Flow Mapping for the full cascade and Flow Mapping Audit for closing gaps.

Find which flows drive an impact the most:

Terminal window
volca --config volca.toml --db ecoinvent impacts <PROCESS_ID> --method <METHOD_UUID>
# Result includes top contributing flows per category

Via API:

GET /api/v1/db/{db}/activity/{id}/contributing-flows/{collection}/{methodId}?limit=10
GET /api/v1/db/{db}/activity/{id}/contributing-activities/{collection}/{methodId}?limit=10

Every contributing flow carries matchKind, a short name for how the engine found its factor. When that is not enough, ask for the whole story on one flow:

GET /api/v1/db/{db}/method/{methodId}/explain-cf/{flowId}

It answers in sentences the engine writes itself, names the line of the method that supplied the factor, and lists the steps it walked before that one. See Flow mapping for what each step means.