BlogAnton Ignashev

Month-End Close in an Accounting Office: What an AI Agent Prepares Before the 15th, and What It Must Not Touch

Month-End Close in an Accounting Office: What an AI Agent Prepares Before the 15th, and What It Must Not Touch

Ask ten accounting offices to describe month-end and you get the same story. The first week is calm. Then everything lands at once, and by the 24th somebody is sitting there at nine in the evening checking whether a client's VAT registration is still active.

The usual diagnosis is workload. Too many clients, not enough people. I think that is wrong. What you have is a distribution problem: the work is not too big for the month, it just arrives in the wrong week.

The difference matters, because the two have different fixes. You solve a workload problem by hiring. You solve a distribution problem by moving work earlier — and moving work earlier is the one thing software is genuinely good at.

The matrix that never moves

Three dates carry most of the weight in a Polish practice:

  • The 15th — ZUS contributions for payers that are legal entities: limited companies, joint-stocks, foundations, cooperatives.
  • The 20th — ZUS for everyone else, including sole traders and partnerships, plus PIT advances on payroll, PIT and CIT advances on business income, and lump-sum tax.
  • The 25th — the JPK_V7 filing and the VAT payment, along with the VAT-UE summary. Quarterly filers still send the records monthly.

Clients on card tax add the 7th. Check your own mix rather than taking my summary as gospel — a portfolio built on limited companies has a completely different centre of gravity than one built on sole traders.

Now stop looking at the dates and look at the shape. Nothing is due between the 26th and the 6th. Almost everything is due between the 15th and the 25th. Your team's capacity, meanwhile, is flat: the same people, the same hours, every week of the month. So you are running a system where demand triples against fixed supply, on a schedule published years in advance.

Where the hours actually go

If you had asked me to guess before I measured, I would have said posting. Wrong. In the offices I have worked with, the compressed window fills up with four things, and only one of them is bookkeeping.

Chasing missing documents. Someone builds a mental list of who has not sent what, writes the messages, then writes them again on the 22nd. It is not skilled work. It gets done by skilled people because they are the only ones who know what is missing.

Matching payments to invoices. A bank statement of 300 lines against a set of open items. Most reconcile instantly. A handful do not — partial payments, one transfer covering four invoices, a payment with no reference at all.

The exception queue. Whatever did not fit. This is the real work and it deserves the good hours. It never gets them, because it surfaces on the 24th.

The checklist itself. Is every client actually finished? In most offices that question lives in a spreadsheet trusted about as far as the person who last updated it.

Do the arithmetic on a mid-sized practice. 40 clients averaging 60 documents a month is 2,400 documents. At three minutes of human handling each — post-KSeF, so no typing, just coding, matching and deciding — that is 120 hours. Squeeze 70% of it into ten days and you have manufactured overtime out of a workload that would be perfectly comfortable spread evenly.

What an agent can prepare before the 15th

Everything below runs as drafts inside your system, with a person approving. None of it is a decision. All of it is preparation that currently sits waiting for the crunch.

Fetch purchase invoices daily instead of monthly. Since the mandate, invoices sit in KSeF the moment the seller issues them. There is no reason your copy should show up three weeks later. Automated KSeF retrieval turns a monthly collection exercise into a background process, and that alone drags the arrival curve to the left.

Match the bank statement as it comes in. Statement reconciliation is the most mechanical part of the close and the easiest to hand over, because the result is checkable: either the amounts tie out or they do not. The win is not the matching itself. It is that the unmatched remainder appears on the 6th instead of the 24th.

Generate the missing-document list on the 5th and again on the 10th. Per client, derived from what actually arrived versus what usually arrives — recurring suppliers, the invoices that show up every month, the ones that quietly stopped. Chasing gets much easier when the list writes itself and the request goes out two weeks before anyone is under pressure.

Run contractor checks in the background. VAT status, the white list, VIES for intra-community transactions. Exactly the sort of check an agent does well: repetitive, rule-based, and miserable to do at 21:00 on the 24th, which is precisely when it currently happens.

Populate the exception queue early. The agent does not resolve exceptions. It flags, on the 6th, the document that will need a human on the 24th — while there is still time to ask the client and get an answer back.

Keep a live per-client close status. Documents received against expected, unmatched items, open exceptions, ready or not ready. Not a report someone compiles on Friday afternoon. A view that is already true.

Same pattern throughout: the agent does not shorten the work, it moves it. Ten days of enforced idleness at the start of the month turn into the days when 60% of the close gets prepared.

What it must not touch

Some of this is regulatory, some of it is judgment. The line is not blurry.

  • Filing. A JPK_V7 goes out under a person's signature. An agent that submits filings is a liability with a subscription attached.
  • Classification decisions. Where a cost belongs when the answer is arguable is exactly where a model's confident tone does the most damage. Borderline cases go to the exception queue. Always.
  • Accepting an unmatched payment. If it does not reconcile, it stays open. A system that quietly forces a match to keep its own numbers looking clean is worse than no system.
  • Declaring the month closed. A human says that.

There is a fifth item, not a technical rule, and it matters more than the other four. An agent will not fix a client who photographs receipts on the 24th. That is a contract problem — a document deadline, and a consequence when it is missed. Automating around a client's chaos means paying every month for a conversation you could have once.

The one number worth tracking

Not your closing date. Definitely not hours worked. Track the share of each month's documents that are in your system by the 10th.

It is the leading indicator for everything else. At 40%, the remaining 60% is being processed under deadline pressure by definition, and no amount of internal process improvement survives that. Above 80%, the crunch stops being structural and turns into a normal week with a few hard cases in it.

You can measure this before you buy anything. Take one real month, compare document receipt dates against your own posting dates, and produce a single percentage. That number tells you whether you have an automation problem, a client-discipline problem, or neither — and it costs an afternoon. If you want the fuller version of the same exercise, the same measurement discipline sits behind an AI readiness audit, which scores this alongside your data, systems and people.

When the answer is to do nothing

Two cases, both common.

If your practice handles fewer than roughly 400 documents a month, the arithmetic does not work. The subscription costs more than the hours it saves. I have published the full calculation rather than asking you to take my word for it, and the threshold sits near 700 documents a month for a twelve-month payback.

And if your measurement points at three specific clients rather than a general pattern, fix those three clients. New deadlines, a different price, or an ending relationship. That is a conversation, not a project, and it will do more for your September than any software I could sell you.

If it does apply

Start with one flow and one month. Purchase invoices from KSeF, or bank reconciliation — whichever your team names first when you ask them what they would hand over tomorrow. Run it in draft mode alongside the current process for a full cycle, then compare the measured straight-through rate against the by-the-10th percentage you recorded beforehand.

That is what a pilot is for, and it is deliberately the cheapest thing I sell, because it should prove itself before anyone discusses anything larger. If it does not move the by-the-10th number, it failed. You will know that within one close, not after a year of subscription.

Book a 30-minute call →

Let’s talk about your project

Free 30-minute consultation. We’ll figure out if and how I can help.

Book a Free 30-Minute Call

Select a date

August 2026
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Back to Blog

Related Posts

Comarch Optima API: a developer's guide to integrating Optima
Blog

Comarch Optima API: a developer's guide to integrating Optima

The question is usually whether Optima has an API. The answer is that it has five different things by that name, each with a different licence, a different owner, and a different phone number to call when it stops working.

Read more
Which AI agent to build first against enova365
Blog

Which AI agent to build first against enova365

The most valuable agent is almost always the wrong first build. Not because it cannot be built, but because its first honest output arrives in week ten, and nothing holds a room's attention that long. Four questions that screen the candidates, and one number that predicts whether the project lands.

Read more
The enova365 service account — what read-only actually means
Blog

The enova365 service account — what read-only actually means

The integration gets the Administrator account, because scoping the rights would take an afternoon and nobody has the afternoon. Then it turns out the strongest read-only boundary in enova365 is not the permission tree at all. It is the licence.

Read more