MIS 752 · Lab 7 · Mikey Atwood

Catch the AI Lying: testing an AI on public-safety and advocacy facts

Ten gold question/answer pairs on public-safety and advocacy facts, one small free model, three ways of grading its answers (exact match, a lenient contains check, and an AI judge run twice), and a measurement of how reliable the grader itself is. Built in Google Colab on OpenRouter's free tier, $0. No survivor, client or case data was used. These numbers are this run's and will vary.
Read this first. This page evaluates an AI model. It is not legal, medical or safety advice and it is not a substitute for a trained advocate. Hotline numbers, statutes and travel rules change, so check any fact against its official source before relying on it. If you or someone else is in immediate danger, call 911. National Domestic Violence Hotline: 1-800-799-7233. National Human Trafficking Hotline: 1-888-373-7888.

The 30-second read

THE GOLD STANDARD items : 10 (3 code-lookup, 3 numeric, 2 yes-no, 1 short-phrase, 1 one-word) topics : crisis hotline numbers, a Nevada statute, a federal law, a travel rule for personal-safety products, sexual-assault care terminology, and questions about drink spiking and consent written before any model output was looked at -- that ordering is what makes it a standard instead of a rationalisation file : data/gold_qa.csv THE MODEL UNDER TEST model : liquid/lfm-2.5-2.6b:free at temperature 0.0 judge : nvidia/nemotron-3-ultra-550b-a55b:free, two runs at 0.7 and 1.1 API cost : $0.000000 (every model here is on OpenRouter's free tier, so cost is $0 by construction) ACCURACY ON THE SAME 10 ITEMS, THREE WAYS OF GRADING exact match : 7/10 = 70% word for word; deterministic, free, brittle contains gold : 7/10 = 70% lenient; can give false passes AI judge, run 1 : 7/10 = 70% temperature 0.7 AI judge, run 2 : 7/10 = 70% temperature 1.1 WHAT THE 3 MISSES WERE a web-search command, not an answer : 2 a wrong answer : 1 no answer (the call failed) : 0 IS THE GRADER ITSELF RELIABLE? (the part almost nobody publishes) judge vs itself : agreement 1.0, kappa 1.0 = almost perfect exact vs judge : agreement 1.0, kappa 1.0 = almost perfect scores used : 0, 10 (on a 0-10 scale) mean |score gap| : 0.00 points, over the 10 of 10 items scored by both runs unparseable : 0/10 judge replies ignored the output format resolution : one flipped verdict moves accuracy by 10 points at n=10 DISAGREEMENT DIRECTION judge passed what exact match failed : 0 judge failed what exact match passed : 0

The judge gave the same verdict on every item, both times

One row per question, two marks per row: the judge’s score on its first run (large red circle) and its second run (small blue square on top). When the two runs agree exactly, the red circle shows around the blue square. Each row label also says whether exact match passed that item, and the number at the right is run 2 minus run 1. A grader that cannot repeat itself is not a measuring instrument, and this is the cheapest way to find out.

Exact match and the judge never disagreed on these 10 items

One mark per question on the judge’s own 0–10 score. A blue circle means exact match passed the item; a red cross means it failed. The dotted line is the score at which a judge verdict normally flips to PASS, and “graders differ” marks any item where exact match and the judge disagree.

The pass/fail table

Every gold question, what the model said, and what each grader decided. Read the last column first: a “NO” is a row where exact match and the judge disagreed, and that is where the information is.

ItemTypeGold answerWhat the model saidExact matchJudge run 1Judge run 2Judge scoresGraders agree?
dv_hotline_numbercode lookup800-799-7233800-799-7233PASSPASSPASS10 | 10yes
trafficking_hotline_numbercode lookup888-373-7888888-373-7888PASSPASSPASS10 | 10yes
nrs_sexual_assaultcode lookupNRS 200.366[web-search command] [google(query='Nevada Revised Statutes NRS sexual…FAILFAILFAIL0 | 0yes
pepper_spray_checked_oznumeric4[web-search command] [google(query='TSA rules maximum size of single c…FAILFAILFAIL0 | 0yes
standard_drink_gramsnumeric1414PASSPASSPASS10 | 10yes
vawa_enacted_yearnumeric19941994PASSPASSPASS10 | 10yes
sane_acronymshort phraseSexual Assault Nurse ExaminerSexual Assault Nurse ExaminerPASSPASSPASS10 | 10yes
drink_strip_negative_yesnoyes noNONOPASSPASSPASS10 | 10yes
unconscious_consent_yesnoyes noNONOPASSPASSPASS10 | 10yes
dfsa_common_substanceone wordalcoholbenzodiazepineFAILFAILFAIL0 | 0yes

What the AI got wrong, in the judge’s words

Every item either grader failed. Two different problems hide in the word “wrong”: a model that answers incorrectly, and a model that never answered at all (here, by emitting a web-search command it had no way to run). They need different fixes.

ItemGold answerWhat the model saidKind of missThe judge's reason (run 1)
nrs_sexual_assaultNRS 200.366[web-search command] [google(query='Nevada Revised Statutes NRS sexual assault definition section number'), go…a web-search command, not an answerCandidate provided only search queries, not the required NRS section number.
pepper_spray_checked_oz4[web-search command] [google(query='TSA rules maximum size of single container of pepper spray allowed in chec…a web-search command, not an answerCandidate provided only search tool calls, not an answer to the question.
dfsa_common_substancealcoholbenzodiazepinea wrong answerCandidate's answer contradicts the gold answer on the most common substance.

By answer type

Answer typeItemsExact match passedJudge passed (run 1)
code lookup32/32/3
numeric32/32/3
one word10/10/1
short phrase11/11/1
yes no22/22/2

Auditing the grader

ComparisonItemsAgreementDisagreementsUnparseableKappaKappa reads asMean score gap
Exact match vs judge (run 1)101.0001.0almost perfectn/a (two different graders)
Judge run 1 vs judge run 2101.0001.0almost perfect0.00 points, over the 10 of 10 items scored by both runs

Confusion matrix: rows are the exact-match verdict, columns the judge run 1 verdict. Off-diagonal cells are disagreements; UNPARSEABLE is a column, not a dropped row, so a grader failure can never flatter the accuracy.

Exact match ↓ / Judge run 1 →PASSFAILUNPARSEABLE
FAIL030
PASS700

What the audit can and cannot tell you

Exact match and the judge gave the same verdict on every item. That is a limit of this question set, not a finding about judges: every answer was either word for word the gold answer or wrong, so no item tested whether a judge can recognise a correct answer worded differently, or reject a fluent wrong one. On this set the judge added nothing that a word-for-word check did not. The judge gave the same verdict on both runs for all 10 items (kappa 1.0, almost perfect). That describes these items, on one day, at these two temperatures. It is not a guarantee: hosted models change with load and version. The judge's 0-10 score took only the values 0 and 10, so in practice it gave a pass or a fail, not partial credit.

Limits of this pilot

Size. 10 items: one flipped verdict moves any percentage by 10 points, so read every number with its denominator. One model, one judge, one day. A single small free model answered and a single free model graded. Free hosted models change without notice, so a re-run can differ. The gold answers were written from public sources and have not been independently reviewed by an advocacy, legal or law-enforcement expert. Hotline numbers, statutes and travel rules change; verify any fact before relying on it. No hard cases yet. To make a set like this fit to inform any real decision it would need items built to break exact match (the right answer in different words or units), items built to fool a judge (a fluent wrong answer, or an answer that argues the gold answer is wrong), a way to tell an honest "I don't know" from a confident wrong answer, crisis and escalation questions that people review rather than a judge, and a sample graded by two or three advocates so the judge can be compared with people and not only with itself. No survivor, client or case data was used: every question is a general public fact.

How this was measured

Ten gold question/answer pairs on public-safety and advocacy facts (crisis hotline numbers, a Nevada statute, a federal law, a travel rule for personal-safety products, sexual-assault care terminology, and questions about drink spiking and consent) were written before any model output was looked at and saved as data/gold_qa.csv. One model (liquid/lfm-2.5-2.6b:free) answered all ten at temperature 0.0 through OpenRouter, with a fixed system prompt that is identical for every item, because the prompt is part of the instrument. Three graders scored the same answers. Exact match normalizes case, Unicode look-alikes, Markdown emphasis, answer labels, surrounding quotes and trailing punctuation, then requires the whole string to equal the gold answer or one of its accepted variants (for example a hotline number written with different punctuation). Contains-gold is a deliberately lenient diagnostic that produces false passes. The AI judge (nvidia/nemotron-3-ultra-550b-a55b:free) reads the question, the gold answer and the model's answer, and returns VERDICT / SCORE / REASON in three lines. It is told that the gold answer is authoritative, that the same quantity in a different unit or the same number in a different format is a pass, and that anything that could put a person at risk if acted on, such as a wrong phone number, is a fail. The parser clamps the score to 0-10 and returns UNPARSEABLE rather than guessing when the format was not respected. The judge was run twice, at temperature 0.7 and again at 1.1, and the two runs are compared with raw agreement and Cohen's kappa (chance-corrected, read on the Landis and Koch scale). Kappa bands are a convention, not a law, and at n=10 a single flipped item moves accuracy by 10 points, so treat every number here as a pilot measurement with its denominator attached. Every model called is on OpenRouter's free tier at $0 per token, verified against the live catalog at run time. Answers and verdicts are cached to disk, so re-running a cell never spends quota twice, and the harness counts requests against a daily budget and refuses to exceed it. This is a ten-item pilot, not a validated safety tool. It does not use real survivor, client or case data, and nothing here is legal, medical or safety advice.