<







Budget control across company boundaries

Robert Reiz Robert Reiz | October 09, 2026 | 04:10 UTC
New in ZEIT.IO: suppliers can only book as many hours in a mirrored project as are still free in the parent project. The check covers web, timer, app, API and timesheets – with a hint when the budget gets tight.

Your project "UI/UX Relaunch" has an hour budget of 160 hours. Overbooking is ruled out – that's what the quote says, and that's how it's set up in ZEIT.IO. Two parties work on the project: Mike, your own employee, and a partner agency you've brought in through a supplier contract. The agency uses ZEIT.IO itself, so the project was automatically mirrored into their organisation. Franz and Noel book their hours there, and as if by magic those hours show up in your project as well.

By the middle of the month, Mike has booked 100 hours. Franz and Noel see none of that in their mirrored project. Their budget shows 160 hours available, so they book 150 hours. Every single booking is accepted – after all, from the mirrored project's point of view there's plenty of room left.

At the end of the month your project stands at 250 of 160 hours. The strict budget didn't kick in, because one half of the team never saw what the other half had booked.

Orga-To-Orga

That is fixed now. A mirrored project can only take on as many hours as are actually still available in the parent project.


A quick reminder: what is a mirrored project?

When you sign a supplier contract with a company that has its own ZEIT.IO organisation, we call it an orga-to-orga collaboration. Once you add that contract to one of your projects, ZEIT.IO automatically creates a copy of the project at your supplier – the mirrored project.

The supplier manages their own people there: they add employees to the project, and those employees book their time as usual. Every booking is then mirrored back into your project – at the supplier's purchase rate on their side, and at your sales rate on yours. Nobody has to retype timesheets, nobody has to reconcile Excel lists.

Until now, the hour budget was simply copied over during mirroring. And that's exactly where the problem was: two projects with the same budget, but each one only counted its own hours.


What changes now

The parent project has the final say

For every booking in the mirrored project, ZEIT.IO now checks two things:

  1. Is there enough left in the mirrored project's own hour budget?
  2. Is there enough left in the parent project?

The lower of the two values applies. In the example above, that means: after Mike has booked 100 hours, Franz and Noel can book another 60 hours between them. Any booking beyond that is rejected – with the same message your own employees see when a budget is used up: "The remaining hour budget is no longer sufficient to save your booking."

The hours still available in the parent project are calculated fresh at the moment of booking. A booking Mike made five minutes ago is already taken into account.

No matter how the time is booked

The check applies everywhere time is recorded in the mirrored project:

  • manual time tracking in the browser,
  • the start/stop timer,
  • the app and the REST API,
  • timesheet uploads.

There is no side entrance through which the budget can still be exceeded.

Several suppliers share one budget

If two partner agencies work on the same project, each has its own mirrored project. Both are limited by the same parent budget. If the first agency books 40 hours, those 40 hours are gone for the second agency too – exactly what you'd expect from a shared budget.

Across several levels

If your supplier passes part of the work on to another subcontractor who also uses ZEIT.IO, you get a chain of mirrored projects. The same rule applies here: in the end, the budget at the very top – your project – is what counts.


What your supplier sees

So that Franz and Noel don't find out only when they hit save that the budget is getting tight, the mirrored project shows a hint as soon as the parent project is the limiting factor:

⚠ Limited by the parent project: 60.00 hours left

The hint appears on the project page directly below the remaining hours, and in the tooltip of the budget progress bar. Here is an example:

Budget control on orga-to-orga level

Good to know: this means your supplier can see how many hours are still available in your project overall. They don't see who booked those hours, any individual bookings or any rates – just the one number they need to plan their work.


What stays the same

  • Projects that allow overbooking are not affected. If "Overbooking allowed" is enabled in the parent project, it doesn't limit the mirrored project.
  • Projects without an hour budget don't limit anything either.
  • Your own employees book as before. The change only affects mirrored projects.
  • Time already recorded stays untouched. If a project was already overbooked in the past, ZEIT.IO doesn't delete any bookings after the fact – it only prevents further ones.
  • The mirrored project's own budget still applies. If your supplier has set a lower limit for their project, that limit stays in place.

Why this matters

A strict hour budget is a promise – usually to your customer. It's in the quote, the framework agreement or the purchase order. If it's exceeded, at the end of the month you get to choose between two uncomfortable conversations: one with your customer about extra charges they never ordered, or one with your supplier about hours you can't pass on.

Until now, the most vulnerable setup was exactly the one where several companies work on a project together – the very place where keeping track is hardest anyway. Now your budget applies to everyone who books against it, no matter which organisation they belong to.

160 hours are 160 hours again.