All posts

MIS Report Automation: Three Layers, and Only One of Them Is Genuinely Automatable

The monthly MIS pack looks like the most automatable job in the back office. Same report, same systems, every month. It resists automation anyway, because three jobs with completely different automation profiles get assembled into one file.

··19 min read
MIS Report Automation: Three Layers, and Only One of Them Is Genuinely Automatable

MIS report automation is making a recurring management report assemble itself: pulling the figures out of the source systems on a fixed date, applying the rules that decide what gets included and where each entity rolls up, and producing the formatted pack that management reads. It is not a dashboard, and building one does not replace the report. Most advice on this term goes straight to a BI tool, which quietly swaps the question "how do I stop rebuilding this every month" for "how do I display this".

Ask any MIS executive which part of the pack eats the three days. It is almost never the part a dashboard would have fixed.

What MIS report automation actually covers

Management reporting goes by several names: MIS pack, management accounts, the monthly reporting pack, the board file. On a fixed date, somebody produces a document telling management what happened.

Three properties make it a report rather than a dashboard, and each matters for automation.

It runs on a cadence against a hard close deadline. Nobody refreshes an MIS pack on a Tuesday out of curiosity, and being late on working day three is a visible failure in a way a stale dashboard never is.

It has a layout that is not negotiable: a group template with named tabs, a fixed order of business units, a summary page that fits on one screen because that is all the managing director reads.

And it carries written explanation next to the variance column, which is why it gets read. The term attracts bad advice because the first property looks like scheduling, the second looks like formatting, and the third gets ignored.


The three layers inside one report

Open the finished workbook and it looks like one artefact. It is three, stacked, built by different processes at different times.

Layer one: getting the data

Log into the ERP. Run the trial balance. Export it. Repeat for the other two entities. Pull the sales register from the commercial system, the headcount file from HR, the accrual schedule off the shared drive. Paste each into its staging tab. Check the totals tie.

Genuinely automatable, and nobody argues otherwise. Deterministic, identical every month, and most of the elapsed hours. It is also the layer every vendor demo shows, which is why the demos land so well and the projects land so poorly.

Layer two: applying the rules

Here is where the report stops being a data problem.

The rules are what the pack encodes about what counts. Cost centres excluded from operating margin because they belong to a business being wound down. An entity that rolls up under the region for statutory purposes and under the product line for management reporting, so it appears twice and nets once. A reclassification agreed two quarters ago, still applied through a manual journal somebody remembers to post. Three SKUs treated as exceptions because they go to a strategic account at cost.

None of it is written down. It exists as a nested formula, a hardcoded list of codes inside a SUMIFS, a mapping tab one person maintains, and a habit. The same pattern runs through every long-lived workbook, which is the argument in Excel automation, one level up.

Two things make this layer hard. The rules are undocumented, so automating them means getting a person to state out loud decisions they have applied by reflex for six years. And they change when the business changes: an acquisition adds an entity, a restructure moves a cost centre.

Layer two is automatable, just not until it is explicit, and no project plan allocates enough time for that.

The same monthly pack shown as three stacked layers: a data layer pulling exports from ERP, sales and HR systems, a rules layer holding exclusions, entity roll-ups and SKU exceptions, and a commentary layer where a person writes why the variance happened.
The same monthly pack shown as three stacked layers: a data layer pulling exports from ERP, sales and HR systems, a rules layer holding exclusions, entity roll-ups and SKU exceptions, and a commentary layer where a person writes why the variance happened.

Layer three: explaining the numbers

The revenue line is down eleven percent against budget. The report has to say why.

It was down because a large customer deferred a shipment into the next period, which the sales director mentioned on a call on the twenty-eighth, and it reverses next month. No system holds that. It comes from a person who spent part of the month talking to people whose knowledge never enters a database.

A number nobody explains is a number nobody uses.

So the honest recommendation: automate layer one completely, make layer two explicit so it can be automated, and leave layer three with the person whose job it is. They get the assembled numbers an hour after close instead of three days after.

Most attempts fail because they treat all three as one job. The scope gets written as if the whole thing were layer one, the undocumented rules surface in week three, and the project renegotiates itself down to a refresh button on a data tab. That refresh button is worth having. It is not what anyone signed off.


Why the template moves and what it breaks

The second problem takes a paragraph to describe and it kills more automations than layer two does.

Management asks a new question. They want the regional split broken out. Somebody inserts a column in the summary tab. Fifteen seconds.

Every downstream reference has moved. Formulas inside the workbook survive because Excel adjusts them. The automation does not, because it was written against positions: read cell F14, write the total to row 22, copy the block from D through K. Column F is column G now.

It does not error, which is the whole problem. It produces a figure of the right shape and the right order of magnitude, and wrong, and that figure goes to management. A manual process has a person who feels something is off. Automation removes the person and, unless somebody designed for it, removes the noticing.

The defence gets decided on day one and it is boring: address data by meaning, never by position. Find the column called Cost Centre rather than reading column D. Power Query does this natively, well written Python does it, recorded macros almost never do.


The five ways people automate MIS reporting

Doing it by hand in Excel, faster

What almost everyone does, and much of it is rational. A pack rebuilt with Power Query connections, named ranges instead of hardcoded addresses and a clean split between staging and presentation tabs goes from a three-day job to a half-day job. No code, no project, nothing installed. It stops at the parts outside the file: if a person has to click through three login screens to get the exports, Excel cannot help, and that is often the largest single block of time.

Best fit: one preparer, a stable template, sources that arrive without anyone fetching them.

BI tools

Power BI, Tableau and Looker are good products and this section will not pretend otherwise.

If your finance data is warehoused, modelled, refreshed nightly and reasonably clean, and management wants to look at performance whenever they choose, a BI tool is the right answer and you should go build it. The semantic layer solves the definitional problem properly, drill-down answers the follow-up question before it gets asked, and row level security handles who sees which entity. Nothing else here is close.

Three places they fit badly, and these are the conditions most MIS packs are produced under.

The source is a monthly export, not a warehouse. A file a person downloads, whose column order shifts when the source system gets upgraded, whose entity names are spelled differently this quarter. The refresh fails and somebody opens the query editor. The assumption underneath the category is that the data is already fit to model.

The rules live in a workbook. Rebuilding layer two in DAX or LookML is a real project, it needs someone who knows both the tool and the business, and it leaves a second copy of the rules that drifts from the workbook's. Teams that try it maintain both.

The output has to be a document. Nobody says this one out loud. A dashboard has no natural place for a paragraph explaining a variance, so what happens everywhere is that somebody screenshots it into a slide deck and types the commentary underneath, monthly, by hand. The tool automated the calculation and handed the last mile back.

Best fit: warehoused data, an audience that wants to explore, output that can be a screen.

Python

pandas does in a script what takes a day of formulas, and applies rules that would be unreadable as nested conditionals. For volume or complex joins it is the strongest option here.

The traps are the ones in Excel automation and they bite harder, because MIS output is formatted output. openpyxl does not calculate formulas. pandas discards formatting entirely, which matters when the deliverable is a group template nobody may change. And pandas and Excel disagree on rounding and on blanks, so a rebuilt pack can differ from the one it replaced by amounts that are small, unexplainable and fatal.

The ceiling is not technical. Python needs someone to write it, run it, schedule it, and answer the phone when it fails at six in the morning on working day three.

Best fit: volume, complex joins, a developer who owns it afterwards.

RPA through a CoE

RPA is good at the parts either side of the workbook, which is where MIS reporting bleeds time. Log into the ERP, set the period, run the report, wait, download, move the file, refresh the pack, save, attach, send. An enterprise tool runs that chain with scheduling, proper credential handling, an audit trail and an exception queue somebody watches. Dismissing RPA here is a tell that the writer never ran one in production.

The ceiling is economics. A CoE developer trusted with a production finance process is expensive, and the queue is prioritised by volume and criticality, correctly. A monthly report costing one person three days does not clear that bar against a process running ten thousand transactions a day. That is the last mile, structural rather than a failure of judgment.

RPA also drives the pack without understanding it, so layer two moves into a specification document and goes stale. Six months on, the bot applies an exclusion finance dropped in the spring, and the number still looks plausible.

Best fit: high volume, cross system, funded, owned by a CoE afterwards.

GPA

Guerrilla Process Automation starts from the position that the pack already contains its own specification, and the person who runs it every month can confirm it. That splits the problem along the three layers instead of against them.

The fetching and assembling gets recorded by the person doing it now: I² Recorder watches the real sequence of logging in, setting parameters, downloading and placing files, and builds from what it observed rather than from a specification meeting. The rules get read out of the workbook, which is what Debrief is for. It opens the file, works out what the formulas, lookups, mapping tabs and conditional formats are enforcing, then asks about what it cannot infer while the preparer answers by pointing at the cell. Layer three stays with the person, by design.

The suite is pre-launch. I² Recorder ships first and Debrief follows, so this is what is being built, not something to download this afternoon. It also does not remove the need for a human to confirm the rules. It changes who confirms them: the person who has been applying them for years, rather than an analyst running workshops.

Best fit: a recurring pack, real logic in the workbook, no developer available, too small to ever get funded.


How the approaches compare

Excel by handBI toolsPythonRPA via the CoEGPA
Who builds itThe preparerBI analystDeveloperRPA developer, via the queueThe person who runs the report
Time to something workingDaysWeeks to monthsDays to weeksWeeks, after the queueHours to days
Layer 1, the dataManualAutomated if warehousedAutomatedAutomated, logins includedRecorded from how you do it
Layer 2, the rulesBuried in formulasRebuilt in the model, a copy that driftsIn code, documented if someone botheredIn the bot, plus a spec that goes staleRead out of the workbook, stated
Layer 3, the commentaryThe preparer writes itNo place for it, moves to a deckNot attemptedNot attemptedStays with the preparer
An inserted columnAdjusted by handModel and visuals need reworkSurvives if keyed to headersFixed by a developer, via a ticketAdapts, or flags
What comes outThe formatted packA dashboardA file, formatting is extraThe formatted packThe formatted pack
CostAlready paid forLicences plus buildDeveloper timeLicence plus developer plus CoE capacitySubscription, no developer
Best fitStable template, one preparerWarehoused data, exploringVolume, complex joinsHigh volume, cross system, fundedRecurring, unfunded, logic in the pack

The row that decides most outcomes is layer two. Every option here produces a correct pack in month one. The difference shows up in month fourteen, after a restructure has moved two cost centres and nobody remembers where the mapping was written down.


What this looks like in real work

The MIS executive on working day two

Six exports, three systems, two logins that expire, a staging tab per source. Most of the day goes on fetching and pasting, none of which needs any knowledge of the business. Reading the variances and working out which warrant a call gets whatever is left, which on a bad month is an hour. Automating layer one moves the day to the half of the job only this person can do.

The acquisition that arrives mid-year

A new entity lands, its chart of accounts does not match, a mapping tab gets extended, and for two quarters a manual journal reclassifies three cost centres. All layer two, all decided in a meeting, none written down. Whatever automation exists learns them or starts being wrong.

The pack that has three audiences

The same figures go to the managing director as a one-page summary, to the operations heads with full line detail, and into a group template head office will not let anyone modify. One calculation, three formats, and formatting is what a pandas rebuild throws away. Getting figures to agree across sources before any of this starts is bank reconciliation automation.

The section that outlived its question

One part of the pack answers a question a director asked in 2023, who has since left. Forty minutes a month, and nobody reads it. The best automation decision available is deletion, which is also the cheapest thing in back office automation.


How to decide what to automate first

Six questions, in order. The first you answer honestly usually settles it.

1. Which layer is eating the time? Time one month properly: fetching and pasting, applying rules, writing commentary. If layer one is over half the elapsed hours, that is your project and it is the easy one.

2. Can the preparer state the rules out loud in under twenty minutes? If yes, any approach here works and you should choose on cost and maintenance. If no, that conversation is the project, and picking a tool first is how three months disappear.

3. Is the source a system or a file? If a person logs in and downloads, you need something that can drive an application, which rules out BI and Power Query on their own.

4. Does the output have to be a document? If a fixed template with written commentary is non-negotiable, be honest that a dashboard solves the calculation and leaves the assembly manual.

5. How often does the template change? If a column moves more than twice a year, the question is not which tool but whether it addresses data by meaning.

6. Would this survive a business case? If it clears the bar, take it to the CoE and get it built properly. If you already know it will not, stop resubmitting and pick from the approaches that need no funding. RPA vs no-code vs GPA sets that choice out in full.


Frequently asked questions

What is MIS report automation?

Making a recurring management report assemble itself: pulling the figures out of the source systems on a fixed date, applying the rules that decide what is included and where each entity rolls up, and producing the formatted pack management reads.

Can a monthly MIS report be fully automated?

The data collection can. The rules can, once someone writes them down. The commentary explaining why a variance happened should stay with a person, because that judgment is the reason the report exists.

What is the difference between an MIS report and a BI dashboard?

A dashboard is a live surface you go and look at. An MIS report is a document produced on a date, in a fixed layout, with written commentary, and it circulates whether anyone opens it or not.

Should I use Power BI for MIS reporting?

If your source data is warehoused and clean and the output can be a dashboard, yes, and nothing here beats it. If the source is a monthly export and the output has to be a formatted pack, BI leaves the hard half untouched.

How long does it take to automate a monthly MIS report?

The data pull is days. The rules take as long as it takes to get them stated out loud, which nobody schedules. Stable template and written rules, a week. Rules that live only in the preparer's head, months.

Why do MIS automation projects fail?

Because all three layers get treated as one job. The project scopes what looks like a data problem, discovers halfway through that the exclusions and roll-ups were never documented, and narrows to a refresh button on a data tab.

What happens to the automation when management asks for a new column?

Anything keyed to cell positions breaks, usually silently, producing a plausible wrong number. Anything keyed to column meanings survives. This single design decision determines whether the automation is still running next year.

Can automation write the variance commentary?

A tool can surface which lines moved and by how much, which is most of the tedium. It cannot know the spike was a one-off settlement rather than a trend. Take the drafting help, keep the explanation.

How do I document MIS report rules before automating?

Go line by line and ask what would have to be true for this number to be wrong. That question surfaces exclusions and overrides a blank documentation template never does. Write the answers next to the line.

Do I need IT approval to automate MIS reporting?

For anything touching finance data, yes. IT approves the environment: what runs on the machine, how the report system is accessed, where output files land. That approval is per environment, not per report.

Where to go from here

Your data is already in a warehouse and the audience wants to explore it.

Build the dashboard. Power BI, Tableau or Looker will serve you better than anything in the Guerrilla Bots suite, and a comparison that would not say so is not worth reading.

Most of your month-end happens inside one workbook.

Start with Excel automation. Power Query is the highest-return two hours available to an MIS executive.

The time goes on fetching exports before Excel ever opens.

That is portal and application work, covered in back office automation.

You submitted this to the CoE and it did not clear the bar.

Read what GPA is for why that outcome is structural, and Robotic. Agentic. Guerrilla. for why the current agent conversation covers about half the work in a back office.

You want the tool that reads the pack and states the rules.

Debrief is in development and not released. I² Recorder ships first, Debrief follows. If you want it when it lands, sign up for early access on the Guerrilla Bots homepage and tell us what your monthly pack looks like. Pre-launch, that feedback decides what gets built first.

Pranav Neeli

Twelve years building enterprise automation. Accenture, EY, Fossil, Alcon, HP. Now building Guerrilla Bots.