how to use ai with datev

How to Use AI with DATEV for Financial Analysis

Anthony Barbey

Anthony Barbey

· 9 min read

Share

How to Use AI with DATEV for Financial Analysis


If you run finance at a German company, you already know the strange position DATEV puts you in. Your books are complete, correct, and prepared to a standard most countries would envy. They are also, in practice, somewhere else. Your Steuerberater holds them. You receive them. And what you receive is a posting batch, not a report you can plan on.

So the question is not whether AI can read your DATEV data. It can. The question is what you have to fix first, because DATEV breaks the naive AI workflow in a specific way that Xero or Stripe do not. This article covers what works today with nothing but an export, where the real obstacle sits, and why the lack of a connector matters far less than it sounds.

One thing up front, because it shapes everything below: there is no native DATEV connector in most modern finance tools, including ours. That matters less than it used to. Between a CSV upload and an MCP connection, an agent can now read your DATEV export and write straight into a structured model without anyone building a bespoke integration first. The file handover stays manual. Everything after it does not.


The Three Walls Between DATEV and a Usable Model

You do not own the system. In most German setups the tax advisor runs DATEV and the company consumes the output. You cannot add an account on a whim, restructure the chart mid-year, or wire up an API key over lunch. Any workflow that assumes you control the source will fail on contact.

The export is a ledger, not a statement. What comes out of DATEV, typically an EXTF-format CSV posting batch, is a list of entries: date, amount, debit account, credit account, a reference, sometimes a booking text. It is a faithful record of what happened. It is not a P&L, and it is not grouped into anything you would put in front of an investor.

The account numbers carry all the meaning. DATEV runs on standardized charts of accounts, SKR03 and SKR04 being the common ones. The intelligence is in the numbering. An account number tells a German accountant exactly what a line is. It tells an AI model almost nothing unless you say so.

That third wall is the one that matters, and the rest of this article is mostly about it.


What Works Today With Nothing But an Export

You can start this afternoon, without an integration and without asking your Steuerberater for anything new.

Ask for the posting batch and the Summen- und Saldenliste for the period you care about. The SuSa is the useful one, because it is already aggregated by account with opening and closing balances, which saves Claude a great deal of arithmetic and you a great deal of token spend.

Then attach both to Claude and ask a real question. Not "analyze this", which produces a summary you already knew, but something with a shape to it:

Here is my SuSa for the last 24 months on SKR04. Build a monthly P&L grouped into revenue, material costs, personnel, and other operating expenses. Show me where the operating margin moved and which accounts drove it.

This works better than people expect. Claude handles the arithmetic reliably, spots the accounts that moved, and explains the swing in plain language. For understanding a year that already happened, you are genuinely done here.

The trouble starts at the second month.


The Chart of Accounts Is the Whole Problem

Here is the failure that catches everyone, and it is specific to DATEV.

Ask Claude to group SKR04 accounts into a P&L, and it will infer the mapping from the account numbers and the booking texts. It will get most of it right. It will also make judgment calls: where to put a particular Sonstige betriebliche Aufwendungen account, whether a given personnel account belongs in COGS or opex for your business, how to handle the accounts your advisor opened for a one-off situation two years ago.

Those judgment calls are reasonable. They are also not stable. Run it again next month, on a new export, in a new session, and some of them come out differently. Your March gross margin and your April gross margin are now computed on slightly different definitions, and nothing in the output tells you that.

This is worse in DATEV than in most systems, for two reasons. Standardized charts are wide, so there are many accounts and many plausible groupings. And because your advisor maintains the chart rather than you, new accounts appear without warning, and a new account is exactly where an AI is most likely to guess.

The fix is not a better prompt. You can write a very long prompt that pins down every mapping, and it will work, until you have to paste it again next month and keep it in sync by hand. The fix is to put the mapping somewhere that persists.


Making the Mapping Survive the Session

What you need is unglamorous and it is the entire job: a fixed, written mapping from your DATEV accounts to your reporting lines, stored outside the chat, applied identically every period.

Three properties make it work.

It is explicit. Account 6300 goes to this line, every time, because you decided so, not because a model inferred it from the account name. When your advisor opens a new account, it lands in a list of unmapped accounts and asks you, rather than being quietly absorbed.

It is structural, not just a lookup. The mapping feeds a model where the relationships between lines are defined: revenue minus material costs gives you gross margin, gross margin minus personnel and other opex gives you operating result. Change an assumption and the linked figures move. A flat grouping cannot do that, which is why a spreadsheet built from an export dies the moment anyone asks a what-if question.

It travels with the model. Your conventions, whether you report on SKR03 or SKR04, whether costs are positive or negative, whether amounts are in units or thousands, are written down alongside the structure. This is exactly what a FINANCE.md is for: one file, versioned, that any agent reads before touching your numbers, so you stop re-explaining your own chart of accounts every session.

Do this and the monthly workflow collapses to something short. Drop in the new SuSa, the mapping applies, the actuals land next to your plan, and Claude reforecasts the rest of the year with the full context of what your accounts actually mean. That is the difference between AI reading your books and AI keeping your model current.


No Connector Needed, and Why That Changed

The usual objection at this point is that none of this is realistic without a DATEV integration, and that nobody has built one. The first half is now wrong, and it is worth understanding why, because it changed recently.

CSV upload plus MCP replaces most of what a connector did. A connector's job was to move data from A to B on a schedule. Two things now cover most of that. Your DATEV export is a CSV, and modern finance tools ingest CSV directly, with a mapping you define once rather than a parser someone wrote for you. And MCP lets Claude operate the modelling tool itself: it reads the file, applies your stored mapping, writes the actuals into the model, and reforecasts, all in one conversation. You are not moving data between two systems by hand, you are asking an agent to do a job it can see end to end.

What that leaves manual is the file handover, not the work. You still ask your Steuerberater for the monthly SuSa. That is a five-minute email, and agreeing a fixed delivery date once removes it as a recurring cost. Everything downstream of that file, which is where the hours actually went, is automated.

A native connector would still be better, and does not exist yet. Be clear-eyed about it: a live sync would remove the handover entirely and let you pull mid-month. That is not available today, from us or anyone else. What is available is a workflow where the absence of a connector costs you one email a month instead of a rebuilt spreadsheet.

Your books stay your books. Nothing here writes back to DATEV, and nothing should. The AI layer is a modelling surface on top of your accounting, not a replacement for it. Your advisor keeps the source of truth, you get something you can plan on.


The Takeaway

DATEV gives you unusually clean data in an unusually unhelpful shape, and hands it to you through someone else. That combination is why the standard "export it and ask Claude" advice underdelivers here while it works fine elsewhere.

The unlock is not a smarter prompt or a bigger model. It is deciding your account mapping once, writing it down where it persists, and letting the AI work on a structure instead of re-deriving your chart of accounts from scratch every month. Do that and the same export that gave you a one-off summary starts giving you a P&L you can sign, a plan you can compare against, and a reforecast that holds.

If you want to see what a persistent modelling layer looks like, Layerz is built for exactly this: import your DATEV CSV, fix the mapping once, and let Claude drive the model through MCP from there. There is no native DATEV connector, and we will say so plainly until there is. In practice that costs you one email to your Steuerberater a month, and nothing else.


Keep Reading

Anthony Barbey

Anthony Barbey · Founder, Layerz

Anthony spent his career in finance and consulting, close to the modeling workflows of M&A, transactions, and advisory. He now builds Layerz, the finance workspace that keeps Claude in the context of your model so it doesn’t drift, forget between sessions, or burn tokens on grids.

Related articles

Ready to build models that are defensible by design?

Layerz separates model structure from data so every number is traceable.

Explore Layerz