How the figures are calculated — a method review
Life cycle assessment of surgical procedures · version 2.8.0 · for review by the clinical team
Download as PDF 2026-10-04
About this document
This document describes, section by section, how the application turns what a theatre records into the figures on a report. It is written for the clinicians who entered the data and have to judge whether the method is right: what is recorded, the formula applied to it, the constants and datasets used, a worked example from the test suite, the assumptions, what is not modelled, and the questions the authors would like answered. Sterilisation and anaesthesia are treated in the most depth, at the reviewer's request.
Every number below is taken from the database function or the test that is
named beside it in code. Where something could not be checked against the
live code it is marked UNVERIFIED. The companion appendix methods.md is
the citation text printed on every export; this document is the longer
account that the appendix summarises.
Words used throughout
| Term | Meaning |
|---|---|
| Project | One technique or one series for an operation — "CTR, open technique", say. It holds a template of what one standard case uses (products, anaesthesia, sterilisation) and the procedures actually performed. |
| Procedure | One operation performed, with its date, room, duration, weighed waste, and what it consumed (copied from the template, then adjusted). |
| Subject | The operation studied — "carpal tunnel release". Projects that share a subject are the arms compared with each other. |
| Report | A frozen copy of a project's calculation at a point in time, numbered. Nothing published is ever recomputed; a wrong version is withdrawn, with its reason, and stays on record. |
| Comparison report | A frozen set of the arms' published reports, side by side under every indicator. |
| Per procedure / per patient | The project total divided by the number of recorded procedures (project.patient_count = nullif(count(procedure), 0), kept by the trigger sync_patient_count). |
| Template mode | While no procedure is recorded, the calculation shows the template as if it were one procedure, and no report can be published. |
| Indicator | One impact category of one method: EF 3.1 — Climate change, IPCC 2021 — GWP 20, … |
1. The factor database and the methods
Database. Every material factor comes from the Life Cycle Inventory database of the Swiss Federal Administration, BAFU:2026, version 1 (Federal Office for the Environment, Bern), obtained 2026-07-27 from openLCA Nexus. The application's catalogue holds 7,551 of its processes (6,630 materials and products plus 922 disposal processes: 821 added in 2.5.0, 101 in 2.9.2).
How a factor is computed. Not from BAFU's pre-aggregated results: each
process is solved with openLCA 2.6.1 against the full database, and the single
figure per impact category is stored in material_impact with the method, the
category, the unit, the catalogue edition and the date of the run (runs of
2026-08-14, 2026-08-31 and 2026-09-29; tools/factor-extraction/README.md).
Methods. EF 3.1 (openLCA's "EF 3.1 Method (adapted)", 25 categories: 16
main categories and 9 splits — climate change fossil/biogenic/land use,
toxicity and ecotoxicity inorganics/organics) and IPCC 2021 at two horizons,
GWP 100 and GWP 20 (AR6 characterisation factors as shipped in openLCA's method
pack). Together 27 (method, category) pairs with factors
(impact_methods()).
System model. Attributional, cut-off at end-of-waste, inferred from the
Swiss federal LCI rules v8.1 §9.3 and the ecoinvent v2.2 lineage; BAFU's own
documentation names no system model (factor_catalogue.system_model,
migration 20260906120000).
Electricity. Any BAFU electricity dataset chosen on a product, in the
sterilisation or for a room is replaced at calculation time by Electricity, low (or the chosen) voltage, at
grid {country} for the hospital's country
(electricity_grid, migration 20260828100000); a hospital without a
country defaults to CH. The sensitivity dropdown on the project page recosts
against another country's grid and says so; publishing always uses the own
grid. BAFU's Belgian low-voltage factor is 0.179 kg CO₂e/kWh under EF 3.1
Climate change (tools/base44-import/DATA_ISSUES.md); the reviewers' earlier
spreadsheets used 0.120 — question 1.
Freezing. publish_report copies every line into report_line with the
factor value, dataset name and UUID, method, category, catalogue edition,
geography and extraction date, and (since 2.6.0) the totals under all 27
indicators into report_indicator_total. A later catalogue edition
supersedes (is_current) rather than overwrites.
Not modelled. Uncertainty on factors (BAFU gives none in the extraction); regionalisation beyond the dataset's own geography; any impact method other than the two above.
Questions. (1) Which Belgian grid factor should be used, BAFU's 0.179 or the 0.120 kg CO₂e/kWh of the earlier work, and on what source? (2) Should the report default to EF 3.1 Climate change or to IPCC 2021 GWP 100?
2. Products
What is recorded. A product (item) is broken down into components and
each component into materials: a BAFU dataset, a quantity and a unit
(component_material). A component can hold sub-components, each with a count
(aantal). The project template says how many of each product one standard
case uses (project_item.quantity); each procedure copies that and can change
it (procedure_item.quantity).
Formula (project_material_lines, migration 20260901200000):
result = quantity × (unit→reference-unit conversion) × Π counts down the component tree
× units consumed × factor
units consumed = Σ over recorded procedures of procedure_item.quantity
(the template quantity while no procedure is recorded)
The conversion uses unit.factor_to_base of the entered unit against the
dataset's reference unit (g → kg, MJ → kWh, …). A material whose dataset has
no factor under the chosen indicator is shown and not counted, and the
report says so.
Worked example (seed, 05_report.test.sql): the CTR disposable set's
materials add up to 0.4486 kg CO₂e over three procedures under EF 3.1 Climate
change; the set's shipped mass, compounded through the tree, is 17.6 g
(35_transport.test.sql).
Assumptions. A product's footprint is the sum of producing its materials (cradle to gate of the material datasets); manufacturing steps that are not a material — moulding, assembly, sterilisation by the maker — are only counted where someone recorded them as a dataset. Packaging is counted where it was weighed in as a component.
Not modelled. Factory energy and assembly; the maker's sterilisation (EtO, gamma); product-level transport other than Part 8; reuse cycles of reusable instruments (a reusable product is counted in full each time it is listed); end-of-life of the product other than through the weighed waste of Part 7.
Questions. (3) Are reusable instruments listed on the template with their full material mass each procedure? If so, should a reusable product be divided over an assumed number of uses? (4) Is packaging consistently weighed in?
3. Drugs
What is recorded. A medication is a product of kind drug linked to a
drug record that carries its emission factor per kilogram (ef_gwp100,
optionally ef_gwp20), its basis (per_kg_administered or
per_kg_emitted), density, the literature reference, and whether it is a
proxy for another substance. On the template and on each procedure the
clinician records how many containers were opened and the dose given.
Formula (project_drug_lines, migration 20260930110000;
drug_mass_kg, 20260814130000):
mass [kg] = Σ over procedures ( units opened × content of one unit → kg )
mL → mL × density [g/mL] / 1000 mg → / 1,000,000
g → / 1000 mcg → / 1,000,000,000
kg → as is IU → not counted
result = mass × share × factor
share = exhaled fraction when the factor is per kg emitted, else 1
factor = ef_gwp100 under EF 3.1 Climate change and IPCC 2021 GWP 100,
ef_gwp20 under IPCC 2021 GWP 20, none under any other indicator
The whole container counts. Since 2.4.0 an opened ampoule is consumed whether the rest is given or discarded; the dose is kept on the record and the line notes when it exceeds one unit's content. A drug whose content per unit is not recorded is shown and not counted.
Worked example (36_gwp20.test.sql): three 50 mL propofol vials at
density 1.01 → 0.1515 kg; × 4.90 (seed placeholder) = 0.742 kg CO₂e under
GWP 100, × 9.8 = 1.485 under GWP 20. On production propofol carries
21 kg CO₂e/kg, per kg administered (Parvatker et al. 2019).
Assumptions. The drug factor covers producing the active substance and its formulation as the cited paper defines it; the container's glass, stopper and cap are counted under Products through the item's components.
Not modelled. Disposal of unused drug and of the container (other than
through weighed waste); drug wastage beyond the container opened; 24 of the 26
production drugs carry no density, so a volume cannot be converted for them
(docs/open-items.md, line 164) — those lines are shown and not counted.
Questions. (5) Densities for the 24 drugs without one. (6) Is the per-kg-administered factor for propofol (21) the figure the team wants, and with which citation?
4. Anaesthesia
What is recorded (project_anesthesia, migrations 20260813120000 and
20260831110000). One record per technique used in the project — general,
TIVA, spinal, local, sedation, regional, mixed — with: the agent (a drug),
the duration in minutes, and either a liquid volume in mL or the fresh-gas
flow in L/min with the vaporiser setting / share of the fresh gas in %. Its
own materials (tubing, glassware, …) are listed as BAFU datasets with
quantities (anesthesia_material). Intravenous drugs given under it are
ordinary drug items on the template, linked to the record
(project_item.project_anesthesia_id).
One record = one operation. The agent and material lines are multiplied
by the number of recorded procedures (project_case_count, = patient_count
or 1 in template mode), so anaesthesia sums over the same cases as the
products. The drugs given under it are summed over the procedures directly,
like any drug, and are not multiplied again.
Agent mass (anesthesia_agent_kg, migration 20260906130000):
Gas (nitrous oxide; the agent carries a gas density):
kg = flow [L/min] × share/100 × duration [min] × gas density [g/L] / 1000
(a volume in mL is refused for a gas)
Volatile liquid, volume recorded (an observation wins over a derivation):
kg = volume [mL] × density [g/mL] / 1000
Volatile liquid, derived from the vaporiser:
L of vapour = flow × setting/100 × duration
mL liquid = L vapour × 1000 / vapour ratio [mL vapour per mL liquid]
kg = mL liquid × density / 1000
Missing density or ratio → no figure and a note, never a default.
The vapour ratio and the gas density are derived at 20 °C and 1 atm, molar
volume 24.04 L/mol, from the agent's stored density and molar mass
(refresh_agent_reference, same migration; 33_agent_reference.test.sql):
| Agent | Molar mass [g/mol] | Density [g/mL] (production) | Vapour ratio | Gas density |
|---|---|---|---|---|
| Sevoflurane | 200.05 | 1.51 | 181.5 | — |
| Isoflurane | 184.49 | 1.50 | 195.5 | — |
| Desflurane | 168.04 | 1.45 | 207.4 | — |
| Nitrous oxide | 44.013 | — | — | 1.83 g/L |
Emission and factor (project_anesthesia_lines, migration
20260930110000):
result = kg × exhaled fraction × GWP × procedures
| Agent | Exhaled fraction | GWP 100 | GWP 20 |
|---|---|---|---|
| Sevoflurane | 0.95 | 195 | 702 |
| Isoflurane | 0.998 | 539 | 1930 |
| Desflurane | 0.9998 | 2590 | 7020 |
| Nitrous oxide | 1 | 273 | 273 |
Source: IPCC (2021), AR6 WG1 Chapter 7 Supplementary Material, Table 7.SM.7; summarised for anaesthetic agents in Coburn et al., Eur J Anaesthesiol 2026;43:291-4. Until 2.4.2 sevoflurane carried 144 and desflurane 2540 (Sulbaek Andersen et al. 2012). The citation text has not yet been confirmed by the reviewers — question 7. The same GWP 100 applies under EF 3.1 Climate change and IPCC 2021 GWP 100; GWP 20 under IPCC 2021 GWP 20; under any other indicator (acidification, water use, …) the agent line carries no figure and says so.
Materials of the anaesthesia: quantity × unit conversion × BAFU factor × procedures; an electricity dataset is re-pointed to the hospital's grid at the same voltage.
Double counting. When the same drug is both an agent on a record and a
consumed drug item, the agent line says so and asks that the dose be counted
once (also_item note).
Worked examples (15_anesthesia.test.sql, test fixture: factor 130,
density 1.52, ratio 183, exhaled 0.95): 2 L/min at 2 % for 60 min → 2.4 L of
vapour → 13.11 mL → 0.01993 kg → × 0.95 × 130 = 2.462 kg CO₂e per case,
× 3 procedures = 7.386. Recorded 20 mL → 0.0304 kg. Nitrous oxide 6 L/min at
50 % for 60 min → 180 L × 1.83 g/L = 0.3294 kg × 273 = 89.93 kg CO₂e per
case.
Assumptions. Everything delivered is eventually exhaled or vented in the exhaled fraction; no scavenging capture or destruction; one flow and one setting for the whole duration; one duration serves both the technique and the agent derivation.
Not modelled. Production and transport of the agents themselves (scope 3;
deferred with the owner on 2026-09-29); waste-anaesthetic-gas scavenging,
capture or destruction; CO₂ absorbent (soda lime); oxygen and medical-air
supply and their energy; vaporiser and anaesthesia-machine electricity
(includes_anesthesia_equipment deferred); TIVA pump consumables unless
listed as products; disposal of propofol and other drugs; pipeline N₂O
losses and leaks; induction and emergence flows that differ from the one
flow recorded; low-flow phases; the production footprint of intravenous
agents beyond the cited per-kg factor.
Questions. (7) Confirm the AR6 values and the citation wording. (8) Is one flow × one setting × one duration an acceptable description of a general anaesthetic for this study, or should induction and maintenance be separate? (9) Should agent production (scope 3) be added, and with which factors? (10) Does the department use scavenging with destruction or capture anywhere? (11) Soda lime: record it as a material of the anaesthesia?
5. Sterilisation
What is recorded. Per hospital (hospital_sterilization_settings,
migration 20260813120000): whether sterilisation is counted at all
(sterilization_enabled), and for each of three machines — washer, cart
washer, autoclave — the tap water (L), RO water (L) and electricity (kWh) of
one cycle or charge and how many instrument sets (DIN) a cycle carries. Also a
cost per DIN, an RO input multiplier and a maximum STU per charge. Per
project (project_sterilization, one row per project): the DIN used, the set
name, whether a reusable set was used, whether no sterilisation was needed,
and an optional photo of the set.
Formula (project_sterilization_lines, migration 20260904110000;
per_din, 20260814130000):
DIN = 0 when "no sterilisation needed" or "no reusable set used", else din_used
Lines exist only when the hospital has sterilization_enabled.
per_din(raw, din_per_cycle) = raw / din_per_cycle (null if either is missing or zero)
tap water per DIN = Σ machines per_din(tap_l, din_per_cycle)
RO water per DIN = Σ machines per_din(ro_l, din_per_cycle)
electricity per DIN = Σ machines per_din(kwh, din_per_cycle)
line quantity = per DIN × DIN; result = quantity × factor
water: 1 L = 1 kg (actual 0.998; stated in the function)
| Line | Dataset |
|---|---|
| Tap water | Tap water, at user {CH} (system_code tap_water) |
| RO water | Water, deionised, water balance according to MoeK 2013, at plant {CH} (ro_water) |
| Electricity | Electricity, low voltage, at grid {hospital country} |
RO water is costed with the deionised-water dataset, not as tap water × the RO input multiplier, which would count the feed water twice. The RO multiplier, the maximum STU per charge and the cost per DIN take no part in the impact figure (the cost appears beside the working as information). A machine with DIN per cycle but no kWh keeps its electricity line with the note that the figure is a lower bound.
Worked example (05_report.test.sql; the seed hospital): washer 120 L
tap, 45 L RO, 8.4 kWh per cycle of 12 DIN; autoclave 11.2 kWh per charge of 16
DIN; 12.5 DIN used. Tap 120/12 = 10 L/DIN × 12.5 = 125 L; RO 45/12 = 3.75 ×
12.5 = 46.875 L; electricity 8.4/12 + 11.2/16 = 1.4 kWh/DIN × 12.5 =
17.5 kWh. With test factors 0.0002, 0.0005 and 0.1 kg/kWh the section is
1.798 kg CO₂e. The published report prints this working ("Sterilisation
calculation") from the settings as frozen at publication.
A point to settle — question 12. The sterilisation lines are not
multiplied by the number of procedures. Anaesthesia, products, drugs, waste
and room use all scale with the recorded procedures; the DIN figure is
entered once per project and enters the total as it is. The per-patient figure
then divides it by the number of procedures. So the DIN a clinician enters is
read as the total DIN for all procedures of the project, not per
procedure. If Jack enters the DIN of one set (per operation), sterilisation is
under-counted by the number of procedures. The form label is "DIN used"; the
anaesthesia fields are labelled "per operation". This has been on the open
list since 2026-09-04 (docs/open-items.md, "Sterilisation is recorded per
project, not per procedure").
Also to know. Every hospital imported from Base44 has
sterilization_enabled = false, so on production today the sterilisation
section is empty and sterilisation enters only where someone listed soap or
water on a product's components (two components carry Soap, at plant {RER}
with a negative mass, DATA_ISSUES.md lines 56-57). The interface warns
against recording both.
Assumptions. A washer and autoclave cycle's water and electricity are
shared equally over the DIN it carries; one set = the DIN recorded; machine
figures are the hospital's own measurements or data sheets (source field).
Not modelled. Detergent, lubricant and other process chemicals (soap only where a product component carries it); steam generation and compressed air separately from the autoclave's kWh; wrap, packaging, containers, filters and chemical indicators; the load share by STU (the field is stored, unused); wear and replacement of the instruments and the manufacture of the reusable set; transport to and from the sterilisation department; wastewater treatment; standby, heating-up and idle energy; a green-electricity contract; variation between procedures (one DIN figure per project).
Questions. (12) Is the DIN entered per project total or per operation? (13) Should the sterilisation settings be switched on for AZ Maria Middelares, and with which machine figures (per cycle water, electricity, DIN per cycle)? (14) Detergent and wrap: add them as per-cycle inputs? (15) Should the reusable set's own manufacture be divided over an assumed number of uses?
6. Room use
What is recorded. Per hospital, room types with a consumption in kWh per
hour (hospital_room_type); per procedure, the room and the duration in
minutes.
Formula (project_facility_lines, migration 20260906130000):
per room type: Σ duration [min] / 60 × kWh/h × factor of Electricity, low voltage, at grid {hospital country}
A procedure without a room or without a duration produces a "not counted" line that names it.
Worked example (17_facility_use.test.sql): 114 minutes = 1.9 h × 24
kWh/h = 45.6 kWh.
Assumptions. The room's consumption per hour covers lighting, ventilation, air conditioning and the room's own equipment, as the hospital's figure defines it; the model does not separate them.
Not modelled. Idle, turnover and standby time between procedures; heating
and cooling as a share of the building; equipment brought in for the
procedure (the ultrasound machine, the endoscopy tower) unless its consumption
is in the room figure; production has no room types yet (open-items.md,
item 2), and the seed's 24 and 6 kWh/h are placeholders.
Questions. (16) What is the measured or estimated consumption of the operating rooms used, per hour, and from which source? (17) Should the ultrasound and endoscopy equipment be counted separately?
7. Waste
What is recorded. Per procedure: the waste weighed after it, in kg (one
stream, all bags together), optionally excluded from the mean with a reason.
Per hospital (hospital_waste_settings): one BAFU disposal dataset and the
distance by road to the processor, with the source of both.
Formula (project_waste_lines, migration 20260930120000):
mean kg = avg(waste_kg) over the weighed, non-excluded procedures
total kg = mean kg × procedures (so total / procedures = the mean)
Disposal = total kg × factor of the disposal dataset [per kg]
Transport = total kg / 1000 × km to processor → t·km × factor of
Transport, freight, lorry, fleet average {CH}
The lines say how many procedures were not weighed and which weighings were excluded and why. Without a hospital route the report carries one "not counted" line.
Worked example (34_waste.test.sql): weighings 1.2 and 0.8 kg → mean 1.0
× 3 procedures = 3.0 kg × 0.5 = 1.5; transport 3.0/1000 × 30 km = 0.09 t·km ×
0.2 = 0.018.
Assumptions. One disposal route for all waste; the mean of the weighed operations represents the unweighed ones.
Not modelled. Separate streams (hazardous, sharps, recyclables, laundry); wastewater; recycling credits (the cut-off system model gives none).
A second method: waste per product (2.8.0, project_eol_lines,
migration 20261007100000). For product comparisons each component can be
given its own disposal dataset; its own mass (mass lines × effective count ×
units consumed, process steps excluded since 2.10.0) goes there, plus transport to the processor on the hospital
route's distance. Worked example (47_end_of_life.test.sql): the seeded set's
gloves 8.0 g × 1 × 4 sets = 0.032 kg and packaging 1.6 g × 6 × 4 = 0.0384 kg;
at 0.5 kg CO₂e/kg, 0.0352; transport 0.0704 kg / 1000 × 30 km × 0.2 =
0.00042. The two methods count the same bag and are reported side by side,
never summed. The headline takes one basis per project (2.11.0): the
weighed bin when any procedure was weighed, with the waste per product and
the difference between the two beside it; otherwise the waste per product.
Open question for the team: across projects that record both, how large
is the difference, and is weighing alone sufficient? Assumptions: the component's
material mass is its disposed mass (no residues, fluids or packaging not
modelled as a component); proxies stand in for latex, textile and infectious
waste, which the catalogue lacks.
Questions. (18) Which disposal dataset describes the hospital's route (incineration with or without energy recovery, hazardous)? (19) Should hazardous and non-hazardous waste be weighed separately?
8. Transport
What is recorded. Per product, the manufacturer's country and place; per
hospital, its own place — both resolved to coordinates through OpenStreetMap
Nominatim (since 2.7.0 via the application's own geocode function, which
names the application and keeps to one request a second), or typed, with the
text they were resolved from.
Formula (project_transport_lines, haversine_km, item_mass_kg,
migrations 20260930130000, 20261004150000 and 20261008100000):
shipped kg = mass of the product's component tree compounded through the counts
(+ a drug's content) × units consumed; process steps (injection
moulding, rolling, turning …, material.is_process) add no mass
same continent: road = great-circle × 1.3 → lorry, fleet average {CH}
other continent, or a country without a road link (GB, IE, IS, MT, CY):
sea = great-circle to Antwerp (51.2213 N, 4.4051 E) → transoceanic freight ship {OCE}
road = Antwerp → hospital × 1.3 → lorry
t·km = shipped kg / 1000 × km; result = t·km × factor
great-circle on a sphere of radius 6371.0088 km
Russia, Turkey, the Caucasus and Kazakhstan count as Europe. A product with a
country but no place is costed from the capital of that country
(iso_country.capital_lat/lng, 250 countries, migration 20261004140000):
the line is labelled "(estimated)" and its note names the capital — a
decision of 2026-10-03 (Hannes: count the estimate, marked), since in Arne's
test no product had a place and every report said transport was not counted.
A product without even a country is named on one "not counted" line; a
product that already carries a hand-entered transport component is flagged as
a possible double count.
Islands (2.9.0). Great Britain, Ireland, Iceland, Malta and Cyprus have no road link to the mainland, so a product from there to a hospital in another country goes by sea to Antwerp and then by road — the rule for other continents (Arne, 2026-10-04: everything for Belgium arrives through the port of Antwerp). The catalogue has no short-sea ferry or ro-ro dataset; the transoceanic freight ship stands in for it, and every such line's note says so. Open question for the team: is the transoceanic ship acceptable as the proxy for a Channel or North Sea crossing, or should a ferry dataset be added?
Hospital locations. Until 2026-10-04 no hospital had a location, so no transport was counted for any project. The 15 study hospitals were located then from their addresses (Nominatim, checked by eye); a hospital without a location is listed under Before you publish and on the project's Transport tile.
Worked example (35_transport.test.sql): the CTR set 17.6 g; a vial
118.4 g; Tuttlingen → Brugge by road, great-circle × 1.3; a product with
country DE and no place → Berlin (52.52 N, 13.41 E) → Brugge, "(estimated)".
Assumptions. The capital stands for an unknown place in the country; for a large country (US, CN, RU) the error can be a thousand kilometres, which at road factors is a small share of a product's total, and the line is marked so it can be replaced by the real place.
Not modelled. Distribution via wholesalers and regional warehouses; air freight; the last mile inside the hospital; return logistics; packaging transport weight beyond what is weighed in as a component.
Questions. (20) Are manufacturer locations known for the products in use, or should the distributor's warehouse count as origin?
9. Comparison and statistics
The comparison page has two views since 2.7.0. Projects reads
project_averages (migration 20261004120000) for any set of projects the
reader ticks: per project the mean per procedure, the same per section, the
cost, and the spread between the project's own procedures; and one
"selection" row pooling every procedure of the ticked projects, with the
sample standard deviation between the project means. Subjects reads
subject_averages (migration 20261001100000, archived projects left out
since 20261004110000): per subject the mean per procedure pooled over every
procedure of every project in it (Σ totals / Σ procedures), the sample
standard deviation between the project means (null with one project),
the same per section, and the cost per procedure; and, under it, the same per
project (arm).
Per-procedure totals (project_procedure_totals, project_spread,
migration 20261004100000) apportion every counted line of the project to
its procedures, on top of the same project_report_lines the report reads:
lines with a product (products, drugs with a product, transport legs):
result × procedure's units of the product ÷ units consumed of the product
room use: result × procedure kWh (min/60 × room kWh/h) ÷ Σ kWh
waste: result × kg_i ÷ Σ kg_i (kg_i = weighed kg when weighed and
not excluded, else the mean of the weighed)
everything else (anaesthesia agent and materials, sterilisation):
result ÷ number of procedures
spread: n, mean, stddev_samp, percentile_cont(0.5, 0.25, 0.75)
Σ over procedures = the project total by construction; one procedure gives no standard deviation (null, never 0). The even split of anaesthesia and sterilisation is a convention: anaesthesia is already recorded as mean × cases and the DIN count is per project (question 12).
Worked example (42_procedure_spread.test.sql, the seeded project under
test 05's pinned factors): procedures 1/2/3 = 2.385665 / 2.946817 / 2.225665,
Σ 7.558148 = the project total; procedure 2 differs from 1 by a quarter of
the set lines plus 13/114 of the room use (it uses one set more and runs 13
minutes longer in a 114-minute project); procedure 1 differs from 3 by
4/114 of the room use only.
The comparison report (migrations 20261001120000 and
20261004130000) is a frozen set of published project reports, under a
title, in a series of versions: since 2.7.0 any selection of projects with a
report (the subject's projects remain one way to pick them). Each arm freezes,
beside its report version, the spread between its procedures under its
published indicator at the moment of publishing, with the number of
procedures it was taken over — so procedures added after the report are
visible, not silent. Its results table reads the indicator totals frozen with
each report under all 27 indicators; its relative results set the largest arm
on each indicator to 100 %; the per-variant sections read each arm's frozen
lines where the arm was published under the chosen indicator, and the frozen
section totals otherwise.
Cost is units consumed × the price under the chosen label (or the earliest recorded), shown beside the impact with the number of unpriced products. It is not an impact and is frozen in no report.
Questions. (21) Answered in 2.7.0: both are given — the spread between projects on the subject row and the selection row, the spread between procedures per project. Still open: is the even split of anaesthesia and sterilisation over the procedures acceptable for the paper, or should anaesthesia be recorded per procedure (duration and flow per case)?
10. Open questions, collected
| # | Section | Question | Answer |
|---|---|---|---|
| 1 | Factors | Belgian grid factor: BAFU 0.179 or 0.120 kg CO₂e/kWh, and the source? | |
| 2 | Factors | Default indicator: EF 3.1 Climate change or IPCC 2021 GWP 100? | |
| 3 | Products | Reusable instruments: divide their material mass over an assumed number of uses? | |
| 4 | Products | Is packaging consistently weighed in as a component? | |
| 5 | Drugs | Densities for the 24 production drugs without one. | |
| 6 | Drugs | Propofol at 21 kg CO₂e/kg per kg administered — confirmed, and the citation? | |
| 7 | Anaesthesia | Confirm the AR6 GWP values and the citation wording. | |
| 8 | Anaesthesia | One flow × one setting × one duration, or induction and maintenance separately? | |
| 9 | Anaesthesia | Add agent production (scope 3), and with which factors? | |
| 10 | Anaesthesia | Scavenging with destruction or capture in use anywhere? | |
| 11 | Anaesthesia | Record soda lime as a material of the anaesthesia? | |
| 12 | Sterilisation | Is the DIN entered the project total or per operation? | |
| 13 | Sterilisation | Switch sterilisation on for the hospital, with which machine figures? | |
| 14 | Sterilisation | Detergent and wrap as per-cycle inputs? | |
| 15 | Sterilisation | Divide the reusable set's manufacture over an assumed number of uses? | |
| 16 | Room use | Operating-room consumption per hour, and its source. | |
| 17 | Room use | Count ultrasound and endoscopy equipment separately? | |
| 18 | Waste | Which disposal dataset describes the hospital's route? | |
| 19 | Waste | Weigh hazardous and non-hazardous waste separately? | |
| 20 | Transport | Manufacturer locations known, or distributor's warehouse as origin? | |
| 21 | Statistics | Between-project spread, or a per-case spread for the paper? | Both since 2.7.0; open: the even split of anaesthesia and sterilisation over procedures |