Financial/ RecSys
Live demoFAR-Trans pipeline

Pick a path. Run the pipeline.

Warm path uses a real preset user with a portfolio.
Cold path asks for a MiFID profile and routes through CohortPop.

A — Pick a portfolio

Curated FAR-Trans users, by risk profile.

Real anonymised users, grouped by their MiFID risk profile. Each card shows the account tier, capacity, and actual asset-class composition. Click to select, then run the pipeline.

Pipeline: EASE → risk filter → MiFID allocator → explanations.
02 — Architecture

How the pipeline composes?

Two planes meet at the registry. A weekly Cloud Run Job trains, validates and publishes versioned artifacts to GCS; the Cloud Run API loads whichever version is marked production on cold start.

TRAINING PLANE · OFFLINE§ACloud Schedulercron · weeklyMon 03:00CRON TRIGGERrun:jobCLOUD RUN JOBfrs-trainrun-to-completion · scale-to-zero · 4 GB / 2 vCPU01Featuresbuild feature tables02TrainEASE · CBF · cohort· risk03Paritycheck vs production04Evaluate61-split nDCG + suitpublish bundlepromote → productionGCS · MODELS/Model Registryimmutable · versioned — the contract between planesregistry.json{ production: <ts>_<sha> }versions: [ v1, v2, … ]manifest → code_sha · data window· metrics · parity flagsmodels/<ts>_<sha>/ease.npzcbf_{stock,mtf,bond}.parquetcohort_pop.jsonasset_risk_map.csvmanifest.jsonROLLBACKrepoint productioninstant · no redeploypin MODEL_VERSIONto any past versioncold-start loadlatest → productionSERVING PLANE · ONLINE§01FrontendNext.js · static export/ · live demo/#architectureFIREBASE HOSTINGPOST /recommendHTTPS · JSONCLOUD RUN SERVICEfrs-apiloads production artifacts on cold start · scale-to-zero01ScorerEASE · CBF ·CohortPop02Risk filterdrop high-vol ·Conservative03AllocatorMiFID + behavioral04Explainertemplates per sourceENDPOINTSGET /health · /metadata · /preset-users · /assets/{isin} · POST /recommendSYSTEM TOPOLOGY · finamaze-recsys · train ⇄ registry ⇄ serve
§01

Training plane

A Cloud Run Job (frs-train), triggered weekly by Cloud Scheduler, rebuilds features and retrains every component — EASE, the three per-class CBF matrices, cohort popularity and the risk map — then runs the 61-split nDCG + suitability evaluation.

Before publishing, it runs parity checks against the current production artifacts to catch silent regressions when notebook logic is ported into the serving modules.

§02

Model registry

Each run publishes an immutable bundle keyed by timestamp + git SHA, with a manifest recording the code commit, data window, hyperparameters, eval metrics and parity flags — lineage from any served prediction back to the exact code and data.

A registry.json holds the production pointer. The API resolves it on cold start; rollback is repointing it to any past version — no rebuild, no redeploy.

§03

Serving plane & limits

The Cloud Run API loads the production bundle into memory and serves recommendations through the scorer → risk filter → allocator → explainer pipeline, scaling to zero when idle.

Honest limits: this is research code on a public dataset — no auth, no per-user data isolation, and parity is recorded but does not yet block a publish.