{"jtbd":{"id":"rag-evals","slug":"rag-evals","name":"RAG-specific evaluation metrics","shortName":"RAG-specific evaluation metrics","problemStatement":"Measure faithfulness, context precision/recall for retrieval pipelines."},"pick":{"id":"ragas","slug":"ragas","name":"Ragas","tagline":"Default RAG metric library. Pair with Promptfoo/Braintrust for broader agent evals.","website":"https://docs.ragas.io","overall":8.29,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.29,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14: Free open-source RAG evaluation library; cost is judge-LLM tokens only (~$0.50–$2 per 100 queries with cheap judges). No hosted SaaS required. Deep LangChain/LlamaIndex integration.","scores":{"capabilityFit":8,"pricePerformance":9.5,"latencyReliability":7.5,"developerDx":8.2,"privacyPosture":9.2,"lockInRisk":2,"maturity":7.8,"overall":8.29,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"promptfoo","slug":"promptfoo","name":"Promptfoo","tagline":"Default OSS eval harness. Braintrust when you want hosted collaboration; Promptfoo when you want local/CI…","website":"https://www.promptfoo.dev","overall":8.43,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.43,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","pricingNotes":"As of 2026-10-24 (promptfoo.dev/pricing, fetched 2026-10-24): Community 'Free Forever' ('Our open-source tool, perfect for individual developers and small teams.') with 'Red teaming (10k probes/month)' and 'Run locally or self-host on your own infrastructure'; 'A probe is a single request made to your target system during red team testing.' Enterprise 'Custom' ('Contact us for a personalized quote.'; 'Enterprise customers can purchase additional probes for larger scale testing.'; 'Managed cloud deployment'). On-Premise 'Custom' ('Deployment on your own infrastructure'). No list price is published, so Enterprise price stays null.","scores":{"capabilityFit":8.2,"pricePerformance":9.2,"latencyReliability":7.8,"developerDx":8.8,"privacyPosture":9,"lockInRisk":2.5,"maturity":8,"overall":8.43,"kind":"curated_estimate","confidence":"high","asOf":"2026-10-19"}},{"id":"braintrust","slug":"braintrust","name":"Braintrust","tagline":"Depot pick when evals are the product quality gate. Pair with Helicone/Langfuse for cheap request logs if…","website":"https://www.braintrust.dev","overall":8.28,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.28,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","pricingNotes":"Eval-first platform; data-based pricing with unlimited seats on many plans; strong CI eval story.","scores":{"capabilityFit":9.2,"pricePerformance":7.5,"latencyReliability":8.6,"developerDx":8.8,"privacyPosture":8,"lockInRisk":5,"maturity":8.2,"overall":8.28,"kind":"curated_estimate","confidence":"high","asOf":"2026-10-19"}},{"id":"galileo","slug":"galileo","name":"Galileo","tagline":"Pick for production hallucination measurement + guardrails. Braintrust/Promptfoo for lighter eval loops.","website":"https://www.galileo.ai","overall":7.51,"scoreBand":{"low":6.9,"mid":7.5,"high":8.1,"halfWidth":0.6,"basis":"editorial_prior","display":"6.9–8.1 (editorial prior)"},"scoreLayers":{"editorialPrior":7.51,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (galileo.ai/pricing live): Free **$0/mo** — 5,000 traces/mo, unlimited users/custom evals. Pro **$100/mo** (annual; scales with traces) — 50,000 traces/mo, standard RBAC, advanced analytics, Slack support. Enterprise contact — unlimited traces, VPC/on-prem, SSO, real-time guardrails, 24/7.","scores":{"capabilityFit":8.4,"pricePerformance":6.2,"latencyReliability":8,"developerDx":7.8,"privacyPosture":8,"lockInRisk":6,"maturity":7.8,"overall":7.51,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.29,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"ragas","pickName":"Ragas","pickScore":8.29,"highestScoredCandidateId":"promptfoo","highestScoredCandidateName":"Promptfoo","highestScore":8.43,"pickHasLowerCompositeScore":true,"delta":-0.14,"pickLeadsOnDimensions":["pricePerformance (9.5 vs 9.2)","privacyPosture (9.2 vs 9)","lower lockInRisk (2 vs 2.5)"],"explanation":"Ragas (8.29) is the editorial pick for RAG-specific evaluation metrics over higher-composite Promptfoo (8.43) because composite scores are provider-wide priors while Ragas wins on pricePerformance (9.5 vs 9.2), privacyPosture (9.2 vs 9), lower lockInRisk (2 vs 2.5): Capability fit for RAG metrics."},"cheapest":null,"recommendedWorkloadQuote":null,"representativeQuote":null,"estimatedTaskCost":null,"freeAlternatives":[{"id":"ragas","name":"Ragas","kind":"dev_tool","providerId":"ragas","jtbdIds":["rag-evals"],"whatYouGet":"Eval toolkit. The README says the rag_eval template evaluates RAG systems and that Ragas provides objective metrics for LLM apps. The fetched README does not name faithfulness, context precision, or context recall.","cost":"oss","license":"Apache-2.0","limits":null,"sourceUrl":"https://raw.githubusercontent.com/vibrantlabsai/ragas/main/LICENSE","asOf":"2026-10-25","notes":"LICENSE fetched 2026-10-03 from vibrantlabsai/ragas is Apache License 2.0. README fetched the same day. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'Apache License Version 2.0, January 2004' / 'Copyright [2023] [Vibrant Labs]'. License unchanged.","freeType":"dev_tool","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"rag-evals","jtbdName":"RAG-specific evaluation metrics","currentPickId":"ragas","currentPickScore":8.29,"challengerId":"promptfoo","challengerScore":8.43,"currentScoreGap":0.14,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.29,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Promptfoo (promptfoo) outperforms Ragas (ragas) by >= 0.29 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Ragas's representative SKU for rag-evals without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=ragas) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"promptfoo","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.29,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"ragas","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"ragas","immediateOverrideUrl":"/api/decide?jtbd=rag-evals&exhausted=ragas"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=rag-evals","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"rag-evals","providerId":"promptfoo","outcome":"worked","detail":"Comparative production evaluation on rag-evals (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Promptfoo (promptfoo) outperforms Ragas (ragas) by >= 0.29 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Ragas's representative SKU for rag-evals without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=ragas) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"rag-evals","primary":{"providerId":"ragas","name":"Ragas","overall":8.29,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.29,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for RAG-specific evaluation metrics; healthy/eligible under caller constraints."},"fallback":[{"providerId":"promptfoo","name":"Promptfoo","overall":8.43,"scoreBand":{"low":7.8,"mid":8.4,"high":9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.8–9.0 (editorial prior)"},"scoreLayers":{"editorialPrior":8.43,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","role":"fallback","reason":"Ranked fallback route for RAG-specific evaluation metrics."},{"providerId":"braintrust","name":"Braintrust","overall":8.28,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.28,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-10-19","role":"fallback","reason":"Ranked fallback route for RAG-specific evaluation metrics."},{"providerId":"galileo","name":"Galileo","overall":7.51,"scoreBand":{"low":6.9,"mid":7.5,"high":8.1,"halfWidth":0.6,"basis":"editorial_prior","display":"6.9–8.1 (editorial prior)"},"scoreLayers":{"editorialPrior":7.51,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for RAG-specific evaluation metrics."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"ragas","activePrimaryId":"ragas","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"rag-evals","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":false,"scoreGap":-0.14,"decidingFactor":null,"tieNote":null,"rationale":"Capability fit for RAG metrics.","whenNotTopPick":"General agent/tool evals — Promptfoo/Braintrust.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14: Free open-source RAG evaluation library; cost is judge-LLM tokens only (~$0.50–$2 per 100 queries with cheap judges). No hosted SaaS required. Deep LangChain/LlamaIndex integration.","cite":"Depot Pick for rag-evals: ragas (asOf 2026-09-14). See GET /api/jtbds/rag-evals + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/rag-evals?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=rag-evals","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/ragas","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=rag-evals","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"General agent/tool evals — Promptfoo/Braintrust.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"promptfoo","name":"Promptfoo","overallForJob":8.43,"pickOverallForJob":8.29,"beatsPickOn":["capabilityFit","latencyReliability","developerDx","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":2,"runnerUpLockInRisk":2.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["open source (provider tag `oss`)"],"runnerUpExitSignals":["open source (provider tag `oss`)"],"pickNotes":[],"selfHostFallback":[{"id":"ragas","name":"Ragas","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/vibrantlabsai/ragas/main/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Promptfoo (2 vs 2.5). Pick exit signals: open source (provider tag `oss`). Self-host fallback listed for this job: Ragas.","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."}},"citation":{"text":"Agent Provider Depot (v0.12.149), Depot Pick for rag-evals: ragas, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/rag-evals","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/rag-evals) (v0.12.149) — Depot Pick for `rag-evals`: **ragas** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.149","role":"depot_pick","jtbdId":"rag-evals","providerId":"ragas","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/rag-evals","api":"https://getagentdepot.com/api/decide?jtbd=rag-evals"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"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":3,"sourcesReachable":3,"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}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-10-19","2026-10-19","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"prose_notes_only","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"As of 2026-09-14: Free open-source RAG evaluation library; cost is judge-LLM tokens only (~$0.50–$2 per 100 queries with cheap judges). No hosted SaaS required. Deep LangChain/LlamaIndex integration.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://docs.ragas.io","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."},"links":{"jtbd":"/jtbds/rag-evals","jtbdApi":"/api/jtbds/rag-evals","leaderboard":"/api/leaderboards?jtbd=rag-evals","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=rag-evals","decide":"/api/decide?jtbd=rag-evals","humanPage":"/jtbds/rag-evals","alternatives":"/api/alternatives?provider=ragas","canonical":"/api/canonical","quote":"/api/quote?jtbd=rag-evals","falsify":"/api/falsify?jtbd=rag-evals"},"constraintBundle":{"task":null,"jtbd":"rag-evals","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"ragas","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=rag-evals"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}