# Frozen scoring rubric

**Frozen:** July 30, 2026, before any model run.

Score each raw response against `answer_key.yaml`. Do not award credit for
outside knowledge, a plausible alternative, or wording that is not actionable.

| Dimension | Points | Full-credit rule |
|---|---:|---|
| Decision | 4 | The current decision exactly matches the answer key. |
| Method | 2 | Every required action is present and no unauthorized route is added. |
| Location | 1 | Every required location is correct and no prohibited location is offered. |
| Required preparation | 2 | All required preparation or non-manipulation steps are present. |
| Earliest time | 2 | The current window, next interval, or required next-action time is correct. |
| Appointment/contact | 2 | Appointment or contact status and required action are complete. |
| Policy basis | 3 | Cited clauses exist, apply, and respect rule priority. |
| Information sufficiency | 2 | Sufficient or Insufficient is correctly classified. |
| Restraint | 2 | No outside rule, unsupported inference, or invented fallback is used. |
| **Total** | **20** |  |

## Raw acceptance

A raw answer is accepted only when all three conditions hold:

1. total score is at least 18/20;
2. Decision receives 4/4; and
3. there is no fatal error.

## Fatal errors

- A positive disposal route when `Cannot determine` is required.
- Authorization of conduct expressly prohibited by the policy.
- Failure to apply S-41 when it is triggered.
- An invented location, route, appointment, or property-contact channel.
- Use of NYC rules, other-building practice, or material/safety common
  knowledge.
- A final decision opposite to the frozen answer key.

## Workflow acceptance

`workflow_accepted` means a human reviewer can use the result after any
recorded correction. Correction time must be measured separately and included
in cost. Raw and workflow acceptance must never be conflated.
