Revenue, margin, cost, cash
Fed by financial statements and pricing. Thin here and every single scenario is scaled off a guess, so this is the one the app asks for first.
What to upload
A twin is only as good as the record behind it. Rather than leaving you to guess, Counterfirm scores how ready your twin is, shows which corner of the company is thin, and ranks the documents you have not sent by how much the answer would move if you did.
Three files is enough to start. The readiness screen exists so that the fourth one is the right one.
The loop
Spreadsheets, exports, notes, contracts, review dumps. Pick the kind from a list of thirteen so the right rules run, or leave it as something else and let it find what it recognises.
Every upload gets one. It lists the columns it recognised, the columns it ignored and why, the facts it produced, the assumptions those facts settled, and a plain verdict at the top saying whether the file was worth sending.
One number for the twin and five for the areas of the company: money, customers, market, supply and people. An empty area is not a cosmetic gap. It is a set of numbers the model is currently guessing.
The blockers table lists the numbers currently sitting on industry defaults, ranked by how much each one moves an answer, with the document that would replace it. Work down the list and stop when the bands are tight enough to argue with.
The catalogue
Weight is how much that kind moves readiness. The two at the top are worth more than the bottom six put together, which is why the app asks for them first.
| Kind | What it gives the model | Format | Weight |
|---|---|---|---|
| Financial statements | Revenue, margin, operating cost, cash, headcount, customer count. Without it every scenario inherits an estimate. | A profit and loss as a spreadsheet, or a one page summary as text | 10 |
| Customer list | Concentration as a number instead of a guess, and your largest accounts modelled as individuals rather than as an average. | CSV or Excel, one row per account | 10 |
| Organisational structure | Cost per head, delivery capacity, utilisation. Needed before eliminating a department means anything. | CSV, one row per department | 8 |
| Contracts | How much of your revenue can actually reprice this year. Usually the difference between a price rise working and doing nothing. | A summary of terms, text is fine | 8 |
| Competitors | Who answers a move, how fast, and by how much. Without it the model invents two rivals. | CSV, or a paragraph each | 7 |
| Suppliers and vendors | Cost exposure and lead times. It is also what finds the single source nobody wrote down as a risk. | CSV, one row per vendor | 7 |
| Pricing | Your actual price list rather than an index, plus what you know about discounting. | Text or CSV | 6 |
| Customer reviews and feedback | Satisfaction, which is what drives churn when price moves. | Review exports, survey verbatims, review notes | 5 |
| Sales and pipeline | Quota, ramp, and how much of revenue the sales team lands each month. | A CSV of reps, or a pipeline export | 5 |
| Market research | How fast the pool you sell into is growing, which changes what doing nothing looks like. | Any note with a growth rate in it | 4 |
| Company strategy | Something for the executive agents to want. Without it they optimise the defaults. | A board note, a plan, an offsite summary | 4 |
| Product information | What is actually being sold, and what a launch would change. | Spec sheets, a catalogue, a roadmap | 3 |
| Something else | Whatever it recognises. The file report says what it ignored. | Any accepted file type | 1 |
Every kind has a starter file you can download from inside the app, with the column headings the extractor recognises and one filled in example row. The column level detail is in the documentation.
Where to put it
Files go on the Sources screen of the twin they belong to. You pick the kind, drag the file in, and the rules run immediately. Nothing is queued for a human and nothing waits for a nightly job.
The file report that comes back is the important part. Most tools that ingest a spreadsheet either work or fail silently, so you find out three screens later that a column was never read. Here, every upload prints what it recognised and what it skipped, with the reason. A column headed ARR is read. A column headed Value 2024 (adj) is not, and the report says so and shows you the heading it wanted.
If a file produces nothing, the report says that too, in one sentence, at the top. That is more useful than a green tick.
The five areas
One overall number hides the problem. A twin can be ninety percent ready on money and completely blind on supply, and it is the blindness that will produce a confident wrong answer.
Fed by financial statements and pricing. Thin here and every single scenario is scaled off a guess, so this is the one the app asks for first.
Fed by the customer list, reviews and contracts. Thin here and price scenarios are unreliable, because how much revenue can move is unknown.
Fed by competitors, market research and pricing. Thin here and a price rise looks free, because nobody in the model answers it.
Fed by the supplier list. Thin here and cost shock questions are guesswork, and single source risk is invisible.
Fed by the organisation chart and sales data. Thin here and headcount scenarios cannot tell the difference between cutting cost and cutting capacity.
The network is trained on the graph these files build. A thin record makes a thin graph, and a thin graph makes a model that cannot beat guessing the average. It will say so.
Practical
The honest minimum is three files: a profit and loss, a customer list, and one page about who you compete with. That will produce bands wide enough to be uncomfortable and narrow enough to be useful, and the app will immediately tell you which fourth file tightens them most.
CSV, Excel, plain text, Markdown, PDF and Word. Spreadsheets are read row by row. Prose is chunked and read for figures and for customer words.
No, but closer is better. The extractor knows the usual variations and the file report tells you exactly what it did not recognise, so a second attempt with two renamed columns usually fixes it.
Less than you would think, because a fact that cannot be read produces no fact rather than a wrong one. The risk is not corruption, it is silent absence, which is what the file report is for.
Yes. The newer file wins for any assumption both of them settle, and the ledger history shows the change and the date, so you can see what a refreshed export did to the answer.
Use something else. The rules still look for labelled figures and for any table with a name column and a number column, and the report says what it found. If nothing was found it says that rather than leaving you guessing.
Three to start, six to stop arguing about the bands, and after that it is diminishing. The readiness score is built so that it stops rewarding you for uploading more of what it already has.
One file gets you a twin with wide bands and a list of what to send next. That list is the whole point.