Skip to content

Aluminum-bottle LCA — peer-review prototype

This site is a minimal working example of the documentation stack we intend to use for the ACAP aerospace-processes peer review. It exercises the features the reviewers will rely on:

  • Filter/sort-able tables — try clicking column headers on the Impact assessment page.
  • LaTeX equations — rendered via MathJax 3, configured globally.
  • matplotlib / seaborn figures — pre-rendered PNGs committed to the repository, shown on the Figures page.
  • In-page annotations — Hypothes.is is embedded on every page. The sidebar opens from the tab on the right; sign-in (or a one-line group config) lets reviewers leave notes on highlighted text.

What is being modelled

A fictional process: production of one finished 15 g aluminum bottle. Foreground inputs are:

Input Symbol Notes
Primary Al ingot \( m_\mathrm{Al} \) Scaled up by an internal trim-loss factor
Epoxy lacquer \( m_\mathrm{coat} \) Inner liner, mass fraction of bottle mass
Electricity \( E_\mathrm{elec} \) Impact extrusion + trimming
Process heat \( E_\mathrm{th} \) Inter-stage annealing
Transport (truck) \( T \) Plant → filling line, ~ 250 km
Process water \( W \) Washing + cooling

The corresponding equations are derived on the Methodology page. The full contribution table across 14 LCIA methods is on Impact assessment.

Functional unit

1 finished, lacquered, empty aluminum bottle (15 g).

Process diagram

flowchart LR
    classDef param fill:#e8f1ff,stroke:#4a78c8,color:#111;
    classDef flow  fill:#e2f7e2,stroke:#3a9c3a,color:#111;
    classDef out   fill:#f2d8ff,stroke:#7d4a99,color:#111;

    mb["m_bottle<br/>15 g"]:::param
    fal["f_Al = 0.97"]:::param
    fcoat["f_coat = 0.02"]:::param
    fscrap["f_scrap = 0.01"]:::param
    eform["e_form = 0.32 kWh/kg"]:::param
    eann["e_ann = 0.18 kWh/kg"]:::param
    dist["d = 250 km"]:::param

    Al(["m_Al = f_Al m_bottle / (1 − f_scrap)"]):::flow
    Coat(["m_coat = f_coat m_bottle"]):::flow
    Elec(["E_elec = e_form m_bottle"]):::flow
    Heat(["E_th = e_ann m_bottle"]):::flow
    Trans(["T = d m_bottle / 1000"]):::flow

    mb --> Al
    fal --> Al
    fscrap --> Al
    mb --> Coat
    fcoat --> Coat
    mb --> Elec
    eform --> Elec
    mb --> Heat
    eann --> Heat
    mb --> Trans
    dist --> Trans

    FU(["1 aluminum bottle"]):::out
    Al --> FU
    Coat --> FU
    Elec --> FU
    Heat --> FU
    Trans --> FU

Package layout

aluminum_bottle_lca/
├── __init__.py
├── parameters.yaml      # foreground parameters
├── model.py             # pure physics functions
├── inventory.py         # AluminumBottle class (loads YAML)
└── impacts.py           # illustrative CFs + contribution_table()

The Python package is intentionally tiny — the focus of this prototype is the documentation surface, not the LCA itself.