Conventions

VeraScript has few rules, and most of them exist so the editor can line your script up against its checkpoint track.

Quoting

  • Strings are double-quoted. File paths and match values both take quotes, as in "data/customers.csv" and "active".
  • Field names are bare. Columns are written without quotes — status, or [id, name, region] in a select.

The distinction is deliberate: quotes mean a literal value, bare words mean a column in the data.

Comments

Comments start with // and run to the end of the line. They are ignored by the runtime.

// Branch: 90-day cohort window.
// Result was +12% retention vs the baseline.
let windowed = filter(report, cohort, "q3_signups")

A comment above a branching step is the cheapest documentation you will ever write — it tells the next reader why the branch exists, which the checkpoint graph alone cannot.

One step per line

Keep each statement on its own line. The gutter checkpoint track maps line numbers to checkpoints, so a statement split across lines makes the range harder to read and select.

Naming values

Value names become checkpoint names, so they show up in the checkpoint history, the inspector and the branch graph. Prefer names that describe the state of the data rather than the operation that produced it:

PreferOver
activefiltered
reportselected
cleaned_v2step3

Validating a script

Validate parses a script and reports problems without executing it, which is useful on a workflow that reads a large source. Anything it finds appears in the Problems panel alongside the console.

Validation checks the shape of your script. It cannot tell you that a field name is missing from the data — for that, run the step and read the row and column counts in the checkpoint inspector.