Lattice Canvas is not just a picture of your thesis. The edges you draw — leads-to, inverse, amplifies, dampens, contingent-on — feed directly into the scoring engine when probability is computed.
This article explains exactly what each edge does to the math, so you can build canvases with intent.
The two-pass model
Every Loom-authored scenario is scored in two passes.
The first pass is the standard base scoring — each signal in the canvas gets a base alignment (0 to 1) from its current value's percentile rank, its directionality, and its freshness. This is the same algorithm that scores any scenario.
The second pass walks every edge in the graph and adjusts each target node's alignment based on its incoming edges. The adjusted alignments then feed the weighted sum and the logistic that produces the final probability.
The base score is always intact. The topology pass refines it.
What each edge does
Throughout this section, source means the node the edge starts from. Target is the node the edge points to. Weight is an integer 1 to 5 set per edge.
### leads-to
The source's signed alignment pressure pushes the target's alignment in the same direction.
If the source is at 0.8 (highly aligned) and the target is at 0.5 (neutral), a w5 leads-to edge will shift the target up by approximately 0.18 — so the target ends up at 0.68. If the source were at 0.2 (counter-aligned), the same edge would push the target down by the same amount.
The maximum shift from a single w5 leads-to edge is 0.30 of alignment. This is intentional. No single edge can dominate the score — the graph is a balance, not a lever.
### inverse
Same magnitude as leads-to, opposite direction. A high source pushes the target down; a low source pushes the target up.
Use inverse when your thesis is *"as A rises, B should fall."* The edge price-rises-with-falling-rates would be an inverse edge from the policy-rate signal to the equity-price signal.
### amplifies
Multiplies the target's distance from neutral. The target alignment moves further from 0.5 in whatever direction it was already going.
If the source is at 1.0 (fully aligned) and the target is at 0.7 (alignment = 0.5 + 0.2), a w5 amplifies edge multiplies the 0.2 magnitude by 2.0, producing 0.4 — target ends up at 0.9.
If the target was at 0.3, the same edge moves it to 0.1. Amplifies preserves direction; it strengthens conviction in whatever the target is already saying.
A w5 amplifies edge with a fully aligned source can double the target's magnitude. With a neutral source (0.5), amplifies does nothing — the source must itself be saying something for it to amplify.
### dampens
The opposite of amplifies. Multiplies the target's magnitude by a factor less than 1.
A w5 dampens edge with a fully aligned source reduces the target's magnitude by up to 90 percent — a target at 0.9 (magnitude 0.4) ends at 0.54 (magnitude 0.04). The smallest residual is 10 percent of the original magnitude; dampens cannot fully zero a signal.
Use dampens when you believe one signal absorbs the other — *"strong jobs would normally lift equities, but a hawkish Fed dampens the read."*
### contingent-on
The target's alignment is gated by the source. If the source is fully aligned, the target passes through unchanged. If the source is fully misaligned, the target's magnitude collapses toward zero in proportion to the edge weight.
A w5 contingent-on edge with a fully misaligned source forces the target to neutral 0.5 regardless of the target's own reading. A w1 contingent-on edge with the same misaligned source has a much smaller effect.
Use contingent-on for relationships that only matter when a condition holds — *"the rate-of-change in the cycle only counts if liquidity is tight."*
Order of operations
The three sub-passes always run in the same order. This matters because of how the math composes.
First, leads-to and inverse run together (additive shifts).
Second, amplifies and dampens run together (multiplicative on the shifted alignment).
Third, contingent-on runs (gating toward neutral).
Within a sub-pass, the source alignment used for every edge is the BASE alignment, not the running adjusted one. This makes the order of edges within a sub-pass irrelevant — the result is the same regardless of which edge processes first.
Bounds and safety
Alignment is always clamped to the 0-to-1 range. No edge can push a node out of bounds. The strongest possible single edge cannot move alignment by more than 0.30 (leads-to/inverse) or change magnitude by more than 2x (amplifies). This is by design — the graph must be a composition, not a domination.
If your canvas references signals that aren't part of the scenario's signal map (a slug present in the canvas but not subscribed), those edges are silently dropped. The rest of the graph scores normally.
What you'll see in the scoring breakdown
A Loom-authored scenario's compute result includes a topology summary — how many edges were applied, how many nodes were adjusted. This shows up internally in the recompute trace. When the dashboard surfaces compute details (planned), you'll see per-edge contributions there.
A note on math intent
The goal of the topology pass is *fidelity to your thinking*. If you draw a graph that says "A leads to B, which dampens C," the score should reflect that you believe A's movement is being filtered through B's response. The graph is not decoration. It is the model.