{
  "shard_id": "FV-PROPFLOOR-SHARD-B7-1",
  "spec_anchor": "FV-PBT-FLOOR-BUILD-SPEC.md §2/§3/§4",
  "population_definition": "all kernels in shard FV-PROPFLOOR-SHARD-B7-1, enumerated below by kernel id and spec digest",
  "human_sign_off": {
    "status": "PENDING",
    "name": null,
    "date": null
  },
  "independence_sentence": "Each item listed was reviewed and attested independently; the single signature is a mechanical convenience over the enumerated digests, not a bulk review.",
  "per_item_basis_of_review": "Every row ran the same two mechanical checks unconditionally: (1) the fixture-oracle gate — compute() output diffed against the kernel's own existing golden fixtures before any property was trusted, and (2) run-proptests.mjs green (process exit 0, confirmed suite-wide at 149/149). ULP-boundary forcing was mandatory and present for the 7 float-sensitive rows named in the WU (art-225-va-funding-fee-residual, art-229-compute-disparity-metrics, art-230-compute-hmda-rate-spread, art-231-compute-mla-mapr, art-232-compute-scra-rate-cap, art-233-check-card-act-ability-to-pay, art-234-test-hoepa-high-cost), checked per-item below. The other 3 rows (art-226-mismo-uldd-ulad, art-227-validate-adverse-action-notice, art-228-build-adverse-action-notice) are the row's stated float:no exceptions and instead carry forced CATEGORICAL boundary cases (structural presence/enum/range boundaries; reason-count and FCRA-gating boundaries; reason-cap and FCRA-section-gating boundaries) in place of ULP forcing. No row beyond these two mechanical checks received a separate in-depth human review in this pass — that is exactly the gap human_sign_off.status=PENDING names. Two rows (art-231, art-227) required a per-property authoring correction during drafting, both confirmed as harness scoping fixes rather than kernel defects: art-231's P3/P4 needed a small rounding tolerance for legitimate double-rounding of already-r4()-rounded display components, and art-226's P2 needed one field (amortization_type) excluded from the missing-field monotonicity check because deleting it also removes the ARM-conditional errors it triggers, a genuine kernel behavior not a violation.",
  "items": [
    {
      "kernel_id": "art-225-va-funding-fee-residual",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "10 forced boundary cases: DTI exactly-at/1-ULP-around the 41.0pp threshold, down-payment tier boundaries at 5%/10%, base_loan_amount zero and negative-zero, a 0.1*3 rounding-noise base_loan_amount, and an exact-zero residual margin case",
      "kernel_digest": "sha256:0a2c6c768159e004a4be516f27462520d1e1459d4323169d1530a336a0172053",
      "proptest_file_digest": "sha256:98cdaf88da035728be40045ef9806913f5f9ce416a38dd0fca3934e9fa94dd70",
      "proptest_file": "chaingraph/kernels/__proptests__/art-225-va-funding-fee-residual.proptest.mjs",
      "properties_tested": ["funding_fee_rate_bounded_to_statutory_table", "financed_loan_amount_nondecreasing_in_base_loan", "residual_margin_equals_actual_minus_required", "dti_ok_matches_41pct_fixed_threshold"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-226-mismo-uldd-ulad",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — forced CATEGORICAL boundary cases (empty loan_data, invalid enum value, LTV exactly at 0/100 range boundaries, ARM-conditional trigger, credit_score exactly at 300/850 boundaries) used instead of ULP forcing",
      "kernel_digest": "sha256:5b09063e1cbd268666c288bd86047df127316f8a8e314b985ea89b240bc4ac13",
      "proptest_file_digest": "sha256:5b8127c5e3882028196dd39202a96507a691c888543056db433b108d15526c5b",
      "proptest_file": "chaingraph/kernels/__proptests__/art-226-mismo-uldd-ulad.proptest.mjs",
      "properties_tested": ["lint_pass_and_counts_agree_with_errors_array", "removing_required_field_never_decreases_error_count", "ltv_range_violation_matches_0_100_bounds", "fields_supplied_equals_non_null_key_count"],
      "fixture_oracle_result": "PASS (2/2 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-227-validate-adverse-action-notice",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — forced CATEGORICAL boundary cases (zero reasons, exactly 4/5 reasons at the Reg B cap, prohibited vague code z_other, all-3-FCRA-fields-missing, credit_score_used false) used instead of ULP forcing",
      "kernel_digest": "sha256:8e6f6cc5b36d30e20843f8cc21fc37c9ed8e4e3e3754df6df4f74bb1f12ce44a",
      "proptest_file_digest": "sha256:264cc0f15925a3f6c16a8ab16a350f097c38d5bda9d1ddd736f68f42825b0ac8",
      "proptest_file": "chaingraph/kernels/__proptests__/art-227-validate-adverse-action-notice.proptest.mjs",
      "properties_tested": ["compliant_matches_violation_count_zero", "compliance_score_bounded_0_to_1", "reason_count_valid_matches_1_to_4_range", "fcra_violations_zero_unless_credit_score_used"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-228-build-adverse-action-notice",
      "class": "B",
      "float_sensitive": false,
      "ulp_forcing_present": false,
      "ulp_forcing_note": "stated float:no exception per the WU row — forced CATEGORICAL boundary cases (zero factor codes, 6 factor codes over the 4-max cap, unrecognized FICO code, credit_score_used true with empty CRA fields, credit_score_used false) used instead of ULP forcing",
      "kernel_digest": "sha256:bfe3703cd0865de7a9b879deac13cfa62aa8fdd55eab3348fa8ddc4570a11df1",
      "proptest_file_digest": "sha256:e72d63b8e0a1d7675f5f49057dad50629b0f44805c789652ab01939f8cb0d8a2",
      "proptest_file": "chaingraph/kernels/__proptests__/art-228-build-adverse-action-notice.proptest.mjs",
      "properties_tested": ["resolved_reasons_never_exceeds_4", "fcra_rights_section_present_iff_credit_score_used", "resolved_reasons_sorted_ascending_by_rank", "receipt_reason_count_matches_resolved_reasons_length"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-229-compute-disparity-metrics",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "7 forced boundary cases: both totals zero, adverse_impact_ratio exactly-at/1-ULP-around the 0.80 four-fifths threshold, rate_a and rate_b each individually zero, negative-zero approvals, and both rates exactly 1.0 (zero-denominator SMD guard)",
      "kernel_digest": "sha256:1dc8545c4d3f629c66a7ba5ecc65ad105f855135774e745190e7d089b5ad9b27",
      "proptest_file_digest": "sha256:c32c5da0798e0e389d31a032ee1c9aacd8f9fdb441d15088c0b47e6dc7263156",
      "proptest_file": "chaingraph/kernels/__proptests__/art-229-compute-disparity-metrics.proptest.mjs",
      "properties_tested": ["approval_rates_bounded_0_to_1", "four_fifths_flag_matches_ratio_below_080_threshold", "z_critical_flags_match_1_645_1_96_thresholds", "n_total_equals_sum_of_group_totals"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-230-compute-hmda-rate-spread",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "7 forced boundary cases: rate_spread exactly-at/1-ULP-around the 1.5/3.5/6.5pp reportability thresholds, both apr/apor zero (guard branch), an apr built from a 0.1*3 rounding-noise offset, negative-zero apr",
      "kernel_digest": "sha256:bf8ab4e43a576fd89244c8f1a43a0adb3c8ae4fb433d163a90773584efe86b9b",
      "proptest_file_digest": "sha256:e21467246cdf5b61ab07c03b98aeb864a231ec91e8501711219a410b4a325f71",
      "proptest_file": "chaingraph/kernels/__proptests__/art-230-compute-hmda-rate-spread.proptest.mjs",
      "properties_tested": ["rate_spread_equals_r3_of_apr_minus_apor", "is_reportable_matches_rate_spread_ge_threshold", "threshold_selection_matches_lien_and_product_rules", "is_reportable_monotone_nondecreasing_in_apr"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-231-compute-mla-mapr",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "7 forced boundary cases: guard branch at zero loan/APR, MAPR exactly-at/1-ULP-around the 36% statutory cap, participation-fee exclusion exactly-at/1-ULP-around the $100/yr cap, a loan_amount built from a 0.1*3 rounding-noise product, negative-zero loan_amount",
      "kernel_digest": "sha256:e6ea4f134e6e8a83ead3c9b8c4003302fff90bb70c26a05c76538c4722c64e41",
      "proptest_file_digest": "sha256:e8b3a2984ee5e001b9ba50ef8e843aca1872cb4a6321dec2307260e365e0d7e2",
      "proptest_file": "chaingraph/kernels/__proptests__/art-231-compute-mla-mapr.proptest.mjs",
      "properties_tested": ["exceeds_cap_matches_mapr_gt_36pct", "participation_fee_excluded_bounded_100_gated_by_is_credit_card", "mapr_pct_never_below_stated_apr_pct", "total_includable_equals_sum_of_three_components"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-232-compute-scra-rate-cap",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "7 forced boundary cases: original_rate_pct exactly-at/1-ULP-around the 6.0% statutory cap, guard branch at zero rate/balance, negative-zero rate, an excess-rate exact-3pp computation, a loan_balance built from a 0.1*3 rounding-noise product",
      "kernel_digest": "sha256:0a3d8bc33a4d50ca92a1673b6b23e5bcb483ad80dc375dfba12094440fc0d32d",
      "proptest_file_digest": "sha256:a6e0f53fd0abc06c8f76a89cc4bcf0254690195783be3b9be9b8acad90b0e75a",
      "proptest_file": "chaingraph/kernels/__proptests__/art-232-compute-scra-rate-cap.proptest.mjs",
      "properties_tested": ["exceeds_cap_matches_original_rate_gt_6pct", "effective_rate_never_exceeds_6pct_cap", "delta_forgiven_equals_original_minus_cap_interest", "interest_at_original_nondecreasing_in_covered_months"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-233-check-card-act-ability-to-pay",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "7 forced boundary cases: DTI engineered exactly at the 0.45 threshold, guard branch at zero income/assets/limit, applicant_age exactly-at/around the under-21 boundary (21, 20, 0), a monthly_income built from a 0.1*3 rounding-noise product, negative-zero annual_income",
      "kernel_digest": "sha256:d86f9301b3835cd8d80c1ed5bfa8cc607bbeb1876e91b2482c16eb64316db228",
      "proptest_file_digest": "sha256:0c803c5eb825091c62a5225475e9c721e85c5ee01156a889d47bb92b5c78a3c6",
      "proptest_file": "chaingraph/kernels/__proptests__/art-233-check-card-act-ability-to-pay.proptest.mjs",
      "properties_tested": ["method_b_sufficient_matches_dti_le_045", "under_21_restriction_matches_age_lt_21", "monthly_income_equals_r4_of_annual_over_12", "requires_cosigner_matches_result_label"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    },
    {
      "kernel_id": "art-234-test-hoepa-high-cost",
      "class": "B",
      "float_sensitive": true,
      "ulp_forcing_present": true,
      "ulp_forcing_note": "8 forced boundary cases: apr_spread exactly-at/inside/outside the 6.5pp threshold and its deliberate -1e-5 tolerance band, points_and_fees exactly-at/just-over the pf_limit and its +0.005 tolerance, prepayment-penalty period exactly-at/1-month-over the 36-month boundary, negative-zero apr",
      "kernel_digest": "sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
      "proptest_file_digest": "sha256:d32b8be932662a04fb81f9f1f55102b8a3da425719ac905476b54550a6a48381",
      "proptest_file": "chaingraph/kernels/__proptests__/art-234-test-hoepa-high-cost.proptest.mjs",
      "properties_tested": ["is_high_cost_matches_any_trigger_fired", "apr_threshold_matches_lien_and_small_dwelling_rule", "points_fees_limit_nondecreasing_in_loan_amount", "apr_spread_equals_r4_of_apr_minus_apor"],
      "fixture_oracle_result": "PASS (3/3 vectors)",
      "run_proptests_result": "PASS"
    }
  ]
}
