{"jtbd":{"id":"layout-aware-ocr","slug":"layout-aware-ocr","name":"Layout-aware OCR & form extraction","shortName":"Layout OCR","problemStatement":"Extract tables, checkboxes, multi-column layouts, and key-value forms from PDFs/scans where naive chunking destroys structure."},"pick":{"id":"reducto","slug":"reducto","name":"Reducto","tagline":"Use when LlamaParse Agentic still drops tables/forms. Depot still picks LlamaParse for default document-parse…","website":"https://reducto.ai","overall":8.11,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.11,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (reducto.ai/pricing): Standard $150 free usage then list: r-1 Parse $10 / 1k pages, Extract $20, Deep Extract $40, Split $20, Classify $7.50, Edit $60 ($15 pre-filled). Growth = volume + ZDR/BAA + EU/AU residency. Enterprise VPC/on-prem. Up to $5k migration credits. 200 concurrent pages on Standard.","scores":{"capabilityFit":9,"pricePerformance":7.2,"latencyReliability":8.2,"developerDx":8.4,"privacyPosture":8.6,"lockInRisk":4.5,"maturity":7.4,"overall":8.11,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"llama-parse","slug":"llama-parse","name":"LlamaParse","tagline":"Depot pick for document-parse (PDF/Office → LLM-ready markdown/JSON). Unstructured when you need ETL…","website":"https://www.llamaindex.ai","overall":8.24,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.24,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (llamaindex.ai/pricing + developers.llamaindex.ai): 1,000 credits = $1.25 (NA/EU). Free 10k credits/mo; Starter $50/mo (40k credits); Pro 400k credits. v2 parse tiers: Fast 1 / Cost-effective 3 / Agentic 10 / Agentic Plus 45 credits/page. 48h parse cache is free to re-parse. SOC2/HIPAA/GDPR; VPC on AWS/Azure Marketplace.","scores":{"capabilityFit":9,"pricePerformance":7.8,"latencyReliability":8.4,"developerDx":8.8,"privacyPosture":8,"lockInRisk":4.8,"maturity":8.2,"overall":8.24,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"unstructured","slug":"unstructured","name":"Unstructured","tagline":"Best when you want connector-heavy document ETL or to self-host the OSS partitioner. LlamaParse remains the…","website":"https://unstructured.io","overall":8.13,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.13,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (unstructured.io/pricing): 10,000 free pages (no card), then hosted API $0.015/page, all features included. Business = custom dedicated instance / VPC / multi-tenant. OSS library remains free to self-host. HIPAA / SOC2 Type 2 / GDPR / ISO 27001. 45+ file types + 40+ connectors.","scores":{"capabilityFit":8.4,"pricePerformance":8.2,"latencyReliability":8.2,"developerDx":8,"privacyPosture":8.6,"lockInRisk":3.8,"maturity":8.2,"overall":8.13,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"jina","slug":"jina","name":"Jina AI","tagline":"Promoted high after pinning official models API token matrix ($0.05/1M). Best as EU-friendly all-in-one…","website":"https://jina.ai","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-10-25 (GET api.jina.ai/v1/models): embeddings/rerank/reader-lm priced at pricing.prompt=0.00000005 → $0.05/1M tokens (jina-embeddings-v3/v4, jina-reranker-v3/v3.5, ReaderLM-v2, clip/colbert). jina-ocr-v1 $0.50/$2.00 per 1M prompt/completion. As of 2026-10-25 (https://jina.ai/embeddings/ FAQ): 'New users get an auto-generated API key with free tokens usable across any of our models.' The page states no free-token amount, so none is given here. Models API is source of record for prices. Same FAQ (2026-10-25): 'jina-embeddings-v4 is built on the Qwen2-VL base model, released under the Qwen Research License, which permits research and non-commercial use only. We therefore cannot license it commercially and provide it free of charge via the API instead.' and 'It is not suitable for production workloads'. The models API still lists jina-ai/jina-embeddings-v4 at pricing.prompt 0.00000005; Depot keeps the models-API figure (not re-priced here).","scores":{"capabilityFit":8.2,"pricePerformance":8.6,"latencyReliability":7.8,"developerDx":8.8,"privacyPosture":8.2,"lockInRisk":3.5,"maturity":7.6,"overall":8.07,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.11,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"reducto","pickName":"Reducto","pickScore":8.11,"highestScoredCandidateId":"llama-parse","highestScoredCandidateName":"LlamaParse","highestScore":8.24,"pickHasLowerCompositeScore":true,"delta":-0.13,"pickLeadsOnDimensions":["privacyPosture (8.6 vs 8)","lower lockInRisk (4.5 vs 4.8)"],"explanation":"Reducto (8.11) is the editorial pick for Layout-aware OCR & form extraction over higher-composite LlamaParse (8.24) because composite scores are provider-wide priors while Reducto wins on privacyPosture (8.6 vs 8), lower lockInRisk (4.5 vs 4.8): Distinct from `document-parse` (general LLM-ready chunks). Weight capability on layout fidelity. Confidence: medium-high on Reducto agentic OCR positioning."},"cheapest":{"providerId":"reducto","providerName":"Reducto","skuId":"reducto-parse-1k-pages","item":"r-1 Parse API","plan":"r-1 Parse API — Standard (pay-as-you-go) rate per 1,000 pages after $150 free usage","unit":"usd_per_1k_pages","amountUsd":10,"isFloorPrice":true,"floorWarning":"Provider-wide floor SKU; may not be the flagship model scored for this JTBD.","skuCountInUnit":2,"isDepotPick":true,"sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19","verifiedAsOf":"2026-10-19"},"recommendedWorkloadQuote":{"providerId":"reducto","providerName":"Reducto","skuId":"reducto-parse-1k-pages","item":"r-1 Parse API","plan":"r-1 Parse API — Standard (pay-as-you-go) rate per 1,000 pages after $150 free usage","unit":"usd_per_1k_pages","amountUsd":10,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19","pricingLastVerifiedAt":"2026-10-19","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"reducto-parse-1k-pages","item":"r-1 Parse API","plan":"r-1 Parse API — Standard (pay-as-you-go) rate per 1,000 pages after $150 free usage","amountUsd":10,"inputOrUnitUsd":10,"unit":"usd_per_1k_pages","outputUsd":null,"outputUnit":null,"sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":10,"totalUsd":11.5,"estimatedTotalUsd":11.5,"perTaskUsd":0.0115,"estimatedCostPerTaskUsd":0.0115,"formula":"(1,000 calls @ $10/1k_pages) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."}},"representativeQuote":{"skuId":"reducto-parse-1k-pages","item":"r-1 Parse API","plan":"r-1 Parse API — Standard (pay-as-you-go) rate per 1,000 pages after $150 free usage","amountUsd":10,"inputOrUnitUsd":10,"unit":"usd_per_1k_pages","outputUsd":null,"outputUnit":null,"sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":10,"totalUsd":11.5,"estimatedTotalUsd":11.5,"perTaskUsd":0.0115,"estimatedCostPerTaskUsd":0.0115,"formula":"(1,000 calls @ $10/1k_pages) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."},"freeAlternatives":[{"id":"docling","name":"Docling","kind":"free_ocr","jtbdIds":["document-parse","layout-aware-ocr"],"whatYouGet":"Open-source document converter to structured text for LLM input.","cost":"oss","license":"MIT","sourceUrl":"https://raw.githubusercontent.com/docling-project/docling/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is MIT, copyright The Docling Contributors. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, byte-identical: 'MIT License' / 'Copyright The Docling Contributors'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_ocr","substitutable":true},{"id":"easyocr","name":"EasyOCR","kind":"free_ocr","jtbdIds":["layout-aware-ocr","document-parse"],"whatYouGet":"Open-source OCR library you run yourself.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, byte-identical: 'Apache License Version 2.0, January 2004'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_ocr","substitutable":true},{"id":"florence-2-base","name":"Florence-2-base","kind":"open_weights","jtbdIds":["layout-aware-ocr","document-parse","multimodal"],"whatYouGet":"Downloadable Microsoft Florence-2-base weights for vision and OCR-style tasks.","cost":"oss","license":"MIT","sourceUrl":"https://huggingface.co/microsoft/Florence-2-base/raw/main/LICENSE","notes":"LICENSE file fetched 2026-10-03 is the MIT License. LICENSE re-fetched twice 2026-10-25 (HTTP 200, byte-identical): 'MIT License'.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"open_weights","substitutable":true},{"id":"mineru","name":"MinerU","kind":"free_ocr","jtbdIds":["document-parse","layout-aware-ocr"],"whatYouGet":"Open-source document parser. Apache-2.0 plus extra terms: a separate commercial license is required above a stated MAU or revenue threshold.","cost":"free","license":"Apache-2.0 plus additional commercial terms","sourceUrl":"https://raw.githubusercontent.com/opendatalab/MinerU/master/LICENSE.md","notes":"LICENSE.md fetched 2026-10-03. Commercial use is allowed without a separate license until monthly active users exceed 100 million or monthly revenue exceeds USD 20 million. Online services must attribute MinerU. Not stored as plain Apache. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, byte-identical: 'MinerU is licensed under Apache License 2.0 and is subject to the additional terms below.', 'monthly active users (MAU) exceed 100 million', 'total monthly revenue exceeds USD 20 million', and the online-service attribution term ('that MinerU is used'). License and limits unchanged.","providerId":null,"limits":{"commercialLicenseIfMonthlyActiveUsersExceed":100000000,"commercialLicenseIfMonthlyRevenueUsdExceeds":20000000},"asOf":"2026-10-25","freeType":"free_ocr","substitutable":true},{"id":"paddleocr","name":"PaddleOCR","kind":"free_ocr","jtbdIds":["layout-aware-ocr","document-parse"],"whatYouGet":"Open-source OCR toolkit you run yourself.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, byte-identical: 'Apache License Version 2.0, January 2004'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_ocr","substitutable":true},{"id":"tesseract","name":"Tesseract","kind":"free_ocr","jtbdIds":["layout-aware-ocr","document-parse"],"whatYouGet":"Open-source OCR engine you run yourself.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/tesseract-ocr/tesseract/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, byte-identical: 'Apache License Version 2.0, January 2004'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_ocr","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"layout-aware-ocr","jtbdName":"Layout-aware OCR & form extraction","currentPickId":"reducto","currentPickScore":8.11,"challengerId":"llama-parse","challengerScore":8.24,"currentScoreGap":0.13,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.28,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["LlamaParse (llama-parse) outperforms Reducto (reducto) by >= 0.28 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Reducto's representative SKU for layout-aware-ocr without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=reducto) 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":"llama-parse","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.28,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"reducto","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"reducto","immediateOverrideUrl":"/api/decide?jtbd=layout-aware-ocr&exhausted=reducto"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=layout-aware-ocr","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"layout-aware-ocr","providerId":"llama-parse","outcome":"worked","detail":"Comparative production evaluation on layout-aware-ocr (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":["LlamaParse (llama-parse) outperforms Reducto (reducto) by >= 0.28 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Reducto's representative SKU for layout-aware-ocr without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=reducto) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"layout-aware-ocr","primary":{"providerId":"reducto","name":"Reducto","overall":8.11,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.11,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for Layout-aware OCR & form extraction; healthy/eligible under caller constraints."},"fallback":[{"providerId":"llama-parse","name":"LlamaParse","overall":8.24,"scoreBand":{"low":7.6,"mid":8.2,"high":8.8,"halfWidth":0.6,"basis":"editorial_prior","display":"7.6–8.8 (editorial prior)"},"scoreLayers":{"editorialPrior":8.24,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Layout-aware OCR & form extraction."},{"providerId":"unstructured","name":"Unstructured","overall":8.13,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.13,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-19","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Layout-aware OCR & form extraction."},{"providerId":"jina","name":"Jina AI","overall":8.07,"scoreBand":{"low":7.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"scoreLayers":{"editorialPrior":8.07,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-03","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Layout-aware OCR & form extraction."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"reducto","activePrimaryId":"reducto","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.5,"mid":8.1,"high":8.7,"halfWidth":0.6,"basis":"editorial_prior","display":"7.5–8.7 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"layout-aware-ocr","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.13,"decidingFactor":null,"tieNote":null,"rationale":"Distinct from `document-parse` (general LLM-ready chunks). Weight capability on layout fidelity. Confidence: medium-high on Reducto agentic OCR positioning.","whenNotTopPick":"Simple markdown chunking is enough (LlamaParse), or you need broad ETL connectors (Unstructured).","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14 (reducto.ai/pricing): Standard $150 free usage then list: r-1 Parse $10 / 1k pages, Extract $20, Deep Extract $40, Split $20, Classify $7.50, Edit $60 ($15 pre-filled). Growth = volume + ZDR/BAA + EU/AU residency. Enterprise VPC/on-prem. Up to $5k migration credi…","cite":"Depot Pick for layout-aware-ocr: reducto (asOf 2026-09-14). See GET /api/jtbds/layout-aware-ocr + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/layout-aware-ocr?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=layout-aware-ocr","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/reducto","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=layout-aware-ocr","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":"Simple markdown chunking is enough (LlamaParse), or you need broad ETL connectors (Unstructured).","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"llama-parse","name":"LlamaParse","overallForJob":8.24,"pickOverallForJob":8.11,"beatsPickOn":["pricePerformance","latencyReliability","developerDx","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":4.5,"runnerUpLockInRisk":4.8,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":[],"runnerUpExitSignals":[],"pickNotes":[],"selfHostFallback":[{"id":"florence-2-base","name":"Florence-2-base","license":"MIT","sourceUrl":"https://huggingface.co/microsoft/Florence-2-base/raw/main/LICENSE"},{"id":"paddleocr","name":"PaddleOCR","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/PaddlePaddle/PaddleOCR/main/LICENSE"},{"id":"easyocr","name":"EasyOCR","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/JaidedAI/EasyOCR/master/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up LlamaParse (4.5 vs 4.8). Self-host fallback listed for this job: Florence-2-base, PaddleOCR, EasyOCR.","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.153), Depot Pick for layout-aware-ocr: reducto, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/layout-aware-ocr","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/layout-aware-ocr) (v0.12.153) — Depot Pick for `layout-aware-ocr`: **reducto** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.153","role":"depot_pick","jtbdId":"layout-aware-ocr","providerId":"reducto","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/layout-aware-ocr","api":"https://getagentdepot.com/api/decide?jtbd=layout-aware-ocr"},"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":2,"sourcesReachable":2,"pricingRows":2,"pricingRowsReconfirmed":1,"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-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"sourced_rows","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch","shape":"sourced_rows","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[{"id":"reducto-parse-1k-pages","providerId":"reducto","sku":"r-1 Parse API","unit":"usd_per_1k_pages","amountUsd":10,"currency":"USD","sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_pages","priceSortEligible":false,"qualifier":"Standard (pay-as-you-go) rate per 1,000 pages after $150 free usage. Growth and Enterprise are custom."},{"id":"reducto-extract-1k-pages","providerId":"reducto","sku":"Extract API","unit":"usd_per_1k_pages","amountUsd":20,"currency":"USD","sourceUrl":"https://reducto.ai/pricing","asOf":"2026-10-19","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_pages","priceSortEligible":false,"qualifier":"Standard rate per 1,000 pages. Deep Extract $40 per 1,000 pages."}],"notesExcerpt":"As of 2026-09-14 (reducto.ai/pricing): Standard $150 free usage then list: r-1 Parse $10 / 1k pages, Extract $20, Deep Extract $40, Split $20, Classify $7.50, Edit $60 ($15 pre-filled). Growth = volume + ZDR/BAA + EU/AU residency. Enterprise VPC/on-prem. Up to $5k migration credi…","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://reducto.ai","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":"Partial coverage. Providers without a fetched SKU are omitted. See GET /api/pricing."},"links":{"jtbd":"/jtbds/layout-aware-ocr","jtbdApi":"/api/jtbds/layout-aware-ocr","leaderboard":"/api/leaderboards?jtbd=layout-aware-ocr","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=layout-aware-ocr","decide":"/api/decide?jtbd=layout-aware-ocr","humanPage":"/jtbds/layout-aware-ocr","alternatives":"/api/alternatives?provider=reducto","canonical":"/api/canonical","quote":"/api/quote?jtbd=layout-aware-ocr","falsify":"/api/falsify?jtbd=layout-aware-ocr"},"constraintBundle":{"task":null,"jtbd":"layout-aware-ocr","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":"reducto","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=layout-aware-ocr"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}