We scored 60 AI answers with DeepRails and with Amazon Bedrock's built-in AI judge, then compared both with scores from human graders. On answers people graded as partly right (50 or 75 out of 100), DeepRails was off by 7 to 8 points on average; Bedrock was off by 17 to 22. On answers that were clearly right or clearly wrong, Bedrock did as well or better.
This article gives the method, every result and the raw data. It also covers what Amazon Bedrock Guardrails, AWS's runtime filter, can and can't check, what each costs, and how teams move from blocking bad answers to correcting them.
Updated October 23, 2026
We corrected what this benchmark compared. The AWS side was Amazon Bedrock's model-evaluation judge, which scores correctness and completeness, not Bedrock Guardrails, which has no such checks. The results now cover only the two metrics the study measured, with figures taken straight from the raw data, and Bedrock Guardrails' features and prices come from AWS's own pages as of this date.
Key findings
- - On partly right answers, DeepRails' correctness scores were off from the human graders' by 8 points on average, against 22 for Bedrock. For completeness, 7 against 17.
- - On clear-cut answers (human score 0 or 100), Bedrock matched or beat DeepRails. Bedrock gave a perfect 100 to 39% of everything it scored.
- - Bedrock scored correctness only as 0, 50 or 100, and completeness only as 0, 25, 50, 75 or 100. DeepRails scores Correctness and Completeness on a continuous scale from 0 to 1.
- - Bedrock Guardrails can block, mask or flag an answer. DeepRails Defend can also repair or regenerate a failing answer and check it again before the user sees it.
1. Why scoring accuracy matters in production
Every AI guardrail system makes two types of errors: false positives (flagging good outputs as hallucinations) and false negatives (letting bad outputs through). Both are expensive in production.
False positives create unnecessary remediation cycles, increase latency, and waste compute. False negatives are worse: they deliver hallucinated content to users, erode trust, and in regulated industries, create legal and compliance exposure.
The hard cases are in the middle. A clearly wrong answer and a clearly right one are easy for any judge. Many production failures look like an answer that is mostly right with one wrong claim, or complete except for the one step the user asked about. Most DeepRails customers set their pass/fail thresholds between 40% and 80% (docs), so a judge that is accurate there decides whether the threshold works.
2. How we tested
Benchmark design
- Dataset: 60 question-and-answer pairs from education, legal and real estate use cases: 30 scored for Correctness and 30 for Completeness.
- Difficulty levels: people graded each pair on a five-step scale (0, 25, 50, 75 or 100), with 6 pairs at each step for each metric. The 12 pairs per metric graded 50 or 75 are the partly right answers, where production thresholds live.
- Human reference: people scored every pair, with a written rationale for most; that score is the benchmark's ground truth.
- The two judges: DeepRails' Correctness and Completeness guardrail metrics, and Amazon Bedrock's built-in LLM-as-a-judge metrics of the same names. AWS documents Bedrock's Correctness judge on a 3-point scale and its Completeness judge on a 5-point scale, normalized to 0–1 (Bedrock evaluation metrics; judge scales).
- Repetitions: each system scored every pair three times, to measure consistency as well as accuracy.
- Measure: how far each system's average score was from the human score, in percentage points. Lower is better.
Every input, output, human rationale and individual score is in the raw data (Google Sheet, view only). The study is DeepRails' own, not an independent audit.
3. Benchmark results
Average distance from the human score, in points out of 100, by how the human graded the answer. Lower is better; for each metric, the better of the two is green.
| Human score | Correctness: DeepRails | Correctness: Bedrock | Completeness: DeepRails | Completeness: Bedrock |
|---|---|---|---|---|
| 0 (clearly wrong) | 4 | 0 | 16 | 6 |
| 25 | 7 | 25 | 12 | 6 |
| 50 | 10 | 20 | 6 | 14 |
| 75 | 5 | 25 | 9 | 21 |
| 100 (clearly right) | 2 | 0 | 8 | 0 |
| 50 and 75 (partly right) | 8 | 22 | 7 | 17 |
What the numbers say
In the middle, DeepRails is closer to the human. Bedrock's correctness judge can only say 0, 50 or 100, so an answer a person grades 75 lands on 50 or 100, 25 points away. DeepRails' continuous score can land near 75.
At the extremes, Bedrock is as good or better. Bedrock scored the clearly right and clearly wrong answers almost exactly, and its completeness judge beat DeepRails' on answers graded 0 or 25. If your only question is "totally wrong or fine?", a coarse judge can be enough.
Consistency is mixed. Bedrock's completeness scores moved by 25 points or more between runs on 9 of 30 identical inputs, against 3 for DeepRails. On correctness it was the other way round: Bedrock's scores spread by 2 points on average across three runs, DeepRails' by 19, and DeepRails' moved 25 points or more on 11 of 30.
4. What this means in practice
A threshold is only as good as the score behind it. If you block or repair every answer that scores under 70%, a judge that can only answer 0, 50 or 100 puts a 75 answer on the wrong side of the line every time it says 50.
Legal: contract analysis
A contract summary that gets every clause right except the termination date is partly right, not wrong. A judge that scores it 50 sends it for repair alongside answers that are useless; a judge that scores it 100 lets the wrong date through.
Education: AI tutoring
A worked math answer that reaches the right result but skips a step is incomplete. A completeness score that moves 25 points between runs on the same answer means the same lesson passes on Monday and fails on Tuesday.
Real estate: investor questions
An answer about owning a mixed-use building that covers transit access but skips taxes and shared-cost allocation is mostly incomplete. Scoring it accurately is what lets an automated repair step add the missing parts.
Finance: compliance reporting
A compliance summary with one unsupported claim is a potential audit finding. Bedrock Guardrails' contextual grounding check, which scores an answer against a source you supply, is the closest Bedrock tool for this; DeepRails' Context Adherence metric does the same job claim by claim.
5. What Amazon Bedrock Guardrails can and can't check
Bedrock Guardrails is AWS's runtime filter for AI inputs and answers. It has six safeguards, all generally available (AWS documentation, read October 23, 2026):
- Content filters for text and images: hate, insults, sexual content, violence, misconduct, and prompt attacks such as jailbreaks and prompt injection.
- Denied topics you define, and word filters.
- Sensitive information filters for personal data and your own patterns, which can mask what they find.
- Contextual grounding checks, which give each answer a grounding score and a relevance score from 0 to 1 against a source and query you supply; you set the pass mark between 0 and 0.99 (AWS).
- Automated Reasoning checks, which test an answer against logic rules you write and return findings such as valid or invalid.
Guardrails works with models outside Bedrock too, including OpenAI and Google Gemini models, through its ApplyGuardrail API (AWS). What it doesn't do: none of the six safeguards scores whether an answer is complete, and only contextual grounding (against your source) and Automated Reasoning (against your rules) check whether it is true. Bedrock's correctness and completeness scoring lives in its separate model-evaluation tool, the judge tested above.
How DeepRails scores: Multimodal Partitioned Evaluation
DeepRails uses Multimodal Partitioned Evaluation (MPE), the engine behind every DeepRails metric (docs).
- Partitioned reasoning: Each output is decomposed into verifiable units. Claims are extracted and evaluated individually rather than assessing the entire output as a monolithic block.
- Dual-model consensus: Two different LLMs (often from different providers) evaluate each unit in parallel. The generating model never judges itself.
- Confidence calibration: Each judge self-reports confidence for every sub-check. Final scores aggregate using confidence-aware weighting, so low-confidence evaluations carry less weight.
- Multiple evaluation runs: Evaluations run several times per model and are averaged to reduce noise.
- Continuous scoring: Results are returned as scores from 0 to 1 per metric, so teams can set thresholds in small steps. Comprehensive Safety is the exception: any violation fails it.
| Feature | Amazon Bedrock | DeepRails |
|---|---|---|
| Correctness and completeness scores | In the model-evaluation tool only, on 3- and 5-point scales | At runtime, 0 to 1, in Monitor and Defend |
| Grounding against a source | Contextual grounding check, 0 to 1 | Context Adherence, 0 to 1, claim by claim |
| Harmful content | Content filters, denied topics, word and sensitive-information filters | Comprehensive Safety |
| Judges per check | One judge model you choose per evaluation job | Two models in parallel, confidence-weighted |
| Explanations | Automated Reasoning returns findings with the rules behind them | A rationale for every metric on every answer |
| When a check fails | Block, mask (sensitive information) or flag | Repair (FixIt) or regenerate (ReGen), then re-check; or record the failure (Do Nothing) |
6. Beyond detection: the correction gap
Accuracy is one dimension of the comparison. The other is what happens after a hallucination is detected.
Amazon Bedrock Guardrails
When a safeguard triggers, Guardrails blocks the answer and shows the message you configured, masks sensitive information, or only reports what it found (AWS). Automated Reasoning checks only report findings; rewriting the answer from them is something your application builds (AWS).
DeepRails Defend API
When an answer scores below your workflow's threshold, Defend applies the fix you chose for that workflow, then scores the new answer again before delivery, up to your retry limit (docs).
FixIt: iterative output improvement
FixIt takes the original output and the failure rationale (which specific claims failed, which metrics were below threshold, and why) and iteratively improves the response. It preserves what was correct and rewrites what failed, so it suits answers that are mostly right and outputs whose format must stay the same.
ReGen: complete regeneration with controlled variance
ReGen generates a completely new response from the original prompt when the initial output is too flawed for iterative repair. The new output is evaluated against the same guardrails before delivery. Best suited for cases where the original response has fundamental structural or factual problems.
The remediation lifecycle
- Evaluate: Score all selected guardrail metrics with detailed rationales.
- Diagnose: Identify which metrics failed and why.
- Remediate: Apply FixIt or ReGen, or record the failure with Do Nothing, as the workflow is set.
- Re-evaluate: Only failed metrics are re-scored (Assumed Pass for metrics that already passed).
- Repeat or deliver: Continue until all metrics pass or the retry limit is reached.
7. Cost and latency comparison
There are real trade-offs in accuracy, cost, and speed. Prices below are the providers' list prices on October 23, 2026.
| Dimension | Amazon Bedrock Guardrails | DeepRails |
|---|---|---|
| Speed | Runs inline on Bedrock model calls, or on any text through ApplyGuardrail. | Set by run mode, from Super Fast for screening to Precision Max for critical paths (run modes). Two judges in parallel add latency; Precision Max doesn't stream. |
| Remediation time | None built in. | Extra cycles for FixIt or ReGen, capped by your retry limit. Assumed Pass re-scores only failed metrics. |
| Pricing | Per 1,000 text units (a text unit is up to 1,000 characters): content filters and denied topics $0.15; sensitive information and contextual grounding $0.10; Automated Reasoning $0.17 per policy; word filters free (AWS pricing). | Plans from $49 a month plus from $15 to $20 per 1,000 API calls, by plan; a free Playground (pricing). |
| Where it runs | In your AWS account; works with outside models through ApplyGuardrail. | An API with no infrastructure to manage; works with outputs from any LLM provider. |
Bedrock Guardrails costs far less per check. For high-volume, low-stakes screening where cost matters more than nuance, that is a legitimate advantage.
DeepRails costs more per call because two judges score every claim. The trade-off: finer scores, a rationale for every metric, and automatic correction. For outputs in healthcare, legal, finance, or customer-facing products where a wrong answer costs more than the check, that trade usually pays. Teams can also screen with Super Fast and reserve Precision Max for critical paths.
8. When to use each
This is not a one-size-fits-all decision. Both systems have valid use cases, and many teams run both.
Choose Bedrock Guardrails when:
- •You are already deep in AWS and want filters attached to Bedrock model calls, enforced across accounts.
- •Filtering is enough. Your application can handle a blocked answer without needing a corrected one.
- •You need content and personal-data filters. Bedrock's content, topic and sensitive-information filters cost $0.15 or less per 1,000 text units, and word filters are free.
- •Your rules are formal. Automated Reasoning checks answers against logic rules you write, such as a policy document.
Choose DeepRails when:
- •You need corrected outputs, not just flags. Users expect a reliable answer, and your application cannot afford to return errors or canned responses.
- •You need correctness and completeness scored on every live answer, not only in offline evaluation jobs.
- •Your thresholds sit in the middle. Partly right answers are where DeepRails tracked human graders most closely.
- •You want one reliability layer across providers: Monitor to watch, Defend to correct, for outputs from OpenAI, Anthropic, Google, open-source or self-hosted models.
✓ Do
- ✓Run both systems in shadow mode on your actual production data before committing. Real-world performance matters more than benchmarks, including this one.
- ✓Build your own small test set with human scores across the range, not just clear passes and fails.
- ✓Start with Monitor to build confidence in scoring accuracy before switching to Defend for automatic correction.
- ✓Use different run modes for different paths: Super Fast for high-volume screening, Precision Max for high-stakes evaluations.
✗ Don't
- ✗Assume a guardrail is working because it is not blocking outputs. A high false-negative rate means hallucinations pass through silently.
- ✗Set a 70% threshold on a judge that can only answer 0, 50 or 100.
- ✗Use detection-only guardrails in user-facing products without a fallback plan. Blocking an output without providing a corrected answer creates a broken user experience.
- ✗Treat guardrail accuracy as a one-time check. Model outputs evolve with prompt changes, model updates, and data drift; see LLM monitoring and drift detection.
9. Practical migration guide
For teams using Bedrock Guardrails and adding DeepRails, the integration patterns are similar: both are API checks that sit between your application and the end user. You can keep Bedrock's filters and add DeepRails for scoring and correction.
Step-by-step migration
- Start with Monitor in shadow mode. Send the same outputs to DeepRails Monitor alongside your Bedrock guardrails. Compare results, and find where Bedrock misses issues or over-flags.
- Map your Bedrock policies to DeepRails metrics. Bedrock content filters map roughly to DeepRails Comprehensive Safety. Contextual grounding maps to Context Adherence. DeepRails adds Correctness, Completeness, Instruction Adherence, and Ground Truth Adherence as metrics you can enable one by one.
- Set thresholds. Start with automatic thresholds at a medium tolerance. Tune them from your shadow-mode results, then switch to custom thresholds (0.0 to 1.0) once you know the right sensitivity for your domain.
- Enable Defend with FixIt. Once monitoring confirms DeepRails catches what you need, switch from Monitor to Defend. Start with FixIt on your highest-stakes paths.
- Keep or retire Bedrock Guardrails. Many teams keep its content and personal-data filters and let DeepRails handle correctness and correction. Keep Bedrock as your model provider if you like; DeepRails works with any model.
SDK quickstart
DeepRails offers SDKs in Python, TypeScript, Go, and Ruby (quickstart).
# Python
pip install deeprails
from deeprails import DeepRails
client = DeepRails(api_key="your-api-key")
# Create a Defend workflow
workflow = client.defend.create_workflow(
name="production-guardrails",
threshold_type="automatic",
improvement_action="fixit",
automatic_hallucination_tolerance_levels={
"correctness": "high",
"completeness": "medium",
"comprehensive_safety": "high"
}
)
# Submit an event for evaluation + correction
event = client.defend.submit_event(
workflow_id=workflow.workflow_id,
model_input={"user_prompt": "Explain HIPAA requirements..."},
model_output="HIPAA requires...",
model_used="gpt-6.1-sol",
run_mode="precision"
)10. Getting started
If your production AI needs accurate scores on partly right answers, automatic correction, and fine control over thresholds, DeepRails is built for that problem. Test it on your own data first.
Get started
Try DeepRails free in the Playground, explore the API documentation, or create an account to start evaluating your LLM outputs.
See DeepRails in production
Nightingale College
92% agreement with expert graders on 90,000 nursing skills videos a year.
Quiklearn
Grew its student numbers 100x with DeepRails Defend checking its AI, with no unsafe responses reported.
LearnWithAI
AI-generated math content accuracy improved from 20% to 99% through the DeepRails evaluation pipeline.
DeepRails scores every AI answer and corrects hallucinations before users see them. If you're weighing Bedrock Guardrails against other options, book a free call.
Book a free call
