Skip to content

Typed-wire viewport controls

Find a loaded brick or change only the graph viewport scale.

100%
/6

EDGE · BENCH

Assembly Bench

Snap together a typed model, then test every connection before training.

Build a module on the fly · three ways, one contract

(game, pregame ctx) -> score in [-1, 1], confidence · runs in the sandbox · tested on the holdout before it can touch Tonight

Lean to the home team when they have 3+ more rest days than the visitor, stronger in weeks 10+.

compiles to ->

rest_days_delta >= 3 -> +0.3 - week >= 10 -> x1.5

not graded yet

Level 1 · typed graph

The ML stage, opened

The default pipeline behind one brick — static defaults, not measured.

StepDefaultWhy
Targetcovertotals / ML / props / margin are one switch
Featurespacks + feeds + module outputsmodules vote (weight) or feed (column), never both silently
Engineeringrolling 4 - opp-adj - rest Dcomputed per week with that week's data
LearnerLightGBM d4 x 30019 blueprints behind one brick
Validationwalk-forward 5shuffled k-fold is not a brick
Calibrationisotonicso 0.62 means 62% - heat depends on it
Gate to Tonightbeats baseline - n >= 100 - gap <= 2otherwise the card says so

Level 1 · Data stage, opened · typed wires, live

Open one stage without losing the six-socket model spine.

0/4

Data is empty — add it to keep training this draft.

Data socket

Add a data packout: FrameFeatures Framein: Frame · Signal(as feature)Drop a lens herein: Frame → out: SignalEvalnot run yet

Wires carry their type. A Feed lens joins the Features Frame "as feature"; a Filter lens gates rows through its threshold. A results column wired toward the learner draws red: PostFrame can only feed Eval — leakage is a type error, not a lint.

Wire types

Framerows + columns, pregame PostFrameresults — Eval only, by type Signalscore + claim Probcalibrated % Predicatekeep / drop Modeltrained Metricswith n + baseline · adapters auto-insert where one fix exists; red wires explain themselves

Bench evidence · what builders actually use

Signed-in registry aggregates only; the anonymous demonstration catalogue is never charted.

Sign in to load Bench evidence

The anonymous Builder payload is a local demonstration catalogue, not registry evidence.

Unlocks the moment you're signed in.

Sign in

Sharp money

Inspector pane · role contract and settled proof.

Sharp money inspector needs complete evidence

lens_registry exposes family, gate, graded_n, hit, lift and drift, but the Bench loader has no remix count or threshold-to-slate result for Sharp money.

A / B — which belief pays?

Two beliefs over the same rows; the edge says which one pays.

Arm A

[Auto] NFL Spread (ExtraTrees)

ATS win rate
51.30%
Bets
5,961
Kelly ¼ / $1k
$0

as of Aug 17, 1:41 PM ET

Arm B

[Auto] NFL Spread (AdaBoost)

ATS win rate
49.37%
Bets
5,961
Kelly ¼ / $1k
$0

as of Aug 17, 1:40 PM ET

Same graded rows — 5,961 bets, 152 pushes — one change.

Build a module on the fly · three ways, one contract

Sentence reads a selected registry module's manifest and joins the current draft through BlueprintSlots.features. Formula and Code are drafting surfaces: they compile or run through the real compound-metric parser and the real Pyodide sandbox — not a stored module field, since brick_registry has no formula/code source columns yet.

Sign in to use registry modules

The anonymous build payload is a local demonstration catalogue; this block only renders signed-in brick_registry rows.

Unlocks the moment you're signed in.

Sign in

The ML stage, opened

Current draft fields are shown exactly as BlueprintSlots represents them; unsupported settings are named rather than guessed.

StepCurrent draftWhy
TargetNot selectedBlueprintSlots.target owns the market target.
FeaturesNot selectedBlueprintSlots.features holds feed and module references.
EngineeringNot represented in this draft payloadBlueprintSlots has no standalone engineering field.
LearnerNot selectedBlueprintSlots.architecture owns the learner reference.
ValidationNot represented in this draft payloadThe build loader exposes no validation setting.
CalibrationNot represented in this draft payloadThe build loader exposes no calibration setting.
Gate to TonightSign in to evaluateThe anonymous demonstration catalogue is not registry evidence — sign in to gate a real model_cards row.

The ML stage is not configured

Choose a target, features, and learner before training this draft.

Training trace · live

This pane only becomes live when the loader can supply real training-run events.

No live training trace

The reused /build loader exposes no training-run event stream; a scripted live trace would be false.

Time machine · replay the season

A season replay requires real week-by-week settlements from the model ledger.

Season replay needs weekly settlements

The reused /build loader exposes no week-by-week settled ledger for replaying a season.

Level 2 · the whole machine

The full graph is generated from the current draft slots; no training or settlement result is implied.

Results (PostFrame)→ Eval only · leakage is a type error
100%

Populated adjacent layers are connected by the canonical Blueprint graph migration. The Monaco code drawer is not built yet (blocked — brick_registry has no formula/code source column, so no canvas node is ever identifiable as a code brick).

walk-forward · ~40s · in your browser

Training trace · live

Fold progress belongs to a real training run, not to the editable Blueprint draft.

run startedbp_et_mlb_ml · mlb · 2026-08-28T03:36:46.751347+00:00
outcometrained
duration80.5s
smoke gatepassed
artifact retention5 prior artifacts retired
walk-forward fold metricsmodel_training_runs stores no per-fold Brier/holdout series for this run

model_training_runs · run 40043 · gate PASS

Open full Builder

Time machine · replay the season

The replay needs the schedule, graded ATS receipts and cumulative weekly units together.

wk 18
Cumulative at $100
-$38,645
4680–4641–35 · 9356 plays

2025 house spread record, real graded games only.