- Fuel + electricity + precursor
- Process step
- CBAM good
- SEE from the engine
Answer your EU buyer once — and prove your plant is better than the default.
No EU forms to learn, no account to create. Open the link, enter what your plant really emits (or draw the plant), and your buyer sees a figure the engine computed — in English or 中文.
Five supplier pains — solved one by one
You are not the one who files in the EU — but your buyer’s cost depends on your data. Here is how the portal makes that easy and safe.
- Confusing EU forms
- Protecting plant data
- Proving you beat the default
- Chinese-language access
- Your own sub-suppliers
Open your buyer’s invitation — no account needed
/supplier-portalYour EU buyer sends a link by e-mail. It opens your secure portal directly. Lost the e-mail? Paste the invitation key on the Supplier Access page.


- Click the link in your buyer’s e-mail — or open Supplier Access, paste the key and press Open my portal.
- Check the header: Data request from your buyer, the deadline, the CN codes requested and the request status.
- Switch language any time with English / 中文. A link sent with
lang=zhopens in Chinese. - Nothing is shared until you submit. Your buyer — and the accredited verifier they appoint — see only what you submit for their request.
Every tab, mode and control here
- Supplier Access
- Paste the invitation key → Open my portal; a wrong or expired key gets a clear message.
- Header
- Invited supplier, data request from, deadline, language, sign out.
- Stats
- Requested CN codes · Submissions · Request status (waiting / partly / complete / expired).
Fill the 4-step wizard — on a desktop or a phone
/supplier-portalProduct → Emissions → Precursors → Review. Enter totals for the period; the portal computes SEE = total ÷ production and checks it against the typical range for your sector.




- Product: Select a requested CN code, the Product name; optionally the installation name, ID, country (ISO), coordinates and monitoring method. Next.
- Emissions: Production (tonnes), Direct emissions — total (tCO2e), Indirect emissions — total (tCO2e). Open Where do I find these numbers? for the source of each.
- Optional: build the totals from Production processes — fuel streams (qty, unit, EF) and electricity (MWh, grid EF, renewable %); Download template / Upload filled CSV.
- Precursors (optional): + Add precursor with mass, SEE direct / indirect and the country it was made in. No SEE? The official EU default for that origin applies.
- Review: check the live Direct · Indirect · Precursors · SEE, attach your verifier report, then Review & submit data.
- Interrupted? The form autosaves on this device — come back and continue, or Start over.
Every tab, mode and control here
- Step 1 · Product
- CN code, product name, installation (optional).
- Step 2 · Emissions
- Totals, Where do I find these numbers?, optional production processes (template download / CSV upload).
- Step 3 · Precursors
- Add precursor: mass, SEE direct/indirect, origin (default applies when empty).
- Step 4 · Review
- Live SEE with the typical-range check, evidence upload, Review & submit data.
- Your submissions
- What you sent; your buyer and their verifier may contact you with questions.
Iron & steel, aluminium and hydrogen: only direct emissions count for CBAM (Annex II). The portal tells you so on the form.
Totals for the period, not per tonne. A SEE far outside the typical range is flagged amber — check units (kg vs t) before you submit.
Open the supplier portal →Ask your own supplier — the figure links up the chain
/supplier-portalYour buyer’s CBAM figure includes your precursors. A figure from your own supplier, linked here, is stronger than one you type or the default.
- Your sub-supplier
- You
- Your EU buyer
- Their verifier
- EU registry
- In Precursors (or in your plant model) find Where your precursors come from.
- Press Ask your supplier for this figure: Company, Email, Language → Send request (or tick Send by email). You can also Show link and send it yourself.
- Each precursor shows its provenance: From your supplier (linked), Entered by you or Official EU default.
- When they submit, your SEE updates automatically. If your plant was already verified and the link changes it, it goes back to review.
Every tab, mode and control here
- Where your precursors come from
- Provenance per precursor and the request status.
- Ask your supplier for this figure
- Company, e-mail, language → Send request / Show link.
Every link is checked on save: same buyer account, matching CN heading, no loops, and an upstream figure above zero.
Open the supplier portal →Prefer to draw the plant? Model it in the portal
/supplier-portal/twin/[id]Instead of typing totals, draw your plant: fuels, electricity, process CO₂ and the materials you buy. The figure is calculated by the engine — the strongest evidence you can give.


- In the portal press Model my plant for CN … (or Open my plant model). Choose the Country where the plant is located first — defaults depend on it.
- Choose product: your sector, then the route that matches your equipment (25 routes in 6 sectors).
- Fill in amounts: the amber boxes — production first, then each amount, then its factor. Jump to first field takes you there.
- Review: “Everything checks out” when the SEE is within the typical range. Save as often as you like — your buyer sees nothing yet.
- Press Submit to my customer: a frozen snapshot with the engine SEE. Download the PDF report and the Audit bundle (ZIP) for your verifier.
Every tab, mode and control here
- ⚙ Process model
- The guided editor: stepper, sectors, amounts, review.
- ▦ Plant layout
- Your physical plant — see the Layout step.
- Reporting year · Country
- Fixed once verified (409 if you try to change it).
- PDF report · Audit bundle (ZIP)
- Evidence for you and your verifier.
- Submit to my customer
- Frozen, version-pinned snapshot; refused without the plant country.
Your own Balance Twin: cockpit, table editor, tour
/twin/twin/[id]/edit/twin/[id]/buildWith an account you keep a plant library: one model per installation, reused every period. The cockpit is the visual editor; the table editor is for fast bulk entry. Both save the same plant.
- Inputs
- Process
- Good
- Stack



- Model your plant → New plant model: plant name, CN code, country → Create and open the editor.
- Cockpit: click a step or flow on the canvas and edit it under Edit selection. The unit is constrained to what the engine expects; typical factors are one tap away and marked as defaults.
- Work the To do list until readiness is green, then Save. Guardrails refuse connections that break the regulation — on the canvas and again on save.
- ⊞ Table editor: every step and flow in rows with dropdowns; paste figures or ⤒ Upload CSV / Excel; Save current as lot; Compare (green power · zero-carbon fuel).
- Next period: carry forward — structure kept, quantities cleared, factors flagged to Confirm.
- ◎ Tour / ◎ Take a 60-second tour show it in a minute.
Every tab, mode and control here
- Instruments
- SEE gauge with band check, embedded, T1/T2/T3 provenance, readiness.
- Canvas + Edit selection
- Click to edit; drag to rearrange; guardrails.
- ◧ Twin / ▦ Layout / ✓ Compliance
- Model · physical plant · certificates and declaration.
- ⊞ Table editor
- Process model / Plant layout modes, stepper, paste, upload, lots, compare.
- Carry-forward
- Confirm N carried values.
- ◎ Tour
- Guided spotlight tours on both editors.
Draw the physical plant — with evidence on every object
/twin/[id]/edit/supplier-portal/twin/[id]The layout is a 2-D drawing of your equipment and areas on the same plant. An object links to a process step (and shows its engine SEE) or to a registered meter — it never copies a figure. The engine never reads the layout.


- Open ▦ Layout (cockpit) or ▦ Plant layout (portal / table editor).
- On an empty plan press ✨ Starter layout: a complete first layout from your process model (equipment, meters, stacks, areas). Or drag items from the palette — a tap adds at the centre; works with touch.
- Select an object: name, tag, catalogue fields, a link to a process step or a meter. ⇲ Auto-arrange tidies without changing data; ↶ ↷ undo / redo.
- Attach evidence to a saved object (PDF / JPEG / PNG): the server reads the photo’s EXIF and its distance to the installation — within 1 km counts as on site. Evidence is never deleted, only withdrawn with a reason.
- Change history lists every change (append-only, hash-chained). 🖨 Print PDF (or SVG, once the plan has objects) makes an A3 drawing with a title block and the asset register.
Every tab, mode and control here
- Palette
- Equipment catalogue (drag / tap / keyboard).
- ✨ Starter layout · ⇲ Auto-arrange · ↶ ↷
- Starter layout on an empty plan, then tidy; undo / redo (Ctrl+Z / Ctrl+Shift+Z).
- Objects · Change history
- Searchable objects; append-only history.
- Evidence
- Per object: upload, EXIF + distance, withdraw with reason.
- 🖨 Print PDF / SVG
- A3 drawing + title block (revision = change-log head) + asset register.
Turn a meter reading into locked, geo-checked evidence
/twin/[id]/edit/admin/metersFor a metered stream (gas, electricity…), the amount comes from a meter photo — not a typed number. The server checks where the photo was taken and computes the consumption.

- Register the meter once (Meter & asset registry): asset ID, serial, type, unit, multiplier, rollover and its GPS location → Add meter.
- On a metered flow open the meter evidence drawer: enter the dial start and end and attach the dial photo.
- The server stores the photo, reads its EXIF, scores the 50 m geo check against the meter’s location and computes the net consumption (rollover and multiplier included; a negative result is refused).
- Lock the reading: the flow becomes immutable. Every metered stream shows a lock and a green / red geo badge on the diagram.
Every tab, mode and control here
- Meter & asset registry (/admin/meters)
- Add a meter with its registered GPS.
- Meter evidence drawer
- Dial start / end, photo, geo verdict, lock.
Submit for review, freeze snapshots, download the evidence
/twin/[id]/edit/twin/[id]/analyticsSubmitting freezes a version-pinned snapshot your buyer and their verifier review. If a verified plant’s SEE changes later, it goes back to review automatically.


- Open 📄 Reports & submit. Pick the year (and quarter, or whole year).
- 1. Submit for review → Submit plant result: a frozen, version-pinned snapshot; the status becomes pending. Plausibility errors block it.
- 2. Reports: PDF report, Registry XML (enter the declarant name, EORI and country), Audit bundle — one ZIP with the PDF, XML, engine data, snapshot and evidence.
- Flight recorder: + Snapshot now freezes the period; What changed shows every engine-derived delta from the last snapshot to live.
- View analytics → / Analytics: save batches as lots and watch SEE per lot, variance and hotspots.
Every tab, mode and control here
- Reports & submit drawer
- Year / quarter · Submit plant result · PDF · Registry XML · Audit bundle.
- Flight recorder
- Snapshot now · read-only archive · What changed (last snapshot → live).
- Lot analytics
- Lots, SEE trend, variance, carbon hotspots, data-quality coverage.
Show buyers what your data saves them
/calculate/estimateYour figure is a selling point. Run the same engine your buyer runs: the official default (with its mark-up) against your own data, for a batch they buy.


- Open Your buyers’ cost (Calculator). Enter the CN code, country of origin and the tonnes a buyer imports.
- Calculate once with EU default values and once with Verified supplier value / Enter actual data — your SEE.
- Compare certificates and cost. Defaults carry a mark-up; verified actual data never does.
- No account? The free public check (
/estimate) shows what defaults cost on a product.
Every tab, mode and control here
- Calculator
- 1. The goods · 2. Emissions data · Calculate.
- Free estimate (/estimate)
- Public: defaults vs a typical plant.
Why the numbers can be trusted
Your buyer, their verifier and you look at the same number — computed once, by the same engine, from what you entered.
Numbers only from the engine
Every emission, certificate and euro figure is computed by one calculation engine. The AI assistant explains and guides, and is blocked from stating a figure — it routes you to the calculator.
Every role sees the same figure
Importer, supplier, verifier and the engine show the identical result — checked live: the Anatolia Light Metals aluminium plant is SEE 1.53 for all four. All 25 Annex I routes recompute byte-identically, in any entry order.
Official EU annexes, read cell by cell
Default values come from the Official Journal, extracted cell by cell (plain text extraction shifts rows). Example: Türkiye grey cement 1.36 + 0.08 = 1.44 tCO₂e/t; “NA” is Namibia (0.89), never “missing”.
Geo-grounded, locked meter photos
A meter reading carries its photo, the EXIF read by the server and a 50 m geo check against the meter’s registered location. Once locked, the flow it feeds cannot change.
Tamper-evident history
Filed declaration versions and every plant-layout change are hash-chained: each entry seals the one before it, and the check names the first altered entry. A filed version is never rewritten.
Reproducible audit bundle
One ZIP: report PDF, registry XML, engine data, the frozen snapshot with version pins, evidence files and a reproducibility check — today’s engine must give the same figures from the frozen plant.
Self-hosted, PII encrypted
The platform runs in your own cloud. Personal data is encrypted at rest with your own key, and supplier links are sealed, never stored in plain text.
It fails closed, never guesses
If official reference data cannot be read, the app answers “nothing was calculated” (503) instead of substituting a value. An unknown country or unit is a reported row error, never a best effort.
What we do not claim: the app prepares and validates your declaration XML — it does not file in the EU CBAM Registry for you, and it is not itself an accredited verifier or a certification. Forecast prices are assumptions, never certified figures.
Coverage checklist
Every screen, tab, mode and drawer of the supplier workflow, mapped to the section that explains it — 9 screens, 43 items, 100 % covered. The same list is checked by an automated browser test against the app.
Route + tab → guide section (43 items)
| Route | Tab / mode / control | Section | |
|---|---|---|---|
| /supplier-portal | Supplier Access (invitation key) | Open the invitation | ✓ |
| /supplier-portal | Language: English / 中文 | Open the invitation | ✓ |
| /supplier-portal | Header: request from, deadline, sign out | Open the invitation | ✓ |
| /supplier-portal | Stats: CN codes / submissions / status | Open the invitation | ✓ |
| /supplier-portal | Wizard step 1 · Product | 4-step wizard | ✓ |
| /supplier-portal | Wizard step 2 · Emissions (+ Where do I find these numbers?) | 4-step wizard | ✓ |
| /supplier-portal | Production processes: template download / CSV upload | 4-step wizard | ✓ |
| /supplier-portal | Wizard step 3 · Precursors | 4-step wizard | ✓ |
| /supplier-portal | Wizard step 4 · Review & submit data (+ evidence) | 4-step wizard | ✓ |
| /supplier-portal | Autosave: draft restored / Start over | 4-step wizard | ✓ |
| /supplier-portal | Your submissions | 4-step wizard | ✓ |
| /supplier-portal | Where your precursors come from (provenance) | Sub-suppliers | ✓ |
| /supplier-portal | Ask your supplier for this figure → Send request / Show link | Sub-suppliers | ✓ |
| /supplier-portal/twin/[id] | Link a purchased material to your supplier’s plant | Sub-suppliers | ✓ |
| /supplier-portal | Prefer to model your plant? → Model my plant for CN … | Model my plant | ✓ |
| /supplier-portal/twin/[id] | Reporting year / Country | Model my plant | ✓ |
| /supplier-portal/twin/[id] | Stepper: Choose product → Fill in amounts → Review → Done | Model my plant | ✓ |
| /supplier-portal/twin/[id] | ⚙ Process model / ▦ Plant layout | Model my plant | ✓ |
| /supplier-portal/twin/[id] | PDF report · Audit bundle (ZIP) | Model my plant | ✓ |
| /supplier-portal/twin/[id] | Submit to my customer | Model my plant | ✓ |
| /twin | New plant model → Create and open the editor | Your Balance Twin | ✓ |
| /twin/[id]/edit | Instruments (SEE, embedded, provenance, readiness) | Your Balance Twin | ✓ |
| /twin/[id]/edit | Canvas + To do + Edit selection + Save | Your Balance Twin | ✓ |
| /twin/[id]/edit | ◧ Twin / ✓ Compliance views | Your Balance Twin | ✓ |
| /twin/[id]/edit | ◎ Tour | Your Balance Twin | ✓ |
| /twin/[id]/build | Stepper Go → 1 → 2 → 3 → Done | Your Balance Twin | ✓ |
| /twin/[id]/build | Paste figures / Upload CSV / Excel | Your Balance Twin | ✓ |
| /twin/[id]/build | Save current as lot · Compare scenarios | Your Balance Twin | ✓ |
| /twin/[id]/build | Carry-forward: Confirm carried values | Your Balance Twin | ✓ |
| /twin/[id]/edit | ▦ Layout: palette (drag / tap) | Plant layout | ✓ |
| /twin/[id]/edit | ▦ Layout: ✨ Starter layout / ⇲ Auto-arrange / undo-redo | Plant layout | ✓ |
| /twin/[id]/edit | ▦ Layout: Objects / Change history | Plant layout | ✓ |
| /twin/[id]/edit | ▦ Layout: Evidence per object | Plant layout | ✓ |
| /twin/[id]/edit | ▦ Layout: 🖨 Print PDF / SVG | Plant layout | ✓ |
| /supplier-portal/twin/[id] | ▦ Plant layout (portal) | Plant layout | ✓ |
| /admin/meters | Add a meter (registry) | Meter evidence | ✓ |
| /twin/[id]/edit | Meter evidence drawer: photo, geo verdict, lock | Meter evidence | ✓ |
| /twin/[id]/edit | 📄 Reports & submit: Submit plant result | Reports & submit | ✓ |
| /twin/[id]/edit | 📄 Reports & submit: PDF / Registry XML / Audit bundle | Reports & submit | ✓ |
| /twin/[id]/edit | Flight recorder: + Snapshot now / What changed | Reports & submit | ✓ |
| /twin/[id]/analytics | Lot analytics | Reports & submit | ✓ |
| /calculate | Default vs your data (buyer’s cost) | Your buyers’ cost | ✓ |
| /estimate | Free public estimate | Your buyers’ cost | ✓ |