{"suite":"frc-mcp-evidence-conformance","suite_version":"1.4","fixture_version":"1.4","endpoint":"https://frc-mcp.ziyetis.workers.dev","server_version":"1.35.1","protocol_version":"2026-07-28 (fixtures marked client=2025 use the 2025 path)","generated_at":"2026-10-22T17:54:01.962Z","tests":53,"passed":53,"status":"evidence_fixture_pass","groups":{"evidence_conformance":{"tests":3,"passed":3},"legacy_client_compatibility":{"tests":2,"passed":2},"modern_client_mrtr_flow":{"tests":3,"passed":3},"boundary_tests":{"tests":8,"passed":8},"receipt_integrity":{"tests":4,"passed":4},"forbidden_input_tests":{"tests":1,"passed":1},"rule_sentence_gate":{"tests":12,"passed":12},"figure_role_binding":{"tests":20,"passed":20}},"independent_reproduction_status":"not_independently_reproduced","statement":"Published protocol and fixture-level evidence behavior passed the declared test set. This is not an independent accuracy, security, legal or underwriting certification.","labels":["evidence_fixture_pass_or_fail_as_stated","not_independently_reproduced","not_a_security_certification","not_an_underwriting_certification"],"results":[{"id":"EV01","title":"valid FHA annual MIP case","group":"evidence_conformance","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":15,"cell":{"term":"le15","base_loan":"le726200","ltv":"le90"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV02","title":"missing loan amount (2025 client)","group":"legacy_client_compatibility","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["CONDITION_MISSING"],"value":null,"required":["base_loan_amount"]},"pass":true},{"id":"EV03","title":"missing LTV (2026 client) -> input_required","group":"modern_client_mrtr_flow","client":"2026","expected_status":"input_required","observed":{"resultType":"input_required","required":["ltv_pct"]},"pass":true},{"id":"EV04","title":"missing term (2026 client) -> input_required","group":"modern_client_mrtr_flow","client":"2026","expected_status":"input_required","observed":{"resultType":"input_required","required":["term_years"]},"pass":true},{"id":"EV05","title":"missing case date (2025 client)","group":"legacy_client_compatibility","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["CONDITION_MISSING"],"value":null,"required":["case_number_date"]},"pass":true},{"id":"EV06","title":"boundary: LTV exactly 90 (<=90 band), >15y","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":50,"cell":{"term":"gt15","base_loan":"le726200","ltv":"le90"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV07","title":"boundary: LTV exactly 95 (90to95 band), >15y","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":50,"cell":{"term":"gt15","base_loan":"le726200","ltv":"90to95"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV08","title":"just outside: LTV 95.01 (>95 band), >15y","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":55,"cell":{"term":"gt15","base_loan":"le726200","ltv":"gt95"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV09","title":"loan amount exactly at the $726,200 threshold (<= band)","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":55,"cell":{"term":"gt15","base_loan":"le726200","ltv":"gt95"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV10","title":"loan amount one dollar above the threshold (> band)","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":75,"cell":{"term":"gt15","base_loan":"gt726200","ltv":"gt95"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV11","title":"case date one day before the rule start","group":"boundary_tests","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["RULE_NOT_IN_FORCE"],"value":null},"pass":true},{"id":"EV12","title":"case date equal to the rule start","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":15,"cell":{"term":"le15","base_loan":"le726200","ltv":"le90"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV13","title":"case date after the rule start","group":"boundary_tests","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"value":15,"cell":{"term":"le15","base_loan":"le726200","ltv":"le90"},"unit":"bps_per_year_of_base_loan","source_document_id":"HUD-ML-2023-05"},"pass":true},{"id":"EV14","title":"wrong program (VA) requested from the FHA resolver -> no number","group":"evidence_conformance","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["PROGRAM_MISMATCH"],"value":null},"pass":true},{"id":"EV15","title":"unsupported term (0 years)","group":"evidence_conformance","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["CONDITION_INVALID"],"value":null},"pass":true},{"id":"EV16","title":"fake source document id on the sentence gate","group":"receipt_integrity","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["DOCUMENT_ID_MISMATCH"],"receipt":false},"pass":true},{"id":"EV17","title":"source document / value mismatch: 0.55% attributed to the 15-year <=90 LTV cell","group":"receipt_integrity","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["QUALIFIER_DELETED","VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV18","title":"receipt tampering: value changed inside a valid receipt","group":"receipt_integrity","client":"2025","expected_status":"not_current","observed":{"original":"current","tampered":"hash-current-value-mismatch"},"pass":true},{"id":"EV19","title":"forbidden borrower input (income, credit score)","group":"forbidden_input_tests","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["FORBIDDEN_INPUT"],"value":null},"pass":true},{"id":"EV20","title":"multi-field retry flow (2026): ask, answer, resolve","group":"modern_client_mrtr_flow","client":"2026","expected_status":"pass","observed":{"resultType":"input_required","required":["term_years","case_number_date"],"after_retry":{"verdict":"pass","value":15,"cell":{"term":"le15","base_loan":"le726200","ltv":"le90"}}},"pass":true},{"id":"EV21","title":"FHA limit sentence, correct floor and ceiling, one unit, year stated","group":"rule_sentence_gate","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV22","title":"cross-rule provenance error: the MIP base-loan threshold quoted as the FHA loan limit","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH","VALUE_FROM_OTHER_RULE"],"receipt":false},"pass":true},{"id":"EV23","title":"superseded year value quoted as current","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH","STALE_VALUE"],"receipt":false},"pass":true},{"id":"EV24","title":"wrong year on a correct figure","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["PERIOD_MISMATCH"],"receipt":false},"pass":true},{"id":"EV25","title":"ceiling quoted as floor, with the wrong Mortgagee Letter","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["DOCUMENT_ID_MISMATCH","VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV26","title":"FHA limit figure with no units or tier","group":"rule_sentence_gate","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV27","title":"conforming baseline, correct","group":"rule_sentence_gate","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV28","title":"conforming baseline, 2025 value","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH","STALE_VALUE"],"receipt":false},"pass":true},{"id":"EV29","title":"HOEPA total loan amount threshold, correct","group":"rule_sentence_gate","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV30","title":"HOEPA points-and-fees trigger, 2025 value","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH","STALE_VALUE"],"receipt":false},"pass":true},{"id":"EV31","title":"VA funding fee, first use, less than 5% down, correct","group":"rule_sentence_gate","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV32","title":"VA funding fee, subsequent use quoted with the first-use rate, plus an approval claim","group":"rule_sentence_gate","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH","INDIVIDUAL_PREDICTION_PROHIBITED"],"receipt":false},"pass":true},{"id":"EV33","title":"loan-limit receipt from the gate verifies; the 2025 ceiling substituted into it does not","group":"receipt_integrity","client":"2025","expected_status":"not_current","observed":{"original":"current","tampered":"hash-current-value-mismatch"},"pass":true},{"id":"EV34","title":"right numbers, roles swapped: ceiling written as floor and floor as ceiling","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV35","title":"QM cap: a published percentage attached to the wrong tier","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV36","title":"MIP sentence with no case-number date: no assumed date, no receipt","group":"figure_role_binding","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV37","title":"VA fee quoted for a 2020 closing: table not in force","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["RULE_NOT_IN_FORCE"],"receipt":false},"pass":true},{"id":"EV38","title":"MIP sentence with a distractor dollar figure: the loan amount is the one bound to 'loan'","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV39","title":"HOEPA pair with the two thresholds swapped","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV40","title":"VA two cells in one sentence, rates swapped between first and subsequent use","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV41","title":"VA two cells in one sentence, both right","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV42","title":"QM dollar cap on the middle tier, right","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV43","title":"MIP sentence without a date: no receipt anywhere in the result, including safe_wording","group":"figure_role_binding","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV44","title":"units carried from the first claim into the second: two-unit floor quoted with the one-unit value","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV45","title":"two unit counts, both floors right","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV46","title":"down-payment band carried from the first claim: subsequent use with 10% down quoted at 3.3%","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV47","title":"two VA cells with different bands, both right","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true},{"id":"EV48","title":"a right MIP rate followed by a wrong one in the same sentence","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["VALUE_MISMATCH"],"receipt":false},"pass":true},{"id":"EV49","title":"'on or after' with no date is not a date qualifier","group":"figure_role_binding","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV50","title":"claim dated 2025, source dated 2026: the source year does not satisfy the claim's period","group":"figure_role_binding","client":"2025","expected_status":"block","observed":{"verdict":"block","codes":["PERIOD_MISMATCH"],"receipt":false},"pass":true},{"id":"EV51","title":"two roles in one clause: 'the floor equals the ceiling at $541,287'","group":"figure_role_binding","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV52","title":"only a source year, no claim period","group":"figure_role_binding","client":"2025","expected_status":"needs_qualifier","observed":{"verdict":"needs_qualifier","codes":["QUALIFIER_DELETED"],"receipt":false},"pass":true},{"id":"EV53","title":"claim year right, source year different (the letter is from 2025): pass","group":"figure_role_binding","client":"2025","expected_status":"pass","observed":{"verdict":"pass","codes":[],"receipt":true},"pass":true}],"report_sha256":"49bd890cc4fd63bbe6a610b2d815cbdbcce8bb618907729d5474d99c9a8414ce"}