The problem
New European obligations (CSRD, CBAM, taxonomy) require a growing number of companies to publish auditable emissions data. Most tools on the market produce an aggregate figure from manual entry: impressive in a meeting, indefensible in front of an auditor asking "where does this number come from?".
Karbonic starts from the opposite end: it ingests the documents finance and procurement teams already handle — invoices, supplier records, cloud bills, contracts — and builds the assessment from those artefacts, preserving the link between every emission line and its source.
What I built
AI document ingestion
automatic extraction and classification of invoice lines via OCR and language models, with human review by exception.
Carbon ledger
a chart of emission accounts, traceable entries, and base-year recalculation when scope changes.
Regulatory engines
production of CBAM, CSRD, BEGES and CDP dossiers, with validation against the formats authorities expect.
Audit risk scoring
every item is rated on the strength of its supporting evidence, focusing human effort where it matters.
Connectors
accounting software and cloud providers, feeding data in without re-entry.
Compliance copilot
an assistant answering regulatory questions grounded in the company's own data.
SaaS foundation
multi-organisation, team invitations, enterprise SSO, subscriptions, webhooks, realtime.
Architecture & technical decisions
The founding constraint is traceability. The application is therefore built as an accounting ledger rather than a calculator: values are never overwritten, entries are appended. That is what makes it possible, months later, to replay a reporting period identically and explain a variance.
The AI provider is locked to a European model, with a technical guard preventing any out-of-region call. For a product sold to European companies for compliance purposes, sending their invoices to a non-European jurisdiction would be a commercial contradiction as much as a regulatory one.
Document extraction combines OCR and a multimodal model: invoices arrive as native PDFs, as scans, sometimes as a photo taken at an angle. The result is never taken as given — it feeds a validation-by-exception flow where only uncertain cases reach a human.
The interface is a server-driven single-page application (Inertia), which gives SPA ergonomics without building and maintaining a parallel public API — a decisive time saving for a product developed solo.
Technical challenges
Regulations that do not fully exist yet. Declaration formats change year to year: each regulatory engine is isolated and versioned, so a new revision never invalidates already-published periods.
Trusting AI without trusting it blindly. Every extraction carries a confidence level and stays attached to its source; the product is designed so errors are visible and correctable, not hidden.
Data residency. European storage, a region guard on AI calls, and malware scanning of uploaded files.
Historical recalculation. When a company changes scope or emission factors, history must be recalculated without losing published figures — two truths coexist and have to be managed explicitly.
Document volume. Ingestion runs through asynchronous queues: dropping several hundred invoices must never block the interface.