Companion film
From blank to living model
Turn a plain-text model into a live grid, then change one input and watch every dependent value—and the judgment—recompute.
28 secGrid 0.61.0
Open film page →Guided build · 01
Turn typed source cells into a live profitability model, then prove the dependency graph by changing one value.
You will finish with: A complete profitability model with an override, status, semantic signal, and readable summary.
A small profitability model that recalculates from typed source cells, supports an optional override, classifies the result, and produces a readable summary. Nothing here needs a connector or a special runtime capability.
By the end, you will know how Grid turns ordinary cells and semantic values into one dependency graph—and how to prove that graph is live by changing one source value.
If you do not yet have an authoring surface open, complete Get to a running model first. It shows the exact Cloud, Desktop, and API paths, where to put source, and the output that proves evaluation succeeded.
Open Grid and create a model in the source editor. Paste the canonical Foundations source from the linked example.
The model header gives the file a durable identity:
MODEL "Canonical Foundations"
DESCRIPTION "Small portable model that demonstrates the canonical authoring profile."
VERSION "1.0.0"
AUTHOR "Grid Team"
TAGS "canonical", "portable", "foundational"
The body ends at END MODEL. Shared models should carry this metadata even though Grid can evaluate smaller fragments while you work.
A1 IS currency = 125000
A2 IS currency = 86000
A3 IS percentage = 21pct
A4 IS percentage = 5pct
A5 = BLANK
IS currency and IS percentage preserve semantic meaning for formatting and validation. 21pct is the numeric value 0.21, not the number 21. A5 is intentionally blank because it will become an optional override.
Checkpoint: the model should show five starting values with no formula errors.
B1 IS currency = A1 - A2
B2 IS currency = A1 * (1 - A4)
B3 IS currency = DO
margin = B1
deduction = 2500
MAX(margin - deduction, 0)
END
B4 IS currency = B3 * A3
B1 and B2 are direct formulas. B3 uses a DO … END expression so intermediate ideas have names without becoming unrelated workbook cells.
| Binding | Expected value | Meaning |
|---|---|---|
B1 |
39,000 |
Revenue minus cost |
B2 |
118,750 |
Revenue after the 5% reduction |
B3 |
36,500 |
Margin after the deduction |
B4 |
7,665 |
Tax calculated from adjusted margin |
B5 IS currency = A5 DEFAULT B4
DEFAULT uses the value on its left unless that value is blank or unavailable. While A5 is BLANK, B5 is 7,665. Set A5 to 9000 and B5 becomes 9,000; restore BLANK and the calculated value returns.
The formula never changes. Only the upstream source assignment changes. These canonical cells are
authored values; Grid reserves the input decorator for bindings that accept external writes.
C1 = B1 > 50000 THEN "strong" ELSE "watch"
C2 = MATCH(C1, "strong" -> :green, "watch" -> :amber, _ -> :red)
C3 = `status={C1} tax_due={B5}`
Checkpoint:
C1 = "watch",C2 = :amber, andC3readsstatus=watch tax_due=7665.
The string in C3 is derived just like a number. When an upstream source value moves, the status,
semantic signal, and summary all move with it.
Change the authored value of A1 from 125000 to 150000. Do not touch a derived cell.
| Binding | New value |
|---|---|
B1 |
64,000 |
B2 |
142,500 |
B3 |
61,500 |
B4 / B5 |
12,915 |
C1 |
"strong" |
C2 |
:green |
That is the central Grid loop: author relationships once, then let changes propagate through the dependency graph.
Add an editable threshold and use it in the status formula:
input StrongMargin IS currency = 50000
C1 = B1 > StrongMargin THEN "strong" ELSE "watch"
Raise StrongMargin to 65000. With revenue still at 150000, the status should return to "watch" without changing the classification formula.