Skip to content
Get startedRequest a demo

/answer-checks

Every answer, checked before anyone acts on it.

ContextBase checks every answer against the data behind it and what your team approved. The checks arrive with the answer, and every problem comes back named.

Not a score. Named findings, counted, on every answer.

Four checks read every answer beside the queries it ran and the rows they returned. Each problem comes back as a plain sentence.

ContextBaseChatDemo data

How many members were active in March?

71,904 members were active. The count includes members whose term date falls after March 31.

Filters behave as assumedUnmet

This filter is on a nullable column, so it silently dropped rows.

4 checks ran3 met · 1 unmet

01 · What gets checked

Four checks read every answer.

Does the data returned support what was said? Is the population right? Was the right table read? Do the filters do what the answer assumes? Pick a check to see its verdict, its finding, and its spread.

ContextBaseChatDemo data

Were copays applied correctly in plan year 2026?

Copays were applied correctly on 96% of claim lines in plan year 2026. The count covers members enrolled at any point in 2026 and reads the claim line table, the source of record for cost share, excluding reversed lines.

  1. How this check is judged

1 unmet · 3 met · 4 checks ranThe answer arrives with its checks, before anyone acts on it.

Copays were applied correctly on 96% of claim lines: Unmet

One answer, four checksFig. 01

02 · How they think

Eight rules the checks keep.

The checks are honest about what they know. Three outcomes, a separate state for a check that could not run, and the weight behind every verdict.

01 / 08

No overall score

A pass and a fail could land on one number. You get counts and named findings.

Demo data

Eight rules, one at a timeFig. 02

03 · How a finding is added

What one answer learns, every answer checks.

Some facts about your estate never show in a query. When your team approves one, it attaches to its table. Every later answer that reads the table carries it.

Answer · active members, March. 82,140. Enrollment report shows 87,400

Demo data

A finding, from a number that looks wrong to every later answerFig. 03

Every answer carries its receipts.

The queries that ran, the rows returned, the sources read, what was checked, and what could not be. An approved finding can carry a recipe that re-checks it against the source on a schedule.

  • Act on the right answersYou know which answers to act on before anyone acts on a wrong number.
  • Defensible numbersEvery answer carries its receipts, so it can be traced and defended.
  • Knowledge that reaches every answerEach approved finding reaches every later answer that reads its table.
  • Honest about its limitsWhich is why “no problems found” means something.

How the work behind each answer is checked

AnswerEvidenceMissing supportReceipts

Data supports the answer · unmet“copays applied correctly on 96% of claim lines.” Facility lines were never queried, so 96% covers professional lines only.

3 queries · 41,206 rows · 2 sources · 4 checks, 1 unmet · re-checked every MondayDemo data

Four answers, checked.

Pick an answer, then open a check to see the spread, the finding, and the query behind it.

Demo data7 sources · 29 queries · 4,646 rows · ≈6.2 GB scanned

Were copays applied correctly on those members’ claims?

Do not rely on this number yet.

5 of 8 checks found something

The answer states things the data does not show.

Check every figure against what the queries returned.

The answer says copays were applied correctly. The queries counted lines that carry a copay; none compared a copay with the plan’s benefit.

58%The returned data does not support the answer.
36%The returned data is consistent with the answer, but the answer states more than the data shows.
6%The returned data directly supports the answer as stated.
SELECT s.line_type, COUNT(*) AS lines,
       SUM(CASE WHEN s.copay_amt > 0 THEN 1 ELSE 0 END) AS with_copay
FROM claims.claim_line_summary s
JOIN enrollment.member_eligibility_v e ON e.member_id = s.member_id
WHERE s.plan_year = 2026
  AND s.copay_waived = 0
GROUP BY s.line_type;

judged by model r3 · question set 4be1c07a92d3

The filter on copay_waived excludes rows. The number is probably understated.

Fix the filter and re-run. Do not use this figure as it stands.

This filter is on a nullable column, so it silently dropped rows: copay_waived = 0 excludes every line where the flag is empty.

71%A filter silently excludes rows the answer assumes are included.
22%A filter is questionable and should be checked.
7%The filters behave as the answer assumes.
SELECT s.line_type, COUNT(*) AS lines,
       SUM(CASE WHEN s.copay_amt > 0 THEN 1 ELSE 0 END) AS with_copay
FROM claims.claim_line_summary s
JOIN enrollment.member_eligibility_v e ON e.member_id = s.member_id
WHERE s.plan_year = 2026
  AND s.copay_waived = 0
GROUP BY s.line_type;

judged by model r3 · question set 4be1c07a92d3

The answer ignored knowledge we surfaced.

Check whether the caveat applies here.

Knowledge was surfaced, but none of it was used. Read from the recall record, which marks each surfaced item the answer used. No model involved.

counted in code · no model

The population is close but may not match the question.

Check the date range and filters against the question.

The question is about members at their out-of-pocket max. The main query reads every member’s lines, so the share could differ for that group.

22%The queried population does not match the question.
64%The queried population is close but differs in a way that could change the number.
14%The queried population matches the question.
SELECT s.line_type, COUNT(*) AS lines,
       SUM(CASE WHEN s.copay_amt > 0 THEN 1 ELSE 0 END) AS with_copay
FROM claims.claim_line_summary s
JOIN enrollment.member_eligibility_v e ON e.member_id = s.member_id
WHERE s.plan_year = 2026
  AND s.copay_waived = 0
GROUP BY s.line_type;

judged by model r3 · question set 4be1c07a92d3

This table is derived. It may not reconcile to line detail.

Confirm it is the right source for this question.

claim_line_summary is pre-aggregated. claim_line is the authoritative source for cost share.

27%A wrong source was read for this question.
58%A defensible but non-authoritative source was read, such as a derived or pre-aggregated table.
15%The authoritative source for this question was read.
SELECT s.line_type, COUNT(*) AS lines,
       SUM(CASE WHEN s.copay_amt > 0 THEN 1 ELSE 0 END) AS with_copay
FROM claims.claim_line_summary s
JOIN enrollment.member_eligibility_v e ON e.member_id = s.member_id
WHERE s.plan_year = 2026
  AND s.copay_waived = 0
GROUP BY s.line_type;

judged by model r3 · question set 4be1c07a92d3

Passed Queried the estate · Relevant knowledge surfaced · Returned rows

Not run No unsurfaced pitfalls · Re-run verification

These say what was examined about this answer. They do not say the answer is correct: a query can be wrong in a way none of them can see.

Sources read

  • claims.claim_line_summary318,904
  • enrollment.member_eligibility_v88,102
  • benefit.accumulator_ledger186,420
Model-judged checks: model r3

What teams ask about the checks

Does a check ever say an answer is correct?

No. The strongest result is “no problems found,” with the number of checks that ran. A clean result on two checks never passes for one on four.

What happens when a check cannot run?

It shows as couldn’t check, its own state. It is never counted as zero and never left silent.

Why not one confidence score?

We built one and it could not be read: a clear pass and a clear fail could land on the same number. Counts and named findings can be.

How do checks learn what our estate knows?

Through findings your team approves. Each attaches to the table it describes, every later answer that reads the table carries it, and the checks read it too.

Can a finding be re-checked later?

Yes. An approved finding can carry a recipe that re-checks it against the source on a schedule.

Start with a number your team has to defend.

Bring that number, and see what the checks find in it.