Germany’s Energy Efficiency Act (EnEfG) makes every data centre above the size threshold file an annual waste-heat report with BAFA, the federal energy-efficiency office. The next deadline is 31 March 2027. Ardor turns that obligation into a product: a fixed-price, BAFA-structured report, and a dataset that grows with every report filed.

I built it solo in April 2026. It runs at ardor.institute.

The problem

There are directories of European data centres. Cloudscene, Data Center Map, EUDCA. None include thermal profiles: how much heat, at what temperature, how reliably, and whether the operator would connect to a district heating network. You can find out where data centres are. You cannot find out what heat they produce.

The EnEfG filing contains exactly that data. An operator has to produce it anyway. A district heating utility needs it to decide whether to lay pipe. The same document serves both, but today it goes into a national archive nobody searches. France (Décret 2025-1382), the Netherlands (RVO/EED) and Ireland (CRU) are building the same supply side independently, in different formats and languages.

What I built

  • Heat map. A public Mapbox layer of data centres and district heating networks. Estimated profiles and report-backed profiles are labelled differently, because they are not the same thing.
  • Report wizard. Three steps. Pick a facility on the map and the wizard pre-fills; otherwise enter IT load, PUE, cooling type and location. Progress saves locally for seven days.
  • Calculation model. Annual recoverable heat derived from four inputs: IT load, PUE, cooling type and recovery efficiency. Conservative by default, with an override path for measured values. The method is published in full on the methodology page.
  • Checkout and delivery. Stripe checkout at €299 per site. A webhook queues the job, a Puppeteer service on Railway renders the PDF, the file lands in the operator’s dashboard. A 30-day read-only share link lets them send it to their consultant.
  • Regulatory layer. Bilingual DE/EN site, a glossary of 14 regulatory terms, guides on the 2027 obligation, and a consultation paper proposing a German register for tradable Waste Heat Certificates modelled on the guarantee-of-origin register for renewable electricity.

The decision that mattered

I started with a marketplace thesis: compliance is the acquisition channel, the marketplace is the product. Every filing adds a verified heat profile; buyers pay to search them.

Halfway through I rewrote the production site around a narrower claim: reporting first, market infrastructure later. A marketplace with an empty database helps nobody. Buyers need report-backed profiles, not estimates scraped from public data, and those only exist once operators have filed. So the sequence became: sell the report, publish the method, grow the verified dataset, and open buyer access in stages. The marketplace is now a 2027 pilot, gated on data quality.

That reordering is the most useful thing I learned building Ardor. The regulation does the hard part of a market: it forces supply to document itself. The product’s job is to be the cheapest, clearest way to comply, and to keep the data.

Where it stands

Ardor is on hold. The site at ardor.institute still shows where it got to: the reporting-first product, with 24 data centres and 10 heat networks on the map, and the buyer marketplace planned as a later pilot.

Stack: Next.js 16 · Supabase (auth, row-level security) · Stripe · Mapbox GL · Puppeteer on Railway · Vercel Blob · Resend · Claude for map proximity summaries

Background: Why I started thinking about waste heat