Moss Formulas And Variables
Use formulas for one-off numeric expressions and variables for named values that should be reused or referenced.
Editor Entry
In the editor:
=2+2creates an unnamed executable formula.sum=2+2creates a named executable variable.time=9amorwindow_1=9am-930amcreates a named symbolic variable.
Variable names start with a letter and contain only letters, digits, _, or -. Symbolic values may contain punctuation and non-Latin text. A value is executable only when it is a supported numeric expression or contains a bound reference.
Persisted Markdown
The persisted grammar is:
{{source|display}}
{{source|display|key=value;key=value}}
source ends at the first |, display ends at the second |, and optional semicolon-separated metadata follows. Pipes are unsupported inside source or display; there is no escape form.
| Kind | Persisted example |
|---|---|
| One-off formula | `{{2+2 |
| Symbolic variable | `{{time |
| Named executable variable | `{{5000 |
Moss may read a symbolic variable without an ID for compatibility, but new or rewritten symbolic variables should persist one. Anonymous executable formulas retain the two-field form and do not require persisted identity metadata.
Supported executable syntax is + - * / ( ), decimals, $, thousands commas, %, and numeric k/m/b suffixes. Functions and exponentiation are unsupported. Results use thousands separators and at most two decimal places; currency and percent characters affect parsing but do not decorate the result.
Identity And Linked Instances
Moss identifies a variable by (noteId, id).
- Copying and pasting a variable within the same note preserves its ID and creates another linked instance.
- Editing the name or value of any linked instance updates every instance with that ID in the note.
- Create an independent variable by entering a new
name=value; Moss assigns a new ID. - The same ID in another note is independent because the note ID differs.
- When directly duplicating a variable in the same note, preserve the ID only when the duplicate should remain linked. Generate a fresh UUID for a newly created independent variable.
Bound References
A bound reference is @(name#note-id#formula-id). It is executable and points to an exact variable identity.
{{28|28|id=b371c6db-70db-48f1-99e2-9ea1ef6f1151;name=h1_size}}
{{@(h1_size#9e64c3df-c1e2-4a4d-8c07-91528f422413#b371c6db-70db-48f1-99e2-9ea1ef6f1151)-6|22|id=c520e764-a784-48c5-81ca-f93ac6f4ad37;name=h2_size}}
Create a bound reference only when the real containing note ID and target formula ID are supplied by Moss context or existing persisted metadata. Never substitute example IDs, guess an ID from a path, or edit app-owned metadata. When exact IDs are unavailable, use the editor's variable typeahead or leave the relationship unbound.
Metadata
Supported metadata is:
| Key | Meaning |
|---|---|
id |
Formula or variable identity within its containing note. |
name |
Name of an executable variable; symbolic variables derive their name from source. |
stale=1 |
Moss could not recompute a bound expression because a reference is missing or cyclic, so the displayed numeric result is the last known value. |
Treat stale=1 as app-maintained state: preserve it unless the expression is deliberately rebuilt, and do not add it manually. Legacy format=... metadata is accepted but ignored; remove it when rewriting the pill.
Tables And Preservation
Formula pills may appear inside a one-line Markdown table row. Their internal pipes are formula syntax and do not become table separators.
- Preserve existing IDs, names, references, and stale state unless the task changes that relationship.
- Keep pills inline; do not use them for multiline calculations or chart data.
- Wrap literal examples in backticks so they do not become live pills.
Final Check
- Editor-entry syntax is not confused with persisted Markdown.
- Every new independent variable has a fresh UUID.
- Linked same-note instances share an ID and therefore update together.
- Bound references use real note and formula IDs.
- App-maintained stale state was preserved rather than invented.