Skip to main content

Generators reference

Every type for <gen>. Each one links to its full page.

typeProduces
textA value from a set — uniform or by exact percent
numberAn integer in a range, or a fixed-width digit string
templateBuilt-in realistic data and technical IDs
fileValues from your own files and CSV columns
dateA date or date-time in a range and format
symbolA string of characters from a set or named alphabet
regexA string matching a finite regular expression
advanced_regexRegex, plus weighted choice between alternatives
increment / decrementRising and falling counters
timeseriesA time series — trend + seasonality + noise
patternA distribution shaped like a drawn curve
httpA value fetched over HTTP from a service you wrote
poolOne whole member of a <pool> — a record, not a value
runningA total accumulated down the column, not drawn
statOne number over the whole run, on every row
formulaA column computed from the other columns of its row

Cross-cutting attributes

These work on almost any generator (see Masks & case):

  • case= / mask= — letter case and display masks.
  • missing= — leave a share of the cells blank.

Four types refuse all three (TDC015), and for one reason: formula, running and stat are resolved in declaration order, before the formatting layer runs, and pool hands the row a whole member rather than a value of its own. Refused rather than ignored, because the answer exists one step later and is better: the interpolation filter runs where the value is PRINTED, so ${{Weight|mask:x}} and ${{Doctor.name|upper}} work today.

The next two only work when the generator produces something they can act on — and they part ways on what happens elsewhere: order=/cycle= are REFUSED, anomaly= is about the value rather than the generator:

  • order= / cycle= — value order: random by default, or sequential. Ordering walks something, so exactly three generators read it: text, file and date — a date range is walked a step at a time. On every other type it is refused (TDC015), not ignored: a number draws from a range and has no order to walk, and neither has a regex, a template, a symbol, a counter, a drawing, a series or a statistic.
  • anomaly= — push a share of the values out of range by multiplying them. The rule is about the value, not the generator: anything that reads as a number is multiplied, including a numeric string from text, file or a pack. A non-numeric value beside numeric ones — a name in a mixed list — passes through unchanged, because there is no "further out" for it. A list with no numbers at all is refused (TDC243): nothing there could ever be pushed out of range, so the attribute would do nothing on every row. See Anomalies & missing values.

See also the Generators overview.