{"id":"experiment-tracking","slug":"experiment-tracking","name":"ML experiment tracking","shortName":"ML experiment tracking","problemStatement":"Track training runs, metrics, artifacts for fine-tunes.","whenNotTopPick":"Pure LLM app tracing without training — Langfuse.","categoryIds":["cat-observability","cat-train-finetune"],"depotPickProviderId":"weights-biases","depotPickRationale":"maturity + capability for training workflows.","runnersUpIds":["arize-phoenix","langfuse"],"weights":{"capabilityFit":0.26,"pricePerformance":0.22,"latencyReliability":0.1,"developerDx":0.18,"privacyPosture":0.08,"lockInRisk":0.08,"maturity":0.08},"methodologyNotes":"maturity + capability for training workflows.","tags":["experiment"],"depth":{"whenNotToUse":{"text":"Pure LLM app tracing without training — Langfuse.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"arize-phoenix","name":"Arize Phoenix","overallForJob":8.44,"pickOverallForJob":7.9,"beatsPickOn":["pricePerformance","privacyPosture","lockInRisk"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":5.5,"runnerUpLockInRisk":2.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":["open source (provider tag `oss`)"],"pickNotes":[],"selfHostFallback":[],"migration":"Runner-up Arize Phoenix has lower stored lock-in risk (2.5 vs 5.5, 0–10, higher = more lock-in).","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":1,"sourcesReachable":1,"pricingRows":0,"pricingRowsReconfirmed":0,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}}}}