Automatic financial report cash flow as of today, not as of three weeks ago
Every Monday at 07:00 you get one report: revenue to date, costs, gross margin, cash flow, DSO and the month-end forecast. The data arrives on its own from your invoicing system or ERP, from HubSpot or Pipedrive and from the bank. Nobody assembles a spreadsheet, and accounting stops answering the question of how much you have got for the third time this week.
- 1 report a monththat is how often the owner sees the numbers today, and only once the books are closed, so decisions run on data that is three weeks old
- 6 metricsrevenue to date, costs, gross margin, cash flow, DSO and the month-end forecast, in one report built from 3 sources: accounting, the CRM and the bank
- 2 to 6 weeksfrom the workshop to a report that arrives on its own; the Google Sheets and email variant goes live in 2 weeks, the full one with the bank and BigQuery takes up to 6
The problem
Why are you deciding about money on data that is three weeks old?
Month end. You ask how much is in the accounts after payroll and how much is still sitting with customers. Somebody pulls the invoices out of the invoicing system, somebody else exports the pipeline from HubSpot, somebody logs into the bank. Two days later the spreadsheet is ready. Before you open it three payments have landed and two supplier invoices have gone out, so the numbers no longer add up. And the question about hiring a third salesperson has been waiting a week.
Your accountant works to a calendar set by tax filings and statutory reporting, not by the decision you have to make next Tuesday. The month gets closed weeks after it ends and the annual accounts land months later. Those dates exist for the tax office, not for the call on next week's ad spend. The board needs a picture every week, and that gap is exactly where a management report lives.
The cost of the gap does not sit in the books, it sits in the decisions. An overdraft drawn mid-month, because nobody knew two large payments would land on Tuesday. A customer who pays in 60 days instead of 14, and nobody counts it, because DSO appears in no report at all. A service line running a negative margin for six months, visible only in the annual accounts.
- You know your cash position as of the day the previous month was closed, not as of last night
- Assembling the spreadsheet from three systems costs somebody 1 to 2 days every month
- DSO does not exist as a number, so a customer paying in 60 days looks like every other customer
- A negative margin on one business line shows up once a year, in the annual accounts
Why now
What changed, so that a report like this takes weeks rather than a quarter?
Every invoicing and accounting system in common use now has an API or a daily export: Xero, QuickBooks Online, Sage, Fakturownia, iFirma, Comarch ERP Optima, enova365. So does the CRM: HubSpot and Pipedrive hand over the pipeline with the stage and the probability through their APIs. The bank hands over the balance and the transactions through an open banking API with read only access, or through a daily MT940 or CSV statement import. Three sources that used to be retyped by hand can now be pulled every night.
The second piece is the layer that ties it together. n8n or Make pulls the data once a day, matches customers between the CRM and the invoices and loads it into Google Sheets or BigQuery, where the metrics are calculated. Looker Studio shows them as a dashboard, and a schedule emails the PDF or the link on Monday at 07:00. Nobody writes a reporting system from scratch.
The third piece is the AI agent. The report answers the questions we anticipated in the workshop, but not the one that occurs to you on Thursday at 22:00: how much of the overdue receivables is one single customer. BOND, our company AI agent, answers that in a plain sentence, from the same data the report is built on, in 5 to 10 seconds.
What changes
What does the person who owns the money actually get?
The report lands on Monday at 07:00, with nobody chasing accounting
A schedule in n8n or Make pulls the data every night, calculates the metrics and in the morning emails the report or refreshes the Looker Studio dashboard. Annual leave and month-end close have no effect on it.
The same report, at the same hour, 52 times a year
Three sources in one table
Invoices from the invoicing system, the pipeline from the CRM and transactions from the bank are joined on the customer and the invoice number. You see one line per customer: what was invoiced, what was paid, what is still in the pipeline.
Customers matched on the tax identification number, not on a name every system spells differently
Cash flow as of today, not as of last month's close
Last night's balance plus the invoices falling due in 7, 14 and 30 days on both sides. You can see whether the 10th will cover payroll before that day arrives.
Three horizons: 7, 14 and 30 days, calculated from the due dates on the invoices
DSO per customer, not one average for the company
For every invoice we count the days from issue to payment, then average per customer and per month. A customer who stretched payment from 14 to 45 days shows up in the report in the same month they did it.
Calculated from the issue and payment dates of every invoice, not from the receivables balance
A month-end forecast built from the pipeline
On top of revenue already invoiced the workflow adds CRM opportunities weighted by stage probability and close date. On the 15th you know whether the month closes on plan, and you still have two weeks to do something about it.
Invoiced revenue plus pipeline weighted by stage, refreshed every night
Finance questions asked in a plain sentence
How much is outstanding for longer than 30 days and who holds the most of it. What the margin was on projects for one industry this quarter. The AI agent answers from the same data the report is built on.
An answer in 5 to 10 seconds, with no login to the accounting system and no new spreadsheet
Proof
Do we read our own finances this way?
Yes. The agency our founders run reads its margin every month out of a data warehouse: the same months year on year, and only months already closed in the books. Below is the figure that report showed after the AI agent went live, together with what it does NOT prove. This is not an effect of the report. It is what the report made visible in time.
Built for ourselves. These are not client deployments but implementations inside the founders' own companies. We say so plainly, because proof you cannot verify is not proof.

JustBottheir agentJustIdea Agency, a performance marketing agency, around 30 people
- 23
- people from the company work with the agent
- 38
- systems wired in permanently
- 112
- processes run without a human
- 475
- thousand lines of the agent’s code
An AI agent wired into the CRM, the task system, the ad platforms and the data warehouse the profit and loss account is calculated from. First commit 1 March 2026, 23 people use it today.
8 of 38 systems it works in
Google Ads
Meta Ads
- HubSpot
- ActiveCollab
- Ahrefs
GA4
Search Console
BigQuery
- Before
- In the twelve months before launch the agency ran on a margin of minus 4.42 percent. Across a twenty month window there was not a single run of three positive months.
- After
- May, June and July 2026 were three positive months in a row, the first such run in the whole window. Revenue barely moved, so the change sits on the cost of delivery, not on sales.
Margin up 5.55 percentage points year on year, on revenue higher by 1.5 percent
And in your company
What if an outside firm keeps our books?
Four sentences we hear most often from owners and finance directors, and what we answer.
If you are after a narrower piece, there are separate pages: automatic payment reminders when the problem is chasing overdue invoices, and automatic invoicing from CRM when the invoice itself is still created by hand.
An outside firm keeps our books, we do not hold the data.
You issue the sales invoices yourselves, in Xero, QuickBooks or Fakturownia. The bank is yours. The CRM is yours. That is most of what the report needs. From the accounting firm we only need the costs: once a month by export, or through the API of the system they work in. A management report does not replace your accountant, it stops you waiting for one.
We have it in Excel and it works.
It works as long as that one person assembles it and as long as they have the time. In the workshop we count the hours a month that go into collecting the data and how many times the spreadsheet disagreed with accounting. If it comes out under 2 hours and zero disagreements, we say keep the spreadsheet.
Accounting does not close the month for another three weeks, the report will show nonsense.
That is why the report separates two states: posted and estimated. An invoice issued but not yet posted, and a cost with no invoice yet, are flagged separately, and the closed month enters as its own line once it is closed. Two numbers instead of one that is falsely precise.
We are not letting anyone into our bank account.
We are not asking for payment rights. Bank data comes through an open banking API with read only permission, or through a daily statement import that somebody on your side uploads. If even that is too much, we calculate cash flow from the invoicing system once an invoice is marked as paid, with a one day lag.
- Accounting and invoicing
- Xero, QuickBooks Online, Sage, Fakturownia, iFirma, Comarch ERP Optima, enova365, sevDesk
- CRM and pipeline
- HubSpot, Pipedrive, Salesforce, Zoho CRM
- Bank
- Open banking API with read only access, MT940 or CSV statement import
- Data and calculations
- BigQuery, Google Sheets, SQL databases
- Report and distribution
- Looker Studio, email, Slack, Microsoft Teams
- Automation layer
- n8n, Make, custom integrations over the API
The six metrics in the report and where the data comes from
The set most companies start from. We settle the definitions in the workshop, because cost and margin mean something different in every company, and a report where two people read the same number differently is worse than no report at all.
| Metric | Where the data comes from | The question it answers |
|---|---|---|
| Revenue to date | net sales invoices from the 1st of the month, out of the invoicing system | are you on plan for the month |
| Costs | supplier invoices from accounting plus fixed costs: payroll, rent, subscriptions | how much of the revenue is left |
| Gross margin | revenue minus direct costs, per project or per service line | which lines earn and which ones cost you |
| Cash flow | the bank balance plus invoices falling due in 7, 14 and 30 days on both sides | will the 10th cover payroll |
| DSO | days from issue to payment on every invoice, averaged per customer and per month | who pays in 60 days instead of 14 |
| Month-end forecast | invoiced revenue plus CRM opportunities weighted by stage probability | will the month close in the black |
A starting set. Overdue receivables in 1 to 30, 31 to 60 and over 60 day buckets, prepayments, foreign currency invoices and credit notes get added in the workshop, because every company treats them differently.
How we do it
Five steps from a hand-built spreadsheet to a report that arrives on its own
Each step ends with something you can judge before you decide on the next one. Process first. Tools second.
Workshop
We take today's report apart: who assembles it, out of which systems, how long it takes and who reads it. We write down the definitions: what counts as a direct cost, how you calculate margin, what paid means. The output is a list of metrics with a definition and a source for each one.
Data model
We design the tables in BigQuery or Google Sheets and the customer dictionary that links a CRM account to the buyer on the invoice by tax identification number. We settle how to treat currencies, prepayments, credit notes and invoices issued but not yet posted.
Pipeline and a backtest
n8n or Make pulls the data every night and loads it into the model. We calculate the report for the last 3 closed months and compare it against the profit and loss account from accounting. Every discrepancy gets a named cause before the report is seen by anyone outside our team.
Report and distribution
A Looker Studio dashboard and a Monday 07:00 email with a PDF or a link. We settle who sees what: the board sees the whole thing, a line manager sees only their own margin. Somebody on your side learns to add a metric and change the recipients without us.
Measurement after 30 and 90 days
After the first closed month we compare the report against accounting and fix the definitions wherever they drifted. After 90 days we check who opens the report and what they ask about, and we add what is missing rather than what we predicted.
Before and after
How the week changes for an owner or a finance director
Before
- Asks the bookkeeper how much is in the accounts and waits until the afternoon
- Once a month somebody loses 1 to 2 days assembling a spreadsheet from three systems
- Learns about the customer paying in 60 days when payroll comes up short
- Puts off the hiring decision until the month closes, so by three weeks
After
- Monday 07:00: balance, receivables, margin and forecast in one email
- The spreadsheet does not exist, the data joins itself every night
- Sees a customer's DSO stretch in the month it stretched
- Decides the same week, on numbers from last night
The first report goes out in the week of the switch. After 30 days we compare it against the closed month from accounting, after 90 we decide which metrics to add.
For the person signing this off
What the owner or the finance director gets out of it
You stop being the person who asks for numbers every week and become the person who has them first. The conversation with the board or with your business partner starts from Monday's report, not from let me check. Cash flow becomes a figure you know by heart rather than an impression left by the last call with your accountant.
The second thing matters more in a conversation with a bank or an investor. You have DSO, margin per line and a month-end forecast calculated by the same method for several months, with history behind it. That is a document that will defend your decision on a loan or a hire, including when the decision turns out to be the wrong one.
- Metric definitions written down and versioned, independent of one person and their spreadsheet
- A report every week instead of once a month with a three week lag
- A backtest on 3 closed months before the first send, so you know the gaps with accounting before the board does
- You change metrics and recipients yourself, with no ticket to us
What it costs
The workshop has a published price, the rollout is quoted after it
The process workshop costs EUR 3,500 net per week. On a financial report one week is usually enough; a second week comes in when the definitions of cost and margin differ between departments and have to be agreed first. We quote the rollout after the workshop, once it is clear how many sources are in play, whether the bank goes through an API and what state your customer records are in.
You pay the cost of running the workflow directly to the vendors: n8n or Make for the scenario, Google for BigQuery once the data outgrows Google Sheets. Looker Studio in its basic version is free. Where the AI agent is part of the scope, model queries cost the vendor EUR 0.005 to 0.07 each. No commission from us on any of it.
Process workshop
EUR 3,500 net
per week, on a financial report usually one to two weeks
A self-contained piece of work. It ends with a list of metrics carrying definitions and sources, plus a plan you can execute without us.
- Map of today's reporting: who, out of what, how long it takes, who reads it
- Metric definitions written down together with the exceptions: currencies, prepayments, credit notes
- Tooling recommendation: Google Sheets or BigQuery, n8n or Make, Looker Studio
- List of the mismatches between systems that have to be fixed before any automation
- Most popular
Workshop and report rollout
Quoted after the workshop
scope follows from the number of sources and metrics
The option most companies choose. A report that arrives on its own, 2 to 6 weeks after the workshop, tested on 3 closed months.
- Everything in the workshop
- A pipeline in n8n or Make from the invoicing system, the CRM and the bank into BigQuery or Google Sheets
- The six metrics from the table above, a Looker Studio dashboard and a Monday email
- A backtest on 3 closed months and a comparison against accounting
- Training for somebody on your side on adding metrics and changing recipients
Report and an AI agent for finance
Quoted after the workshop
for companies where money questions come up every day
Everything in the rollout plus BOND, which answers finance questions in a plain sentence, from the same data the report is built on.
- Everything in the report rollout
- An AI agent wired into the data model: receivables, margin, cash flow and DSO on demand
- Alerts: balance below a threshold, an invoice over an amount past due, a line margin below zero
- Access for the board and for line managers, in English and in Polish
The workshop ends with a list of metrics, definitions and sources that your own data person can implement alone, in Excel or in Sheets, without us. If the workshop shows the report takes 2 hours a month to assemble and nobody is waiting for it, we say so and we stop at the workshop.
Frequently asked questions
What is an automatic financial report?
It is a workflow that pulls data from your invoicing system, your accounting, your CRM and your bank every night, calculates management metrics and in the morning emails the report or refreshes a dashboard. The standard set is revenue to date, costs, gross margin, cash flow, DSO and the month-end forecast. Nobody retypes numbers between systems, and accounting stops answering questions the report already answers.
How long does it take to implement an automatic financial report?
One week of workshop and 2 to 6 weeks of rollout. The variant with Google Sheets, the invoicing system and email goes live in 2 weeks. The full one, with the bank over an API, BigQuery and customer matching between the CRM and the invoices, takes up to 6. Before the first send we calculate the report for the last 3 closed months and compare it against accounting.
Will the report replace our accountant or our accounting firm?
No, and it is not meant to. Accounting keeps the books, files the taxes and owns the statutory accounts. A management report answers a different question: how the company stands today and how it will stand in two weeks. The difference is the rhythm: accounting closes a month weeks after it ends, the report arrives every Monday.
How do you get the data out of the bank and is it safe?
Through an open banking API with permission limited to reading the balance and the transaction history, with no payment rights, or through a daily MT940 or CSV statement import that somebody on your side uploads. If a company wants neither of those, we calculate cash flow from the invoicing system once an invoice is marked as paid, with a one day lag.
What if accounting has not closed the month and the report has already gone out?
The report separates two states. An invoice issued but not yet posted, and a cost with no invoice yet, are flagged as an estimate, and the closed month enters as its own line once it is closed. After 30 days we compare the estimate against the close and fix the definitions wherever they drifted.
What is DSO and why calculate it every week?
DSO is the average number of days from issuing an invoice to being paid. Calculated once a year for the whole company it says very little. Calculated every week per customer it shows the account that stretched payment from 14 to 45 days in the same month they did it, before payroll comes up short.
Google Sheets or BigQuery?
Google Sheets is enough when you have up to a few hundred invoices a month in one currency and a handful of people read the report. BigQuery makes sense at thousands of documents, several entities or currencies, and when you want to put questions to an AI agent, because querying a sheet with 200 thousand rows takes too long. We make the call in the workshop, and migrating from Sheets to BigQuery later is possible.
Can I send a report like this to a bank or an investor?
As a management report yes, and that is its strength: the same metrics, the same method, with several months of history. It does not replace the statutory accounts or the statements from your accountant that a bank asks for formally. In the workshop we set up a separate view for external recipients, without margin per customer and without personal data.
Let us count how much time goes into assembling your numbers
The free consultation takes 30 minutes. You tell us which systems the report is assembled from today, who does it and how long you wait for an answer to how much have we got. We show you which metrics can be calculated straight away out of what you already have, and which ones need the customer records or the cost definitions tidied up first. You do not have to give access to any system or to the bank at this stage.
We run at most two rollouts at a time, so that someone is actually sitting on each of them.
Book a free consultationPS. If somebody at your company spent a day this month assembling a spreadsheet out of the invoicing system, the CRM and the bank, that is exactly this problem. The numbers you wait three weeks for are already sitting in those systems tonight. Getting them out is where the workshop starts.