This post dives into what ought to be possible with sustainability reporting in 2025, and is intended to provide some context for ongoing discussions about how changes to disclosure laws pan out in Europe, now that there’s a push to strip out what are seen as the most socially useful bits of them. If you’re reading it in March, there’s a concrete thing you can do to improve the sorry state of affairs as well.
Setting the scene
Last year, at work we built some tooling that was designed to work with these new structured company sustainability reports that would start being published in 2025, as part of a project called carbon.txt.
Laws in Europe like the Corporate Sustainability Reporting Directive (the CSRD) essentially said that any organisation large enough for the law to apply to them had to publish new sustainability reports on their own website, and that they needed to follow a standard, the European Sustainability Reporting Standard (the ESRS).
If the reports are standardised, and machine readable (which was what the law is calling for) it ought to be trivial to programatically tell if a particular piece of data was disclosed by a company.
Of course, there are lots of ways to publish something on a website, and you need to know where on a website to look for a report if you want to work with these reports, so we’ve been working on a convention, carbon.txt to define how to declare where these disclosed reports are.
Anyway, the thrust of this post is about reading these kinds of reports, not knowing where they are, so I’ll focus on that.
You can read more about carbon.txt in this post on the Green Web Foundation blog.
A worked example with a dummy CSRD report
What do these reports look like anyway? Well, the law broadly says these reports need to be published with regular management reports anyway, and some of the examples used when communicating how to follow the law have a combined management report, that includes sustainability data required in the CSRD. I’ve attached a screenshot below, and a link to the example.

This data is human readable, but also structured, so you can link to specific facts about the report.
So if you cared about say… the share of renewable energy in use by a company, that is something you can now link directly to, like this screenshot.

Oh, that’s neat. How does that work?
We can link to this because embedded in the link to the report is a pointer to a specific fact about that company, referenced by this #f-fact-481 fragment in the hyperlink.
You can try this yourself, to link directly to the part of the dummy report like this:
Possible thanks to open source software, Arelle’s ixbrl viewer
I’m able to link directly to this fact, with an explanation of what Share of renewable sources in total energy consumption really means, because I used a piece of open source software called Arelle, and an open source plugin for it called ixbrl-viewer.
A brief unfortunate btu necessary segway into ESEF
When working with documents like this, you will come across this weird “ESEF file format” thing. It has been used for a few years now, and it sounds fancier than it is – it’s just a flavour of the kind of HTML many of us have been using for years, if not decades.

That enriched version is the one I’ve linked to above – I’ve taken a report in the ESEF file format, run it through Arelle with the ixbrl-viewer plugin, then put the resulting XHTML file online. This is sort of neat, but it’s not new. The US government’s financial regulator the SEC has been requiring this since 2018.
Real examples in the wild
The CSRD, and these standards are things people have worked on for years. Are there any companies marking up reports like this?
Sort of.
Recently, Maersk published their own annual management report for 2024, and it’s one of the new reports that follows the ESEF format mandated in the financial sector, and also includes content required in a CSRD report.
We know it’s really HTML, so if the ESEF version of the report is online, you can view it in browser now. I’ve put the file online for this post so we can refer to it.
Look at that ship! All the way to Zero!

Here’s the link to the ESEF formatted report. Warning, it’s a MASSIVE HTML file.
Oh cool, Does this mean we can link to stuff too like that nifty CSRD example above?
Yes, this is possible, but there is some nuance.
The Maersk report also contains some special tagging markup, so that if I want to, I can run it through the same process to create an enriched report, that lets me link directly to a view on that report showing specific things there too.
Let’s say I want to know how much money Maersk spent paying out dividends to shareholders, for example.
I can now link to that, and when I link to it, I can do so using the International Financial Reporting Standards’s idea of what paying dividends means. This is because I can see on the page, it’s referring to this concept with an ifrs-full:DividendsPaid
code when I load the page.
If you’re curious about how much money was paid out of the company, it’s about 1.3 billion US dollars – here’s the link directly to the the figure in the report, and here’s what it looks like in my browser:

Again, it’s a massive file, you’ll need to wait a while for the page to render.
I don’t need to wait for a big centralised database to be built and all kinds of clever data structures and indexes built into it to query for this information. It’s already in the report, and as long as I know where the report is, I can pull the data out.
Ok, can I do that for sustainability data?
You’d think so, right?
Let’s say we are looking for the same Share of renewable sources in total energy consumption info, but for the Maersk report. The same data is there but not in a tagged up form.
Look on page 95, and you’ll see the same Share of renewable sources in total energy consumption.
You’ll see that it jumped 50% in a single year (woohoo!), although this meant a jump from 2% to 3% (awwwww).
To be fair, we’re talking about shipping company, so it’s not surprising they use a lot of fossil fuels right now, but at least Maersk has a plan.
What can I link to right now?
Publishing the regular, non-enriched version of the Maersk report is small step forward from a PDF. I can now link directly to page 95, because browsers can natively link to some tags in HTML, and the ESEF report is essentially HTML.
So, here’s what that link directly to page 95, with that Share of renewable sources in total energy consumption visible looks like:

Every page has a link. So if I want to link to a bunch of information about the different ‘scopes’ of missions, I can do that too.
Here’s the link to the corresponding page

In fact, remember when I said, at least they have a plan? We can link directly to the plan that Maersk are sharing with investors and shareholders too.
Wait, you’re just linking to pages! Can’t we do better than that?
Yes we can.
In fact, here’s a video on Youtube of someone from EFRAG, the standards body developing these ESRS European Sustainability Reporting Standards as they tag up that exact same Performance Data page from that report:

Youtube lets you link to parts of videos, so we can link directly to the part of the video showing that page being marked up.
Can Maersk do this too for their own report, like we can see some other guy do for Maersk’s report?
I don’t work for Maersk, but I think so, and I’ll try to explain why.
If you look at the source of that original ESEF Maersk report, you can see a comment in the code saying that looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by ParsePort -->
What is Parseport?
Parseport is software you can use to tag up reports in machine readable formats like the iXBRL, just like that video of that guy on youtube we saw.
They also appear to support the ESRS standards already. I mean, it’s on their web page right below:

Linking this back to that enriched report example we opened this post with
If you look closer at the logo in the screenshot above, you’ll see that Parseport, has the subtitle “a Workiva company”.
Workiva is pretty much either the market leader, or one of the leaders in ESG reporting tools, and that nifty enriched, link-to-specific-facts version of the sustainability report we first saw when you started reading this post is open source software published by Workiva.
So, if:
- Maersk is already using Workiva’s Parseport to publish their regular reports, and
- Parseport, the software they are using already supports ESRS as a sustainability reporting standard, and
- That youtube video literally shows a guy tagging up that Maersk report in a matter of hours, when he doesn’t even work there*
…then it seems like publishing a version of this report with the same sustainability information included ought to be doable too.
If it isn’t, I’d love to know why – the tagging is not the hard part of preparing a report.
* to be fair, that guy in question is Richard Bössen, who is an expert in the reporting standards.
Why should anyone care?
In addition to being sort of cool, being able to link directly to disclosures lets us publicly answer questions, that have public interest properties. Like how much money did Microsoft, repeat sponsor of COP climate conferences, make using AI to accelerate oil and gas production in 2024? If AI is being used
I think there are datapoints in the ESEF that help us answer questions like this, and I think this would result in more informed investment decisions.
As it stands, a bunch of sustainabilty disclosure laws like the CSRD are being watered down based on the assumption that tagging up reporting is just too much work, and reporting this data is so hard that it’ll make the entire economy much less effective and competitive.
As as result, the proposals basically say that it’s not reasonable to expect these kind of machine-readable creation of reports for YEARS.
Here’s what the proposed changes to laws around company disclosure currently say:
In addition to the requirements set out in paragraph 5 and 6, large undertakings and parent undertakings of a large group shall mark up their disclosures in the ESRS sustainability statements for financial years beginning on or after 1 January 202X+4 for PIEs (Public Interest Entities) and 202X+5 for non-PIEs [four years after entry into force of the initial digital requirements],
So as I understand it, the current proposed date for laws for digital requirements were 2027. So we’re looking at having to wait until the early 2030s for what is totally doable right now, for a law that was intended to help the European Union hit its 2030 climate goals.
This is such bullshit.
If you agree, you can respond to the consultation here, saying so, using the helpful answers provided by the non profit organisation Wikirate.
It’s my birthday this weekend, it’s not particularly fun, but this what I’ll be spending some of the time doing, because it’s important.
I’d be grateful if you joined me.
If you’re curious about any of this and you’d like get in touch, I’m reachable via my work, or on social media like Mastodon, Bluesky or LinkedIn.
Update: From what I can tell, if you have one of these fancy ESEF reports and it includes standardised data following the ESRS, many, if not all the portals that large companies must submit data to by April 30th to follow the European Transparency Directive will reject the report. So, it looks like some companies will be making an updated report available that does include ESRS data. They will just do so after the April 30th deadline.