jinflow a jazzisnow engine

Reproducible by construction

Reproducible.
And measured.

Two promises most tools quietly break — that a result carries the method that made it, and that a number remembers it is a measurement. jinflow keeps both by construction.

Two silent losses

Between the raw file and the published figure, two things usually vanish.

Loss 1 · the method

How the number was made

The recipe lives in a chain of clicks, a spreadsheet macro, a one-off script — untracked, unversioned, and gone the day the author leaves.

Loss 2 · the measurement

What the number is

The unit becomes a column header at best; the uncertainty is dropped; and a mean gets taken of quantities that must never be averaged.

Reproducible · the method is written down

Your analysis is a declaration, not a memory.

A finding is a few lines of YAML — a Signal, a Thesis — that the engine compiles to SQL and runs. The method is an artifact: reviewable, versioned, diffable. No black box, no lost macro.

# signal_pm25_annual.yaml
type: ratio
entity: Measurement
numerator: mean_pm25
denominator: who_limit_pm25
flag_when: ratio > 1

Change a threshold, and git diff shows exactly what moved — and why the numbers did.

Reproducible · the store carries its own method

Hand over the result — and the whole recipe travels with it.

Every built store carries the exact framework that produced it — the Imprint — stamped to a git commit: this data, this declared method, this engine version, frozen together.

See it

Open the store and read the method that made every number.

Re-run it

Rebuild from the same commit and get the same result, byte for byte.

Trust it

Peer review can reproduce your figure — not take it on faith.

Measured · a number that knows what it is

35.1 µg/m³ ± 2.3
Kind
mass concentration
Unit · UCUM
µg/m³
Uncertainty · GUM
± 2.3 (1σ)
Roll-up
averageable

Every column declares what it is — its kind, its unit (UCUM), how it may roll up, and its uncertainty (GUM). Not a naked float — a measurement.

Measured · so the engine cannot lie

It acts on what a number is — not just its digits.

Roll-up

Won't average the un-averageable

A concentration averages; a count sums; a pH does neither. The engine knows the difference and refuses the wrong one.

Conversion

Carries units, with a citation

A change of unit is a typed edge — the standard that authorises it travels with the value, never a silent multiply.

Standards

Cites, doesn't assume

UCUM, ISO 8601, GUM, and the rest live in a registry — the Codex — that the engine checks against.

What it buys you

The dividend, in a scientist's terms.

Every figure reproducible from a commit — the method is in the store, not in someone's head.
Peer review can re-run you — reproducibility becomes the default, not a special request.
Units and error bars never dropped — they ride every value, through every step.
Provenance to the raw reading — a value can be traced back to the measurement it came from.

The discipline

Say exactly what the data supports — and let anyone check.

Reproducible by construction, honest as a measurement. Not a feature you switch on — the shape of the thing. The number remembers where it came from, what it is, and how sure we are of it.

jinflow — reproducible by construction. A jazzisnow engine.