KashBI

Group cash in Odoo without double counting

If you run several companies in Odoo, group cash is not the sum of the bank balances. Here is what to strip out so your forecast is one you can trust.

When you run a small group, Monday morning tends to look the same. You open the bank for each company, write the balances in a sheet, add them up, and that figure becomes the group cash. Until one week it does not add up. One company lent money to another, the trading entity pays rent to the property arm, the holding is about to pay back what a subsidiary advanced last month. All real movements, but most of them never leave the group. Count them in full and the cash looks bigger than it is.

Here is how to read the cash position of a group that runs on Odoo without inflating receipts and payments.

Why summing companies is not your group cash

Odoo stores all your companies in the same database and lets you run joint reports. The issue shows up when you want one group cash number. If you add today’s bank balances across all companies, the total is correct. If you add the movements of the period, it is not. Two things sneak in:

Strip neither of those out and total receipts and total payments are inflated. The net change is still correct, but the real external activity is hidden. And the week the trading entity does not get the expected transfer from the holding, it looks like a shortfall when it is really just a missing internal entry.

The three-company example

Picture a small group with three companies on Odoo:

In one ordinary week, seven things happen, all in euros:

  1. The trading entity collects €180,000 from external customers.
  2. The trading entity pays €90,000 to external suppliers.
  3. The trading entity pays €15,000 of rent to the property arm.
  4. The property arm receives those €15,000 and pays €8,000 of mortgage to the bank.
  5. The holding had lent €50,000 to the trading entity. This week the trading entity repays €10,000.
  6. The holding receives those €10,000.
  7. The trading entity pays €40,000 of payroll.

Add everything blindly: the group takes in €205,000 and spends €163,000. Strip the internal flows: the group takes in €180,000 and spends €138,000. Net change is €42,000 either way, but the picture is very different.

Item Naive sum Real group sum
Inflows €205,000 €180,000
Outflows €163,000 €138,000
Net change €42,000 €42,000
Inflated inflows €25,000
Inflated outflows €25,000

Those €25,000 are the €15,000 of rent and the €10,000 loan repayment. Nothing came in or went out of the group. If you use the gross totals when you decide to hire, invest or hold on, you are reading a picture with €25,000 of fluff on each side.

Cash per company and group cash

Both views are useful and each answers a different question. Cash per company tells you whether each entity stands on its own. In the example, the trading entity ends the week with €25,000 more, the property arm with €7,000 more and the holding with €10,000 more as a loan starts coming back. This view shows who has room, who is tight, and which entity needs a hand.

Group cash tells you how much external money comes in and goes out. That is the number you look at when you negotiate with the bank or a shareholder asks how things are going. For it to be useful, internal flows must be out. In a cash flow forecast in Odoo at group level you keep both: quick per-company view for the daily routine, aggregated view for the big call.

Who finances whom inside the group

In a small group one company often finances another: the holding puts capital into a brand new subsidiary, the trading entity advances money to the property arm for a refit. You need to know who owes what to whom, what the repayment calendar looks like (even informal) and whether the loan is on paper. Tax authorities look at these things, and your accountant will tell you money cannot keep flying between companies without a document. In the forecast, those flows count in the per-company view and stay out of the group view.

Currencies and minimum balance per company

If one of your entities bills in pounds or dollars, the group view needs a common currency. Odoo supports several currencies in the same database. Two rules work well in a small business: spot rate for today’s balance, and a prudent rate for forecasts ahead. Keep the difference somewhere, in case you need to explain it, because a quarter with the rate moving can shift the group cash picture quite a lot.

A group also does not break on the total, it breaks on one company. You can have €300,000 of aggregated cash and a subsidiary that will not make payroll on the 25th. That is why the minimum balance is set per company, with a floor and a day of the month by which you want it in place. With those floors in hand, the weekly group view stops being just the total and starts asking which company dips this week, who could lend to it, and which external receipt would have to land for sure so you do not move internal money. That is what turns a 13-week cash flow forecast into a decision tool.

What Odoo multi-company does and what is still on you

Odoo does the hard part: it lets you run every company in the same database, each with its own banks, invoices, customers and suppliers, and it lets you mark operations between them. What it does not do on its own is the forward group cash picture with eliminations already applied. In practice, three small routines cover the part that is yours:

  1. Flag your group counterparts properly. The customers and suppliers that are your own sister entities should be identifiable as such.
  2. Keep internal flows separate in the forecast. Receipts and payments between group companies do not belong in the group’s external totals.
  3. Reconcile bank balance against book balance in each company before you aggregate. If a subsidiary’s bank is not reconciled, today’s group cash starts off wrong.

Kashbi, for example, treats inter-company operations separately and gives you the net group cash without counting them twice. But the call on who lends to whom and what counts as external is still yours to make.

The group finance routine

A plan that works well in small businesses with three or four companies:

Frequently asked questions

Does Odoo automatically remove inter-company operations in group reports?

Not fully. Odoo lets you run several companies, consult joint reports and mark operations between group entities, but eliminating internal flows for a group cash forecast is still on you or on the forecasting tool you use on top. If you only sum movements across every company, group receipts and payments are inflated even when the net balance is right.

I have two companies and one lends to the other without a contract. Should I fix that first?

Talk to your accountant. It is not only a cash matter, it is also a tax matter. For the forecast you can keep showing it as an internal loan, but recurring operations should be documented so an inspection does not catch you out. In the meantime, mark them in Odoo for what they are.

Will one spreadsheet work for three companies?

It can work for a while if you keep it tidy, with a tab per company and a group tab that strips the internal lines. Once you go past two companies, or three months pass, the usual thing is that an inter-company movement slips into the total, or the file stops opening on your phone when you need a quick answer.