For finance leaders

The reforecast you keep rebuilding by hand

Three cases in a spreadsheet, each one a single path, each one assuming customers hold still and competitors do not exist. Counterfirm runs the same decision four hundred times with the uncertainty drawn from your own numbers, and returns a p10, a median and a p90 with the assumptions listed underneath.

Build a twinHow the ledger works

Every number in a run traces back to a line in a file you uploaded, or is labelled as an estimate or a default.

month 0month 12best tenthworst tenth

Best case, base case and worst case are three guesses wearing a suit.

They are built by taking the same model and nudging two inputs in the same direction, which means the worst case is not a probability, it is a mood. A distribution built by drawing every uncertain parameter independently, hundreds of times, is a different object: the p10 is a tenth of the runs, not the pessimistic version of one run.

The ledger

Every number, with its provenance and its band

Each assumption in a run carries where it came from: read from a document with the line quoted, derived from something that was, estimated by a model, set by you, or an industry default. Nothing is blended into a single confident figure.

Each one also carries a band. Churn has a wide one, because churn is usually wide. Headcount has a narrow one, because you know your headcount. The bands are what the draws come from, so a run is not a sensitivity table bolted on afterwards, it is uncertainty carried the whole way through.

  • Defaults are listed first, because those are the ones worth replacing
  • Edit any value or any band, and the change is recorded against your name
  • Sensitivity tells you which assumption is actually moving the answer, measured over the runs
  • The seed is kept, so a number in a board pack can be reproduced exactly next quarter

Inside the assumption ledger

Monthly revenuedocumentGross margindocumentPrice elasticitydefaultMonthly churndocumentCompetitor reactiondefaultContracted revenuedefaultLargest customer sharederivedCost per headderived

The finance questions

Four runs that usually pay for themselves first

A supplier puts fifteen percent on

Gross margin moves in month one. Then the real question: how much you pass on, and what the pass through does to volume. The run carries both, with a pass through share you can set rather than assume.

Supplier raises prices

The largest account leaves

Revenue goes on a date. Cost does not. The run shows the gap between the two, the month cash gets uncomfortable, and how much of the recovery depends on a pipeline that has not been built yet.

Lose the largest customer

A price rise, properly costed

Margin now against volume later, with a competitor who matches part of it, on a lag, and customers whose contracts end in different months. The sweep gives you the whole curve rather than one point on it.

Raise price

A cost reduction that has to land this year

Severance, the month the saving actually starts, morale, attrition that follows, and the revenue that was attached to the people who left. The saving is rarely the number in the paper.

Reduce headcount

Cash and covenants

The floor matters more than the average

A median that looks fine can sit above a distribution in which one run in seven breaks a covenant in month eight. The average never shows you that. The band does, and so does the count of runs that crossed the floor.

Cash on hand, the cash floor before a covenant bites and the months investors will fund a dip are all assumptions in the ledger with bands of their own. Set them to your actual facility terms and the run tells you not just whether you breach, but in which months and on the back of which event.

  • How many of the runs cross your cash floor, and when the first crossing happens
  • Which agent caused it: a lost account, a supplier, a hiring plan that ran ahead of collections
  • The tripwire month, so the covenant conversation happens before the breach rather than after it
off track above 3.1%check here, month 3churn

Concentration

The risk your ageing schedule does not price

18%largest accounttop five are 54 percent of revenue
The graph holds your named accounts one at a time, with their share of revenue, their contract position and their months remaining. Concentration stops being a footnote and becomes something you can run: not "eighteen percent with one customer" but "here is the p10 of the year in which that customer does not renew".

The working method

It does not replace the model, it argues with it

Keep your model. It is the right tool for the general ledger, the tax line and the way your business actually books revenue, and no simulation is going to reproduce those. What the model cannot do is put a competitor and a customer with a mind in the same sheet.

The useful pattern is to run both and look at the gap. When the twin gives a materially different answer to your own plan, one of two things is true: the twin is standing on a default you can replace in a minute, or your plan is assuming something about behaviour that nobody has written down. Both are worth finding before the board meeting, not after.

How we compare

A spreadsheetone path, your own assumptions, no reactionAsking a modela plausible paragraph, no mechanism, no repeatA consultanta real answer, six weeks later, onceA twina range, a mechanism, and you can ask again tomorrow

Honestly

What this will not do for you

It is not an accounting system and it does not touch your ledger. It does not do revenue recognition, tax, consolidation, intercompany, currency translation or anything that has to be right to the cent. It operates in monthly aggregates and it rounds.

It will not audit. Nothing here is prepared to a standard, reviewed or signed. A run is a model output and it should be described as one in anything it appears in.

It is only as good as the bands, and the bands start as industry defaults. A twin built from one profit and loss gives you a wide band that is honest. Replacing defaults with your own history narrows it. Nothing narrows a band by asserting confidence.

  • No general ledger integration, no journals, no close
  • Monthly granularity, not weekly, not by entity
  • Not audited, not assured, not a forecast you can file

The run

Cheap enough to ask again

400
Simulations behind one answer
Two hundred of the scenario, two hundred of doing nothing, on the same seeds
2,000
Simulations in a twenty five step sweep
Eighty replications at every setting of the lever
0.1s
A standard run
On the machine this was built on, twelve months, about forty agents
50
Assumptions in the dictionary
Money, customers, market, supply, people, governance

The questions finance asks

Where does the uncertainty actually come from?

Every assumption has a relative half width in the dictionary. Churn carries a wide one, because monthly churn is genuinely uncertain in most records. Headcount carries a narrow one. Each replication draws its own value inside that band, so the spread you see is the spread implied by your own record rather than a fixed plus or minus fifteen percent.

When a document pins a number precisely, the band narrows. That is the direct reward for uploading more.

Can I reproduce a number from last quarter?

Yes. Runs keep their seed and their full assumption set. The same question with the same inputs gives the same answer, which matters when somebody asks in month six where the figure in the pack came from.

Does a language model touch my numbers?

The simulation is arithmetic and runs with no API key. A language model is used optionally in three places: reading prose the parser could not handle, rewriting a finished brief into better English, and answering questions in Ask. Anything it extracts arrives in the ledger labelled as an estimate before it can reach a run.

What if my data is messy?

Then the readiness score is low and the ledger is full of defaults, and both of those are stated plainly on the overview. The missing files are listed in the order it is worth fixing them. A wide honest band beats a narrow invented one.

Start with the reforecast you are dreading

Management accounts, a customer list and the question. If the band comes back wider than you would like, the ledger tells you exactly which document would narrow it.

Build a twinWhat the engine computes