title: CBAM Compliance Tool: Startup Thesis tags: [startup, cbam, compliance, research]


CBAM Compliance Tool: Startup Thesis

One line: verifier-ready CBAM emissions reports for Indian MSME exporters (foundries first) at Rs 1.5 to 3L per year instead of Rs 10 to 25L consultant engagements.

Related: getting-fundable, kliens, cbam-software, cbam-commodity-tree

Why demand is forced (no convincing needed)

The two regulatory findings that make the pitch (from primary law)

  1. Electricity does not count for steel and aluminium. Annex II of Reg (EU) 2023/956: only direct emissions are embedded emissions for iron/steel and aluminium goods. Induction-furnace (electric) foundries have structurally low CBAM numbers; India's dirty grid is irrelevant.
  2. Scrap is CBAM-free. CN 7204 (ferrous scrap) is excluded, so zero precursor emissions for scrap-fed melting. Most Indian foundries are scrap-fed. Also excluded: FeSi, FeSiMg and most common alloying additions.

Consequence: a scrap-fed induction foundry's actual number is a fraction of the EU default. Computing actuals is not compliance overhead; it is a price cut their EU buyer feels directly. We sell margin, not paperwork.

Sales pitch (to a foundry owner)

"Your EU buyer currently pays CBAM on an inflated default number, and that cost is priced against you. I compute your actual number from your electricity bills, fuel invoices and production logs. It will likely be several times lower. Verifier-ready file, Rs 2L a year, versus Rs 10 to 20L to a consultant."

Interactive: CBAM cost, default vs actual (demo math for pitches)

<div style="font-family:system-ui;color:var(--color-text);width:100%">
  <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px">
    <label>EU exports (t/yr) <input id=tons type=number value=2000 style="width:7em"></label>
    <label>Default intensity (tCO2/t) <input id=dv type=number step=0.1 value=2.5 style="width:5em"></label>
    <label>Actual intensity (tCO2/t) <input id=av type=number step=0.1 value=0.5 style="width:5em"></label>
    <label>Certificate price (EUR/tCO2) <input id=price type=number value=80 style="width:5em"></label>
  </div>
  <div style="margin:10px 0">Year <input id=yr type=range min=2026 max=2034 value=2026 style="width:60%">
    <b id=yrv>2026</b>, CBAM factor <b id=cf>2.5</b>% (free allocation phase-out)</div>
  <div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;text-align:center;margin-top:8px">
    <div style="border:1px solid var(--color-border);border-radius:8px;padding:10px;background:var(--color-bg-alt)">
      <div style="color:var(--color-text-secondary)">On DEFAULT values</div>
      <div id=cd style="font-size:22px;color:var(--color-error)">EUR 0</div>
    </div>
    <div style="border:1px solid var(--color-border);border-radius:8px;padding:10px;background:var(--color-bg-alt)">
      <div style="color:var(--color-text-secondary)">On ACTUAL values</div>
      <div id=ca style="font-size:22px;color:var(--color-success)">EUR 0</div>
    </div>
    <div style="border:1px solid var(--color-accent);border-radius:8px;padding:10px;background:var(--color-bg-alt)">
      <div style="color:var(--color-text-secondary)">Buyer saves / yr</div>
      <div id=sv style="font-size:22px;color:var(--color-accent)">EUR 0</div>
      <div id=svr style="color:var(--color-text-secondary);font-size:12px"></div>
    </div>
  </div>
  <div style="color:var(--color-text-secondary);font-size:12px;margin-top:8px">
    Cost = tonnes x intensity x certificate price x CBAM factor. Factor phase-in per Reg 2023/956:
    2.5% (2026) to 100% (2034). Illustrative; per-product defaults come from the EU DV file.
  </div>
</div>
<script>
  const F={2026:2.5,2027:5,2028:10,2029:22.5,2030:48.5,2031:61,2032:73.5,2033:86,2034:100};
  const $=id=>document.getElementById(id);
  const ids=['tons','dv','av','price','yr'];
  ids.forEach(i=>{ $(i).value=store.get(i,$(i).value); $(i).oninput=calc; });
  function fmt(x){ return x.toLocaleString('en-IN',{maximumFractionDigits:0}); }
  function calc(){
    const t=+$('tons').value,d=+$('dv').value,a=+$('av').value,p=+$('price').value,y=+$('yr').value;
    const f=F[y]/100; $('yrv').textContent=y; $('cf').textContent=F[y];
    const cd=t*d*p*f, ca=t*a*p*f;
    $('cd').textContent='EUR '+fmt(cd); $('ca').textContent='EUR '+fmt(ca);
    $('sv').textContent='EUR '+fmt(cd-ca);
    $('svr').textContent='about Rs '+fmt((cd-ca)*90)+' per yr at Rs 90/EUR';
    ids.forEach(i=>store.set(i,$(i).value));
  }
  calc();
</script>

How the machine works (who does what)

flowchart LR
  A[Indian foundry installation] -->|bills, invoices, production logs| B[US: ingest + calc engine, monitoring plan, emissions report, evidence pack]
  B --> C[Accredited verifier ISO 14065 / NABCB]
  C -->|verified report| D[CBAM Registry operator portal, we operate it for the client]
  D --> E[EU importer files declaration, buys certificates]

Regulatory data model (IR 2025/2547, ingested from primary text)

Docs and repo

Legal stack (14 files) plus DIGEST.md at ~/projects/cbam/docs/: Reg 2023/956, IR 2025/2547 (calculation, 86pp), IR 2025/2546 (verification), 2025/2548 (cert price), 2025/2620 (free alloc), 2025/2621 plus official default-values XLSX (Feb 2026), benchmarks XLSX, EU communication template XLSX (target output format), operator guidance, Registry access guides.

Channels / first calls

Next steps