The network

The graph does not just sit there. It learns.

Your graph is a picture of who depends on whom. On its own it is a diagram. Version two trains a small neural network on top of it, so the shape of your company becomes something the software can read a score off: which relationships are fragile, what each one is worth if it breaks, and which ones resemble each other.

Build a twinHow it shows its working

It is a graph neural network, trained on your own twin, on the server that holds it. It is not a large language model and it has not seen another company.

your graphbuilt from your filesfeaturesround oneround twoone row is one nodesix of its twenty four numbersriskwill it leave,fail, biteimpactwhat it moves if itdoesstructurewho else looks likeit

A spreadsheet knows your largest customer is 31 percent of revenue. The network knows that account sits between a segment whose satisfaction is falling and a supplier with one source, that its contract ends in five months, and that three other accounts look exactly like it.

That is the difference between a number and a structure.

The shape of it

Small enough to read, large enough to learn your company

Inputs per node
29what it is, how big, how connected, and what your files say about it
Rounds of message passing
2each node hears its neighbours, then their neighbours
Heads
3fragility, cost if it breaks, and who else looks like this
Kinds of node it scores
5customers, suppliers, departments, partners, competitors

What happens

Two rounds of message passing, then three heads

This is the whole architecture. It is small on purpose, because a small model trained on your own data and explainable line by line is worth more here than a large one you have to take on trust.

  1. 01

    Every node becomes twenty nine numbers

    Type, share of its own type, revenue and cost on the record, satisfaction, how many of your files mention it, whether it was read or inferred, how connected it is, the tone of what customers wrote about it, how close its contract end is, and headcount or quantity. Money is scaled, so a company turning over millions and one turning over thousands give the network the same shaped input.

  2. 02

    Round one: each node hears its neighbours

    A node mixes its own numbers with the average of the numbers of everything it touches, then squashes the result. After this round a customer already carries a trace of the segment it sits in and the salesperson who holds it.

  3. 03

    Round two: it hears their neighbours too

    The same operation again on the result. Two rounds means every node has seen two hops out, so a supplier now carries something of the department it supplies and the customers that department delivers to. That is deliberate. Three rounds on a graph this size smears everything into everything.

  4. 04

    Three heads read the final row

    One head gives risk, between zero and one. One gives impact, the size of the hole if the thing goes wrong, in your own currency. One is trained on the structure itself, by predicting which pairs of nodes are connected, which is what makes find me the ones that look like this work.

Watch it think

The forward pass, drawn from the real weights

The Network screen draws the trained network reading one thing on your graph at a time: the inputs that pushed hardest (its own figures and the average of its neighbours'), the twelve units of each round of message passing lit by how strongly they fired, and the two answers. Every line is a real weight times a real activation. Thicker is stronger; one colour pushes the answer up and the other pushes it down.

Signals travel left to right, one layer after the next, and the drawing turns through the most exposed customers, suppliers and departments until you pick one. Next to it, every label the network learned from is listed with what the network predicted for it while it was held out.

  • Drawn from the saved model, not an illustration of one
  • Pick any of the most exposed things to watch it read that one
  • Every held out prediction is shown beside the label it missed or matched

Where the labels come from

It is trained on the simulator, not on opinion

This is the part most worth understanding, because it is where a model like this usually goes wrong.

There is no training set of companies that failed. There is no industry benchmark being quietly applied to you. The network is trained on answers the engine gives about your own twin.

Training labels every node the simulator can remove, up to sixty of them inside a time box. For each one it runs the simulator twice: once as things are, and once with that node removed or damaged, using the lever that fits it. A customer is lost. A supplier raises its price. A department is eliminated. The difference between the two runs is the true impact of that node, in money, computed by the same equations that produce every other answer in the product. That difference is the label.

So the network is a fast approximation of an expensive calculation you could always have done. It is not a second opinion. If the engine is wrong about your company, the network will be wrong in exactly the same direction, and the honest limits page already says where the engine is weak.

  • Labels are produced by running the engine, not by a benchmark
  • Risk labels also use what is on the record: status, rating, satisfaction
  • Every removable node is labelled, not a sample of a dozen
  • Four fold cross validation: every label is predicted once by a network that never saw it
  • That error is reported against guessing the average, so you can see whether it learned anything
nowbest-20%0+25%+45%+60-6pricesalespeople added, against price

What it gives you

Three questions the graph alone could not answer

Risk

Which of these is about to be a problem

Everything scoreable ranked on one scale, so the account nobody was worried about appears next to the one everybody was. It only scores the kinds of node it was trained on, and anything it cannot score is listed separately with the reason.

Impact

And what it costs if it is

Risk on its own is a worry list. Impact is what turns it into an order of work. A fragile supplier holding two percent of cost sits below a solid one holding forty.

Structure

Who else looks like this

Trained by predicting which nodes are connected, so similarity is about position in your company rather than about a name being spelled the same way. When one account churns, this is what tells you which others are standing in the same place.

The architecture, written out

No hidden pieces

The whole model is one readable file of arithmetic. It runs on the same server as everything else, needs no graphics card, and trains in under two minutes on a normal graph.

PieceWhat it isWhy this size
Inputs per node29 numbersSeventeen are the node type. The other twelve are things your files say.
Hidden width12Wide enough to hold a few independent patterns, narrow enough that the attribution of a score to its inputs stays readable.
Rounds of message passing2Two hops. Three starts averaging the whole company into every node.
ActivationtanhBounded both ways, which keeps one enormous customer from dominating the gradient.
Risk headsigmoid, cross entropyA probability, because that is what a risk is.
Impact headlinear, squared error on a scaled targetA share of revenue, so it is comparable across nodes. The target is scaled to zero mean and unit spread while training and the scale folded back into the last layer after.
Structure headlink prediction on sampled pairsSelf supervised. It needs no labels at all, so it works on a thin twin.
Training240 passes, Adam, weight decayAdam because a few dozen labels and a tanh network stall on plain gradient descent. Small model, small data; anything larger would overfit a graph with ninety edges in it.
Validationfour fold cross validationEvery label is predicted once by a network trained without it, so the error is measured on all of them rather than on a few held back. The model kept is trained on every label.
SeededYesSame twin, same weights. Training twice gives the same numbers, and the model page says so.

Labelling is time boxed at forty seconds and each training run at forty more, as a safety net. On the worked example the whole thing, five training runs included, takes under ten seconds. If a graph is large enough for a box to bite, the model page says so and that its numbers are therefore not exactly reproducible.

Attribution

Every score comes apart into its reasons

industry churndefaultswitching costderivedreference givendocumentshare of revenuedocumentpayment behaviourdocumentcontract coverdocumentpushes the score downpushes the score upevery bar traces back to a line in a file you uploaded, or it is labelled a default
The bars are integrated gradients, taken between an empty node and the real one in sixteen steps, so they add up to the score rather than merely pointing at it. The chip on each bar says whether that input was read from one of your files, worked out from other things you uploaded, or is an industry default the model is using because you have not told it otherwise. Under the bars, the same drawer shows the path the signal took through the network, layer by layer, and the label this node was trained on with the rule that produced it. How this works in full.

Being honest about it

What this is not

Not a prediction of the futureIt is a fast approximation of what the engine would say if you ran every scenario. The engine is a model. The limits are written down.
Not trained on other companiesYour weights are yours, stored against your twin. Nothing about your company trains anything anybody else uses.
Not a language modelNo text goes to a provider for this. It is arithmetic on the server that holds your twin.
Not useful on a thin twinWith six nodes and nine edges it will train and it will be worthless, and the model page will tell you so rather than showing a confident number. Start with the files that matter.

The model page always prints the cross validated error next to the error of guessing the average, and a plain sentence saying whether the network beat that guess. If it did not, it says so. A model that cannot beat the average on your graph is telling you your graph is too thin, and the cure is another file, not another training run.

Questions about the network

How long does training take?

Under two minutes on a graph of a hundred nodes, most of it spent running the engine to produce labels rather than in the network itself. It is a background job, so you can leave the page.

How often should I retrain?

After a meaningful upload. The network learns the shape of the graph you had when you trained it, so adding thirty customers changes what it should say. The app marks a model stale when the graph has moved and tells you on the page.

Does it need a graphics card?

No. It is a few thousand multiplications on shared hosting. That is the point of keeping it this size.

What happens on a graph with no labels?

The structure head still trains, because it teaches itself from the edges. Risk and impact need labels, and if there are too few the page says the model is not usable yet and names the upload that would fix it.

Can I see the weights?

Yes, through the API on the plans that include it, and they are stored as plain numbers against your twin. There is nothing in there but arithmetic.

Why not use a larger model?

Because the useful thing here is not raw capacity, it is that every score can be taken apart into the inputs that produced it and each of those inputs traced back to a line in a file you uploaded.

A larger model on a graph with a hundred nodes would fit the noise, and it would lose the property that makes the output arguable. The point is not to be impressive. The point is that when it says an account is fragile, you can find out why and disagree.

Which plans include it?

Every paid plan. The free tier builds the graph and runs the engine but does not train the network, because training runs the simulator dozens of times and that is the expensive part.

Train it on your own company

Build a twin, upload three files, and see what the network says about the relationships you already have opinions on. If it disagrees with you, it will tell you why.

Build a twinSee what to upload