> ## Documentation Index
> Fetch the complete documentation index at: https://docs.realtimelca.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sweden

> Real-Time LCA support for the Swedish Klimatdeklaration regulation issued by Boverket.

export const LifecyclePhases = ({included = [], declaredSeparately = [], note}) => {
  const expand = codes => {
    const set = new Set();
    codes.forEach(code => {
      if (code === 'A1A3') ['A1', 'A2', 'A3'].forEach(c => set.add(c)); else set.add(code);
    });
    return set;
  };
  const inc = expand(included);
  const sep = expand(declaredSeparately);
  const stages = [{
    name: 'Product',
    modules: [['A1', 'Raw materials'], ['A2', 'Transportation'], ['A3', 'Manufacturing']]
  }, {
    name: 'Construction process',
    modules: [['A4', 'Transportation'], ['A5', 'Construction / Assembly']]
  }, {
    name: 'Use',
    modules: [['B1', 'Use'], ['B2', 'Maintenance'], ['B3', 'Repair'], ['B4', 'Replacement'], ['B5', 'Renovation'], ['B6', 'Energy consumption for operation'], ['B7', 'Water consumption for operation']]
  }, {
    name: 'End of life',
    modules: [['C1', 'Demolition'], ['C2', 'Transportation'], ['C3', 'Waste pretreatment'], ['C4', 'Disposal']]
  }, {
    name: 'Beyond the system boundary',
    modules: [['D', 'Potential for reuse, recycling and other recovery']]
  }];
  const bg = code => {
    if (inc.has(code)) return '#D6DAFF';
    if (sep.has(code)) return '#E8E6E6';
    return 'transparent';
  };
  const fg = code => inc.has(code) || sep.has(code) ? '#000' : 'inherit';
  return <div>
      <table style={{
    borderCollapse: 'collapse',
    width: '100%',
    margin: '0.5em 0'
  }}>
        <thead>
          <tr>
            <th align="left" style={{
    padding: '8px',
    borderBottom: '1px solid #ccc'
  }}>Stage</th>
            <th align="left" colSpan={2} style={{
    padding: '8px',
    borderBottom: '1px solid #ccc'
  }}>Module</th>
          </tr>
        </thead>
        <tbody>
          {stages.flatMap(stage => stage.modules.map(([code, label], idx) => <tr key={code}>
                {idx === 0 && <td rowSpan={stage.modules.length} valign="top" style={{
    padding: '8px',
    borderBottom: '1px solid #eee'
  }}>
                    <strong>{stage.name}</strong>
                  </td>}
                <td style={{
    backgroundColor: bg(code),
    color: fg(code),
    padding: '8px',
    width: '60px'
  }}>
                  <strong>{code}</strong>
                </td>
                <td style={{
    backgroundColor: bg(code),
    color: fg(code),
    padding: '8px'
  }}>{label}</td>
              </tr>))}
        </tbody>
      </table>
      {note && <p style={{
    marginTop: '0.5em',
    fontStyle: 'italic',
    fontSize: '0.9em'
  }}>{note}</p>}
    </div>;
};

Real-Time LCA implements **Klimatdeklaration** — the mandatory climate declaration issued by **[Boverket](https://www.boverket.se/klimatdeklaration)** (the Swedish National Board of Housing, Building and Planning) under *[Lag (2021:787) om klimatdeklaration för byggnader](https://www.riksdagen.se/sv/dokument-och-lagar/dokument/svensk-forfattningssamling/lag-2021787-om-klimatdeklaration-for-byggnader_sfs-2021-787/)*, effective for new buildings since 1 January 2022.

## Klimatdeklaration

<LifecyclePhases included={['A1A3', 'A4', 'A5']} note="Blue = required modules under Klimatdeklaration. Current scope is the construction stage only (A1–A5)." />

* **Reference study period:** 50 years.
* **Indicator:** **GWP-IOBC** (GWP including biogenic carbon), reported in **kg CO₂-eq per m²** — note: **no /year denominator** for this calculation type, unlike most other regulatory calculation types in Real-Time LCA.
* **Threshold:** none defined at this time.

The current Klimatdeklaration scope is limited to the construction stage. Boverket has announced phased expansion in scope — additional modules and a limit value are expected in subsequent revisions — and Real-Time LCA will update this page when the expanded ruleset is implemented as a separate calculation type.

## Custom and Level(s)

Real-Time LCA additionally exposes **Custom** (user-defined scope, GWP-IOBC in kg CO₂-eq / m²) and **Level(s)** (full EN 15978 module set with standard GWP — see [Level(s)](/methodology-and-compliance/levels)) for Swedish projects.

Projects requiring documentation beyond the current Klimatdeklaration scope (whole life-cycle, including B and C modules) should use Level(s) in parallel.

## Reference Service Life

For the Klimatdeklaration calculation type, the reference service life only enters into B4 — which is not in current Klimatdeklaration scope — so RSL handling is relevant when running parallel calculations (Level(s) or Custom) rather than for the regulatory submission itself.

## Limitations

* The current Klimatdeklaration covers only the construction stage (A1–A5). Use of the building (B), end of life (C), and module D are not part of the submission.
* The indicator naming **GWP-IOBC** differs from standard EN 15804+A2 GWP. The Klimatdeklaration value is not directly comparable to GWP values produced by Level(s) or BR18-style calculations.
* The reporting unit is per m² without a /year denominator. When comparing Swedish results to other countries' per-m²/year figures, divide the Klimatdeklaration value by the reference study period (50 years) to obtain a roughly equivalent per-m²/year intensity — keeping in mind that the module scope is narrower.
