→ Concept only. Not built or tested with real users.
Multi-country consolidation requires closing books in sequence. Some entities can't finish until others close. Intercompany balances need both sides settled first. Controllers find out about delays too late, only once they're already blocking downstream work.
Controllers coordinate this manually today. At Oracle NetSuite, I watched delays surface only after an entity was already blocking others. By then, options are gone.
Close Orchestrator flags which entities are likely to finish late, before the period starts. It suggests a close order based on dependencies, so controllers prioritize what matters. The accounting stays in the ERP.
Runs the close across all entities, decides the order, and chases entities that fall behind.
Closes one entity and needs to know who is waiting on them, and by when.
A mid-sized group can have 20 or more entities, each with its own tasks and deadlines. A view that shows all of it leaves the controller to find the problems.
The controller is accountable for the close. If they can't check a flag, they'll double-check everything, and the prediction saves them nothing.
The controller wants early warning. For an entity accountant, being flagged can feel like blame. The same data needs different framing for each.
I reviewed BlackLine, FloQast and Numeric. They handle task tracking and dependencies well. Most flag tasks that run slower once the close starts. I focused on predicting delays at the entity level before the period starts.
Close history, the dependency map, and task progress feed one prediction per entity. The controller sees it one way, entity accountants see it another.

I explored a full dashboard first: 22 entities across 8 countries. It was too much to scan. A triage list showing only flagged entities worked better.

I then tried four versions of the triage row.

The controller sets how late counts as at risk. A backtest shows how the rule would have worked last period, including the late entities it would have missed, so the controller can decide how much to trust it.

Show only at-risk entities, ranked by delay size and how many others depend on them. Lead with the delay number so the urgency is instant. Don't show everything and make the controller filter it themselves.

Each flagged entity gets one sentence explaining why. Show planned vs. actual close date side by side, so the problem is clear. History is there if they want it.

The close plan groups entities by their target finish day. Dependency lines only appear between flagged entities and the ones waiting on them. Everything else stays quiet. Closed entities collapse to a single line. This keeps the mental load reasonable.

The accountant's message says which other entities depend on theirs and by when. It's about obligation, not blame. The flag and reason are available but not the headline. Saying 'you're late' doesn't help. Saying 'team B needs you by Thursday' does.

By showing only flagged entities, the controller must trust the model. The main screen says how many aren't flagged and their status. The full list is one click away. The controller sets the risk threshold themselves.

Three-layer token system: primitives, named roles, component tokens. Blue means 'the model flagged this', amber means 'at risk', mint means 'complete'. Everything else stays white and gray. Color is information, not decoration.
