From 6deae7cb3a95ec62d67ae1e361280eb4923a09fc Mon Sep 17 00:00:00 2001 From: Max Ghenis Date: Fri, 19 Jun 2026 16:45:28 -0400 Subject: [PATCH] Encode Colorado Old Age Pension rules --- .axiom/toolchain.toml | 6 +- .../regulations/9-ccr-2503-5/3.520.72.json | 41 +++ .../regulations/9-ccr-2503-5/3.530.json | 41 +++ .../regulations/9-ccr-2503-5/3.532.json | 41 +++ .../regulations/9-ccr-2503-5/3.533.json | 41 +++ .../9-ccr-2503-5/3.520.72.test.yaml | 64 ++++ us-co/regulations/9-ccr-2503-5/3.520.72.yaml | 117 +++++++ .../regulations/9-ccr-2503-5/3.530.test.yaml | 20 ++ us-co/regulations/9-ccr-2503-5/3.530.yaml | 113 +++++++ .../regulations/9-ccr-2503-5/3.532.test.yaml | 87 +++++ us-co/regulations/9-ccr-2503-5/3.532.yaml | 305 ++++++++++++++++++ .../regulations/9-ccr-2503-5/3.533.test.yaml | 56 ++++ us-co/regulations/9-ccr-2503-5/3.533.yaml | 201 ++++++++++++ 13 files changed, 1130 insertions(+), 3 deletions(-) create mode 100644 us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.520.72.json create mode 100644 us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.530.json create mode 100644 us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.532.json create mode 100644 us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.533.json create mode 100644 us-co/regulations/9-ccr-2503-5/3.520.72.test.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.520.72.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.530.test.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.530.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.532.test.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.532.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.533.test.yaml create mode 100644 us-co/regulations/9-ccr-2503-5/3.533.yaml diff --git a/.axiom/toolchain.toml b/.axiom/toolchain.toml index 9cfc9e8fb..5e077d7de 100644 --- a/.axiom/toolchain.toml +++ b/.axiom/toolchain.toml @@ -2,10 +2,10 @@ # validate-rulespec workflow). Bump deliberately — PRs that change this # file trigger full-repository revalidation. [toolchain] -axiom_encode_version = "0.2.781" +axiom_encode_version = "0.2.782" axiom_rules_engine_ref = "0964c8203ae741d285f6835224118b5c6f0da7db" -axiom_encode_ref = "672285ac4727d5dc2468f97908ab3c3bf4c97a2b" -axiom_corpus_ref = "2b0a843c13abf03854b9e93da88d77c41a0d38df" +axiom_encode_ref = "f06a0b3f2a7b045036dabae1eb1574a1bfd64f85" +axiom_corpus_ref = "e05969200417fb6e1be5d17921452b46e97e9fc9" # Canonical-targets checkout for cross-repo validation; bump to the # merged monorepo SHA in the post-merge follow-up. rulespec_us_ref = "98984a5b35ab424ba9910a121e7554168290d779" diff --git a/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.520.72.json b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.520.72.json new file mode 100644 index 000000000..afb84227a --- /dev/null +++ b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.520.72.json @@ -0,0 +1,41 @@ +{ + "applied_files": [ + { + "path": "regulations/9-ccr-2503-5/3.520.72.yaml", + "sha256": "f4251fd78c26aac368d154abdd18c9f4c07a12b042c622393cc80e81e11c67a0" + }, + { + "path": "regulations/9-ccr-2503-5/3.520.72.test.yaml", + "sha256": "ea6fdb7435ca69d52731261b647c3a5f2caa3f05e8364bfe38e411440279a2cf" + } + ], + "axiom_encode_git": { + "commit": "7fde736fa902e2aa489b8acb6b97863245fc6c26", + "dirty_tracked": false, + "root": "/Users/maxghenis/TheAxiomFoundation/_worktrees/axiom-encode-pe-next-20260619", + "version": "0.2.782", + "version_commit": "7fde736fa902e2aa489b8acb6b97863245fc6c26" + }, + "axiom_encode_version": "0.2.782", + "backend": "deterministic", + "citation": "us-co:regulations/9-ccr-2503-5/3.520.72", + "context_manifest_file": null, + "context_manifest_sha256": null, + "generated_at": "2026-06-19T20:55:51.452822+00:00", + "generated_output_file": "/var/folders/9l/_wztzgbx7mgc7l1r0416cy7m0000gn/T/tmp63_bhylx/deterministic-repair/regulations/9-ccr-2503-5/3.520.72.yaml", + "generated_output_root": "/var/folders/9l/_wztzgbx7mgc7l1r0416cy7m0000gn/T/tmp63_bhylx", + "generated_output_sha256": "f4251fd78c26aac368d154abdd18c9f4c07a12b042c622393cc80e81e11c67a0", + "generation_prompt_sha256": null, + "model": "oracle-parameter-test-v1", + "run_id": "deterministic-repair", + "runner": "deterministic-repair", + "schema_version": "axiom-encode/applied-rulespec/v1", + "signature": { + "algorithm": "hmac-sha256", + "key_id": "axiom-encode-apply-v1", + "value": "5da4c4205f9584bd60fc6787edf01bbcee58ef186b91f2a9a2ff26d4ec94f6ff" + }, + "tool": "axiom-encode repair-oracle-parameter-tests", + "trace_file": null, + "trace_sha256": null +} diff --git a/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.530.json b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.530.json new file mode 100644 index 000000000..ba7ebaeea --- /dev/null +++ b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.530.json @@ -0,0 +1,41 @@ +{ + "applied_files": [ + { + "path": "regulations/9-ccr-2503-5/3.530.yaml", + "sha256": "8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e" + }, + { + "path": "regulations/9-ccr-2503-5/3.530.test.yaml", + "sha256": "597695aa11ab44fb06f4d8988ee0d2b8ae2b4506fe6b80fc2b1bcfbc94a2f7aa" + } + ], + "axiom_encode_git": { + "commit": "7fde736fa902e2aa489b8acb6b97863245fc6c26", + "dirty_tracked": false, + "root": "/Users/maxghenis/TheAxiomFoundation/_worktrees/axiom-encode-pe-next-20260619", + "version": "0.2.782", + "version_commit": "7fde736fa902e2aa489b8acb6b97863245fc6c26" + }, + "axiom_encode_version": "0.2.782", + "backend": "deterministic", + "citation": "us-co:regulations/9-ccr-2503-5/3.530", + "context_manifest_file": null, + "context_manifest_sha256": null, + "generated_at": "2026-06-19T20:55:54.606696+00:00", + "generated_output_file": "/var/folders/9l/_wztzgbx7mgc7l1r0416cy7m0000gn/T/tmp3fnqoqu3/deterministic-repair/regulations/9-ccr-2503-5/3.530.yaml", + "generated_output_root": "/var/folders/9l/_wztzgbx7mgc7l1r0416cy7m0000gn/T/tmp3fnqoqu3", + "generated_output_sha256": "8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e", + "generation_prompt_sha256": null, + "model": "oracle-parameter-test-v1", + "run_id": "deterministic-repair", + "runner": "deterministic-repair", + "schema_version": "axiom-encode/applied-rulespec/v1", + "signature": { + "algorithm": "hmac-sha256", + "key_id": "axiom-encode-apply-v1", + "value": "42d63802556baae132bd3d00816d319d7bf8376ced24c27489712aaa6be539ee" + }, + "tool": "axiom-encode repair-oracle-parameter-tests", + "trace_file": null, + "trace_sha256": null +} diff --git a/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.532.json b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.532.json new file mode 100644 index 000000000..4482202ee --- /dev/null +++ b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.532.json @@ -0,0 +1,41 @@ +{ + "applied_files": [ + { + "path": "regulations/9-ccr-2503-5/3.532.yaml", + "sha256": "d48a5566272aad224309ed64890c440d2602a0fd9f197cc4193ab0bf7aea71ff" + }, + { + "path": "regulations/9-ccr-2503-5/3.532.test.yaml", + "sha256": "089747cc2a3499f5472817ecd61ffbb631801161e4b6a96f3b15fd4b999ce6a0" + } + ], + "axiom_encode_git": { + "commit": "672285ac4727d5dc2468f97908ab3c3bf4c97a2b", + "dirty_tracked": false, + "root": "/Users/maxghenis/TheAxiomFoundation/_worktrees/axiom-encode-pe-next-20260619", + "version": "0.2.781", + "version_commit": "672285ac4727d5dc2468f97908ab3c3bf4c97a2b" + }, + "axiom_encode_version": "0.2.781", + "backend": "openai", + "citation": "us-co/regulation/9-ccr-2503-5/3.532", + "context_manifest_file": "/tmp/axiom-encode-encodings/_eval_workspaces/openai-gpt-5.1/us-co-regulation-9-ccr-2503-5-3.532/workspace/context-manifest.json", + "context_manifest_sha256": "a7d349b802229dc6be78c5040a2d6cd3ec527d50a5a86ba69689fce199579076", + "generated_at": "2026-06-19T20:08:57.347177+00:00", + "generated_output_file": "/tmp/axiom-encode-encodings/openai-gpt-5.1/regulations/9-ccr-2503-5/3.532.yaml", + "generated_output_root": "/tmp/axiom-encode-encodings", + "generated_output_sha256": "d48a5566272aad224309ed64890c440d2602a0fd9f197cc4193ab0bf7aea71ff", + "generation_prompt_sha256": "45a6199b29244e33db9ebb4001b5bb7d84cac7a5c9854142a41dd51097d9cf8e", + "model": "gpt-5.1", + "run_id": "4c272cbd", + "runner": "openai-gpt-5.1", + "schema_version": "axiom-encode/applied-rulespec/v1", + "signature": { + "algorithm": "hmac-sha256", + "key_id": "axiom-encode-apply-v1", + "value": "d5cb5c85ac28ee94403531184b683e4375b89c57a5091ba207f9a98fbf39e0f1" + }, + "tool": "axiom-encode encode --apply", + "trace_file": "/tmp/axiom-encode-encodings/traces/openai-gpt-5.1/us-co-regulation-9-ccr-2503-5-3.532.json", + "trace_sha256": "c471e7007811c05e351e09cec66cd19467f500c07101242c462aadd961463d0d" +} diff --git a/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.533.json b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.533.json new file mode 100644 index 000000000..c80e9ef42 --- /dev/null +++ b/us-co/.axiom/encoding-manifests/regulations/9-ccr-2503-5/3.533.json @@ -0,0 +1,41 @@ +{ + "applied_files": [ + { + "path": "regulations/9-ccr-2503-5/3.533.yaml", + "sha256": "af2fcc1cb379209e8532b8982ca125d029dcbcf06619a17b3b5e8b35186a0bbf" + }, + { + "path": "regulations/9-ccr-2503-5/3.533.test.yaml", + "sha256": "09b89975edf2ccc3c034cf7f4ba44a634ee7694126e35adbf9b9c5895a824a6d" + } + ], + "axiom_encode_git": { + "commit": "672285ac4727d5dc2468f97908ab3c3bf4c97a2b", + "dirty_tracked": false, + "root": "/Users/maxghenis/TheAxiomFoundation/_worktrees/axiom-encode-pe-next-20260619", + "version": "0.2.781", + "version_commit": "672285ac4727d5dc2468f97908ab3c3bf4c97a2b" + }, + "axiom_encode_version": "0.2.781", + "backend": "openai", + "citation": "us-co/regulation/9-ccr-2503-5/3.533", + "context_manifest_file": "/tmp/axiom-encode-encodings/_eval_workspaces/openai-gpt-5.1/us-co-regulation-9-ccr-2503-5-3.533/workspace/context-manifest.json", + "context_manifest_sha256": "78a65acfe257193ee8f87b5df03f907c0f8830494d71f8ddaa8c3dac1a0b2545", + "generated_at": "2026-06-19T20:12:52.026947+00:00", + "generated_output_file": "/tmp/axiom-encode-encodings/openai-gpt-5.1/regulations/9-ccr-2503-5/3.533.yaml", + "generated_output_root": "/tmp/axiom-encode-encodings", + "generated_output_sha256": "af2fcc1cb379209e8532b8982ca125d029dcbcf06619a17b3b5e8b35186a0bbf", + "generation_prompt_sha256": "dde02ea90174696019ffbe47152e38d7ff4377c33cad035eaf18024b28813b2a", + "model": "gpt-5.1", + "run_id": "cf23bd1b", + "runner": "openai-gpt-5.1", + "schema_version": "axiom-encode/applied-rulespec/v1", + "signature": { + "algorithm": "hmac-sha256", + "key_id": "axiom-encode-apply-v1", + "value": "4a5a680a1072d6b9142b7b25817e2d670bf8e45d653e6ee2066fd371325f6a75" + }, + "tool": "axiom-encode encode --apply", + "trace_file": "/tmp/axiom-encode-encodings/traces/openai-gpt-5.1/us-co-regulation-9-ccr-2503-5-3.533.json", + "trace_sha256": "1ee70a41ba9ecf0725b7a3a9aa1cf984303dc2c55f4529227d289338787ffe4a" +} diff --git a/us-co/regulations/9-ccr-2503-5/3.520.72.test.yaml b/us-co/regulations/9-ccr-2503-5/3.520.72.test.yaml new file mode 100644 index 000000000..d8723bf49 --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.520.72.test.yaml @@ -0,0 +1,64 @@ +- name: unmarried_client_with_resources_below_unmarried_limit_and_no_sponsors + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_married: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.sponsor_spouse_is_co_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.client_own_countable_resources_under_3_520_72: 1500 + us-co:regulations/9-ccr-2503-5/3.520.72#input.deemed_resources_from_sponsors_under_3_520_72: 0 + output: + us-co:regulations/9-ccr-2503-5/3.520.72#person_resource_limit_under_3_520_72: 2000 + us-co:regulations/9-ccr-2503-5/3.520.72#client_countable_resources_including_deemed_from_sponsors_under_3_520_72: 1500 + us-co:regulations/9-ccr-2503-5/3.520.72#client_resources_within_limit_under_3_520_72: holds +- name: married_client_with_resources_below_married_limit_and_no_deemed_sponsor_resources + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_married: true + us-co:regulations/9-ccr-2503-5/3.520.72#input.sponsor_spouse_is_co_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.client_own_countable_resources_under_3_520_72: 2500 + us-co:regulations/9-ccr-2503-5/3.520.72#input.deemed_resources_from_sponsors_under_3_520_72: 0 + output: + us-co:regulations/9-ccr-2503-5/3.520.72#person_resource_limit_under_3_520_72: 3000 + us-co:regulations/9-ccr-2503-5/3.520.72#client_countable_resources_including_deemed_from_sponsors_under_3_520_72: 2500 + us-co:regulations/9-ccr-2503-5/3.520.72#client_resources_within_limit_under_3_520_72: holds +- name: married_client_with_deemed_sponsor_resources_exceeding_married_limit + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_married: true + us-co:regulations/9-ccr-2503-5/3.520.72#input.sponsor_spouse_is_co_sponsor: false + us-co:regulations/9-ccr-2503-5/3.520.72#input.client_own_countable_resources_under_3_520_72: 1000 + us-co:regulations/9-ccr-2503-5/3.520.72#input.deemed_resources_from_sponsors_under_3_520_72: 2500 + output: + us-co:regulations/9-ccr-2503-5/3.520.72#person_resource_limit_under_3_520_72: 3000 + us-co:regulations/9-ccr-2503-5/3.520.72#client_countable_resources_including_deemed_from_sponsors_under_3_520_72: 3500 + us-co:regulations/9-ccr-2503-5/3.520.72#client_resources_within_limit_under_3_520_72: not_holds +- name: married_sponsor_with_co_sponsor_spouse_uses_unmarried_limit + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_sponsor: true + us-co:regulations/9-ccr-2503-5/3.520.72#input.person_is_married: true + us-co:regulations/9-ccr-2503-5/3.520.72#input.sponsor_spouse_is_co_sponsor: true + us-co:regulations/9-ccr-2503-5/3.520.72#input.client_own_countable_resources_under_3_520_72: 0 + us-co:regulations/9-ccr-2503-5/3.520.72#input.deemed_resources_from_sponsors_under_3_520_72: 0 + output: + us-co:regulations/9-ccr-2503-5/3.520.72#person_resource_limit_under_3_520_72: 2000 + us-co:regulations/9-ccr-2503-5/3.520.72#client_countable_resources_including_deemed_from_sponsors_under_3_520_72: 0 + us-co:regulations/9-ccr-2503-5/3.520.72#client_resources_within_limit_under_3_520_72: holds +- name: oracle_parameter_resource_limit_amount_for_unmarried_person_under_3_520_72 + period: + period_kind: tax_year + start: '2026-01-01' + end: '2026-12-31' + input: {} + output: + us-co:regulations/9-ccr-2503-5/3.520.72#resource_limit_amount_for_unmarried_person_under_3_520_72: 2000 +- name: oracle_parameter_resource_limit_amount_for_married_person_under_3_520_72 + period: + period_kind: tax_year + start: '2026-01-01' + end: '2026-12-31' + input: {} + output: + us-co:regulations/9-ccr-2503-5/3.520.72#resource_limit_amount_for_married_person_under_3_520_72: 3000 diff --git a/us-co/regulations/9-ccr-2503-5/3.520.72.yaml b/us-co/regulations/9-ccr-2503-5/3.520.72.yaml new file mode 100644 index 000000000..5ac738ceb --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.520.72.yaml @@ -0,0 +1,117 @@ +format: rulespec/v1 +module: + proof_validation: + required: true + source_verification: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + summary: |- + For Adult Financial programs, all countable resources of the client, spouse, and sponsor(s) are compared to a resource limit, which is $2,000 for an unmarried client or sponsor and for a married sponsor whose spouse is a co-sponsor (each co-sponsor receives a $2,000 limit, for a combined $4,000), and $3,000 for a married client or a married sponsor whose spouse is not a co-sponsor. Sponsor resources are counted only toward the non-citizen client they sponsor, and any sponsor resources in excess of the sponsor resource limit are deemed to the non-citizen client and added to the client’s own countable resources for comparison to the client’s resource limit. +rules: + - name: resource_limit_amount_for_unmarried_person_under_3_520_72 + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.520.72 A.1 + metadata: + proof: + atoms: + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + excerpt: "$2,000 for: a. An unmarried client; b. An unmarried sponsor; and, c. A married sponsor whose spouse is a co-sponsor." + versions: + - effective_from: '2016-10-01' + formula: |- + 2000 + + - name: resource_limit_amount_for_married_person_under_3_520_72 + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.520.72 A.2 + metadata: + proof: + atoms: + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + excerpt: "$3,000 for: a. A married client; or, b. A married sponsor whose spouse is not a co-sponsor." + versions: + - effective_from: '2016-10-01' + formula: |- + 3000 + + - name: person_resource_limit_under_3_520_72 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.520.72 A + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + excerpt: "The resource limit is: $2,000 for ... an unmarried client; ... an unmarried sponsor; ... a married sponsor whose spouse is a co-sponsor. ... $3,000 for: a married client; ... a married sponsor whose spouse is not a co-sponsor." + versions: + - effective_from: '2016-10-01' + formula: |- + if person_is_sponsor: + if person_is_married and sponsor_spouse_is_co_sponsor: + resource_limit_amount_for_unmarried_person_under_3_520_72 + else: + if person_is_married: + resource_limit_amount_for_married_person_under_3_520_72 + else: + resource_limit_amount_for_unmarried_person_under_3_520_72 + else: + if person_is_married: + resource_limit_amount_for_married_person_under_3_520_72 + else: + resource_limit_amount_for_unmarried_person_under_3_520_72 + + - name: client_countable_resources_including_deemed_from_sponsors_under_3_520_72 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.520.72 A, E + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + excerpt: "Unless otherwise specified, a resource is countable, and together with all other countable resources of the client, spouse, and sponsor(s) shall be considered against the resource limit. ... All countable resources over the sponsor(s) resource limit ... are then deemed to the non-citizen client. The deemed amount from the client’s sponsor(s) is then added to the non-citizen client’s countable resources..." + versions: + - effective_from: '2016-10-01' + formula: |- + client_own_countable_resources_under_3_520_72 + + deemed_resources_from_sponsors_under_3_520_72 + + - name: client_resources_within_limit_under_3_520_72 + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.520.72 A, E + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.520.72 + excerpt: "Countable resources ... shall be considered against the resource limit. ... The deemed amount from the client’s sponsor(s) is then added to the non-citizen client’s countable resources and compared to the non-citizen client’s resource limit..." + versions: + - effective_from: '2016-10-01' + formula: |- + client_countable_resources_including_deemed_from_sponsors_under_3_520_72 + <= person_resource_limit_under_3_520_72 diff --git a/us-co/regulations/9-ccr-2503-5/3.530.test.yaml b/us-co/regulations/9-ccr-2503-5/3.530.test.yaml new file mode 100644 index 000000000..21ff3f5fa --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.530.test.yaml @@ -0,0 +1,20 @@ +- name: oap_age_requirement_met_at_age_60 + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.530#input.age_in_years: 60 + output: + us-co:regulations/9-ccr-2503-5/3.530#oap_age_requirement_met: holds +- name: oap_age_requirement_not_met_below_60 + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.530#input.age_in_years: 59 + output: + us-co:regulations/9-ccr-2503-5/3.530#oap_age_requirement_met: not_holds +- name: oracle_parameter_oap_total_monthly_grant_standard + period: + period_kind: tax_year + start: '2026-01-01' + end: '2026-12-31' + input: {} + output: + us-co:regulations/9-ccr-2503-5/3.530#oap_total_monthly_grant_standard: 1032 diff --git a/us-co/regulations/9-ccr-2503-5/3.530.yaml b/us-co/regulations/9-ccr-2503-5/3.530.yaml new file mode 100644 index 000000000..ce624d21c --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.530.yaml @@ -0,0 +1,113 @@ +format: rulespec/v1 +module: + proof_validation: + required: true + source_verification: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + summary: |- + The Old Age Pension (OAP) program provides financial assistance and may provide health care benefits for low-income Colorado residents who are sixty years of age or older and meet all financial and non-financial eligibility requirements. Effective January 1, 2026, the total monthly OAP grant standard is $1,032, the maximum monthly in-kind support and maintenance (ISM) shelter-cost deduction is $351, and the OAP payment floor standard is $189. +rules: + - name: oap_total_monthly_grant_standard + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.530 A + metadata: + proof: + atoms: + - path: versions[0].effective_from + kind: effective_period + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "The total monthly OAP grant standard, as set by the State Board of Human Services, is $1,032 effective January 1, 2026." + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "The total monthly OAP grant standard ... is $1,032 effective January 1, 2026." + versions: + - effective_from: '2026-01-01' + formula: |- + 1032 + + - name: oap_maximum_monthly_ism_shelter_deduction_amount + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.530 B + metadata: + proof: + atoms: + - path: versions[0].effective_from + kind: effective_period + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "Effective January 1, 2026, the maximum monthly In-Kind Support and Maintenance (ISM) deduction amount for shelter costs is $351." + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "the maximum monthly In-Kind Support and Maintenance (ISM) deduction amount for shelter costs is $351." + versions: + - effective_from: '2026-01-01' + formula: |- + 351 + + - name: oap_payment_floor_standard + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.530 C + metadata: + proof: + atoms: + - path: versions[0].effective_from + kind: effective_period + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "Effective January 1, 2026, the payment floor standard for OAP is $189." + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "the payment floor standard for OAP is $189." + versions: + - effective_from: '2026-01-01' + formula: |- + 189 + + - name: oap_minimum_age_years + kind: parameter + dtype: Integer + source: 9 CCR 2503-5 3.530 + metadata: + proof: + atoms: + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "Colorado residents who are sixty (60) years of age or older" + versions: + - effective_from: '2026-01-01' + formula: |- + 60 + + - name: oap_age_requirement_met + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.530 + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.530 + excerpt: "Colorado residents who are sixty (60) years of age or older who meet all financial and non-financial eligibility requirements." + versions: + - effective_from: '2026-01-01' + formula: |- + age_in_years >= oap_minimum_age_years diff --git a/us-co/regulations/9-ccr-2503-5/3.532.test.yaml b/us-co/regulations/9-ccr-2503-5/3.532.test.yaml new file mode 100644 index 000000000..9fc783895 --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.532.test.yaml @@ -0,0 +1,87 @@ +- name: oap_full_benefit_no_supplement_with_pna + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_oap_eligible_under_sections_3_520_6_and_3_520_7: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_total_countable_income_for_oap: 32 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_inmate_in_penal_institution: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_unlicensed_or_uncertified_facility: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_eligibility_determined_on_first_day_of_month: true + us-co:regulations/9-ccr-2503-5/3.532#input.fraction_of_month_remaining_at_oap_eligibility_determination: 1.0 + us-co:regulations/9-ccr-2503-5/3.532#input.client_receives_other_adult_financial_program_in_current_month: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_turns_60_during_current_month: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_otherwise_eligible_for_oap: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_meets_program_requirements_for_pna: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_has_been_resident_for_at_least_30_consecutive_days_in_facility: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_general_medical_and_surgical_hospital: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_long_term_care_or_oap_approved_setting: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_psychiatric_facility: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_age_in_years: 70 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_for_full_calendar_month_in_3_532_d_facility: true + output: + us-co:regulations/9-ccr-2503-5/3.532#oap_client_eligible_for_grant_payments_under_3_532: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_authorized_grant_payment_for_month: 1000 + us-co:regulations/9-ccr-2503-5/3.532#oap_state_supplementary_payment_for_month: 0 + us-co:regulations/9-ccr-2503-5/3.532#oap_total_grant_payment_including_state_supplement_for_month: 1000 + us-co:regulations/9-ccr-2503-5/3.532#oap_first_month_grant_payment_with_proration: 1000 + us-co:regulations/9-ccr-2503-5/3.532#oap_client_transitions_from_other_af_program_in_birth_month: not_holds + us-co:regulations/9-ccr-2503-5/3.532#client_resides_in_3_532_d_listed_facility: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_eligible_for_month: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_payment_amount_for_month: 79 +- name: oap_with_state_supplement_and_prorated_first_month_no_full_month_pna_and_transition + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_oap_eligible_under_sections_3_520_6_and_3_520_7: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_total_countable_income_for_oap: 900 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_inmate_in_penal_institution: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_unlicensed_or_uncertified_facility: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_eligibility_determined_on_first_day_of_month: false + us-co:regulations/9-ccr-2503-5/3.532#input.fraction_of_month_remaining_at_oap_eligibility_determination: 0.5 + us-co:regulations/9-ccr-2503-5/3.532#input.client_receives_other_adult_financial_program_in_current_month: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_turns_60_during_current_month: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_otherwise_eligible_for_oap: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_meets_program_requirements_for_pna: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_has_been_resident_for_at_least_30_consecutive_days_in_facility: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_general_medical_and_surgical_hospital: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_long_term_care_or_oap_approved_setting: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_psychiatric_facility: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_age_in_years: 60 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_for_full_calendar_month_in_3_532_d_facility: false + output: + us-co:regulations/9-ccr-2503-5/3.532#oap_client_eligible_for_grant_payments_under_3_532: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_authorized_grant_payment_for_month: 132 + us-co:regulations/9-ccr-2503-5/3.532#oap_state_supplementary_payment_for_month: 57 + us-co:regulations/9-ccr-2503-5/3.532#oap_total_grant_payment_including_state_supplement_for_month: 189 + us-co:regulations/9-ccr-2503-5/3.532#oap_first_month_grant_payment_with_proration: 94.5 + us-co:regulations/9-ccr-2503-5/3.532#oap_client_transitions_from_other_af_program_in_birth_month: holds + us-co:regulations/9-ccr-2503-5/3.532#client_resides_in_3_532_d_listed_facility: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_eligible_for_month: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_payment_amount_for_month: 0 +- name: inmate_or_unlicensed_resident_ineligible_for_oap_and_pna + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_oap_eligible_under_sections_3_520_6_and_3_520_7: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_total_countable_income_for_oap: 0 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_inmate_in_penal_institution: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_unlicensed_or_uncertified_facility: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_eligibility_determined_on_first_day_of_month: true + us-co:regulations/9-ccr-2503-5/3.532#input.fraction_of_month_remaining_at_oap_eligibility_determination: 0.75 + us-co:regulations/9-ccr-2503-5/3.532#input.client_receives_other_adult_financial_program_in_current_month: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_turns_60_during_current_month: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_otherwise_eligible_for_oap: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_meets_program_requirements_for_pna: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_has_been_resident_for_at_least_30_consecutive_days_in_facility: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_general_medical_and_surgical_hospital: true + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_long_term_care_or_oap_approved_setting: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_in_psychiatric_facility: false + us-co:regulations/9-ccr-2503-5/3.532#input.client_age_in_years: 50 + us-co:regulations/9-ccr-2503-5/3.532#input.client_is_resident_for_full_calendar_month_in_3_532_d_facility: true + output: + us-co:regulations/9-ccr-2503-5/3.532#oap_client_eligible_for_grant_payments_under_3_532: not_holds + us-co:regulations/9-ccr-2503-5/3.532#oap_authorized_grant_payment_for_month: 0 + us-co:regulations/9-ccr-2503-5/3.532#oap_state_supplementary_payment_for_month: 0 + us-co:regulations/9-ccr-2503-5/3.532#oap_total_grant_payment_including_state_supplement_for_month: 0 + us-co:regulations/9-ccr-2503-5/3.532#oap_first_month_grant_payment_with_proration: 0 + us-co:regulations/9-ccr-2503-5/3.532#oap_client_transitions_from_other_af_program_in_birth_month: not_holds + us-co:regulations/9-ccr-2503-5/3.532#client_resides_in_3_532_d_listed_facility: holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_eligible_for_month: not_holds + us-co:regulations/9-ccr-2503-5/3.532#oap_pna_payment_amount_for_month: 0 diff --git a/us-co/regulations/9-ccr-2503-5/3.532.yaml b/us-co/regulations/9-ccr-2503-5/3.532.yaml new file mode 100644 index 000000000..7757cae6d --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.532.yaml @@ -0,0 +1,305 @@ +format: rulespec/v1 +imports: +- us-co:regulations/9-ccr-2503-5/3.530#oap_total_monthly_grant_standard +- us-co:regulations/9-ccr-2503-5/3.530#oap_payment_floor_standard +module: + proof_validation: + required: true + source_verification: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + summary: For Old Age Pension (OAP), grant payments are calculated for one client + per case by subtracting the client's total countable income from the OAP grant + standard, with a state supplementary payment added when needed to reach the OAP + payment floor. Eligibility timing determines whether the first month is paid in + full or prorated by remaining days in the month, and clients transitioning from + another Adult Financial program at age sixty move to OAP effective the first day + of their birth month. OAP grant and Personal Needs Allowance (PNA) payments are + not available to inmates of penal institutions or residents of unlicensed or uncertified + facilities, and PNA is payable only after at least thirty consecutive days in + specified medical, long-term-care, or (for clients sixty-five or older) psychiatric + facilities. For each full calendar month in such a facility, the OAP PNA maximum + is $79. +rules: +- name: oap_client_eligible_for_grant_payments_under_3_532 + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.532 B, E + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: 'When a client has been found eligible based upon eligibility rules + as outlined in Sections 3.520.6 and 3.520.7 ... The following persons + are not eligible for a PNA or OAP grant payments: 1. Inmates in a penal + institution; or, 2. Residents in an unlicensed private or uncertified + public facility.' + versions: + - effective_from: '2016-10-01' + formula: 'client_is_oap_eligible_under_sections_3_520_6_and_3_520_7 + + and not client_is_inmate_in_penal_institution + + and not client_is_resident_in_unlicensed_or_uncertified_facility' +- name: oap_authorized_grant_payment_for_month + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.532 A, B + metadata: + proof: + atoms: + - kind: import + path: versions[0].formula + import: + target: us-co:regulations/9-ccr-2503-5/3.530#oap_total_monthly_grant_standard + output: oap_total_monthly_grant_standard + hash: sha256:8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: OAP grant payments shall be calculated on an individual basis, + with just one client per case. ... the amount of the client's authorized + OAP grant payment shall be determined by deducting the client's total + countable income from the OAP grant standard listed in Section 3.530.A. + versions: + - effective_from: '2016-10-01' + formula: 'if oap_client_eligible_for_grant_payments_under_3_532: max(0, oap_total_monthly_grant_standard + - client_total_countable_income_for_oap) else: 0' +- name: oap_state_supplementary_payment_for_month + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.532 B + metadata: + proof: + atoms: + - kind: import + path: versions[0].formula + import: + target: us-co:regulations/9-ccr-2503-5/3.530#oap_payment_floor_standard + output: oap_payment_floor_standard + hash: sha256:8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: If the grant payment is less than the OAP payment floor standard + outlined in section 3.530, a state supplementary payment will be issued + to raise the grant payment to meet the payment floor standard. + versions: + - effective_from: '2016-10-01' + formula: "if oap_client_eligible_for_grant_payments_under_3_532:\n if oap_authorized_grant_payment_for_month\ + \ < oap_payment_floor_standard:\n oap_payment_floor_standard - oap_authorized_grant_payment_for_month\n\ + \ else:\n 0\nelse:\n 0" +- name: oap_total_grant_payment_including_state_supplement_for_month + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.532 B + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: '... the amount of the client''s authorized OAP grant payment shall + be determined by deducting the client''s total countable income from the + OAP grant standard ... If the grant payment is less than the OAP payment + floor standard ... a state supplementary payment will be issued to raise + the grant payment to meet the payment floor standard.' + versions: + - effective_from: '2016-10-01' + formula: oap_authorized_grant_payment_for_month + oap_state_supplementary_payment_for_month +- name: oap_first_month_grant_payment_with_proration + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.532 B(1)-(2) + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: 1. If determined eligible on the first of the month, the client + shall receive his or her authorized grant payment in the initial and subsequent + months. 2. If determined eligible on any other day of the month, the client's + first month grant payment shall be prorated according to the number of + days remaining in the month; the client shall receive their authorized + grant payments in subsequent months. + versions: + - effective_from: '2016-10-01' + formula: "if not oap_client_eligible_for_grant_payments_under_3_532:\n 0\nelse:\n\ + \ if client_eligibility_determined_on_first_day_of_month:\n oap_total_grant_payment_including_state_supplement_for_month\n\ + \ else:\n oap_total_grant_payment_including_state_supplement_for_month *\ + \ fraction_of_month_remaining_at_oap_eligibility_determination" +- name: oap_client_transitions_from_other_af_program_in_birth_month + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.532 B(3) + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: If a client is receiving services in another Adult Financial (AF) + program in the month he or she turns sixty (60) years of age and is otherwise + eligible for OAP, the client shall transition from the other AF program + to OAP effective the first day of the client's birth month, and receive + his or her authorized grant payment for the birthday month and subsequent + months. + versions: + - effective_from: '2016-10-01' + formula: 'client_receives_other_adult_financial_program_in_current_month + + and client_turns_60_during_current_month + + and client_is_otherwise_eligible_for_oap' +- name: client_resides_in_3_532_d_listed_facility_scalar_limit + kind: parameter + dtype: Count + source: 9 CCR 2503-5 3.532 D + metadata: + proof: + atoms: + - path: versions[0].formula + kind: parameter + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: 'The client shall be eligible only for a monthly PNA when program + requirements are met and the client is a resident for at least thirty + (30) consecutive days, in one of the following facilities: 1. In a general + medical and surgical hospital; 2. In a nursing home, assisted living residence, + or, intermediate care facility, group home, host home, other long-term + care facility, or Adult Financial approved setting; or 3. In a psychiatric + facility when sixty-five (65) years of age or older.' + versions: + - effective_from: '2016-10-01' + formula: '65' +- name: client_resides_in_3_532_d_listed_facility + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.532 D + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: 'The client shall be eligible only for a monthly PNA when program + requirements are met and the client is a resident for at least thirty + (30) consecutive days, in one of the following facilities: 1. In a general + medical and surgical hospital; 2. In a nursing home, assisted living residence, + or, intermediate care facility, group home, host home, other long-term + care facility, or Adult Financial approved setting; or 3. In a psychiatric + facility when sixty-five (65) years of age or older.' + - path: versions[0].formula + kind: import + import: + target: us-co:regulations/9-ccr-2503-5/3.532#client_resides_in_3_532_d_listed_facility_scalar_limit + output: client_resides_in_3_532_d_listed_facility_scalar_limit + hash: sha256:local + versions: + - effective_from: '2016-10-01' + formula: 'client_is_resident_in_general_medical_and_surgical_hospital + + or client_is_resident_in_long_term_care_or_oap_approved_setting + + or (client_is_resident_in_psychiatric_facility and client_age_in_years >= client_resides_in_3_532_d_listed_facility_scalar_limit)' +- name: oap_pna_eligible_for_month + kind: derived + entity: Person + dtype: Judgment + period: Month + source: 9 CCR 2503-5 3.532 D, E + metadata: + proof: + atoms: + - path: versions[0].formula + kind: predicate + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: 'The client shall be eligible only for a monthly PNA when program + requirements are met and the client is a resident for at least thirty + (30) consecutive days, in one of the following facilities ... The following + persons are not eligible for a PNA or OAP grant payments: 1. Inmates in + a penal institution; or, 2. Residents in an unlicensed private or uncertified + public facility.' + versions: + - effective_from: '2016-10-01' + formula: 'client_meets_program_requirements_for_pna + + and client_has_been_resident_for_at_least_30_consecutive_days_in_facility + + and client_resides_in_3_532_d_listed_facility + + and not client_is_inmate_in_penal_institution + + and not client_is_resident_in_unlicensed_or_uncertified_facility' +- name: oap_pna_maximum_monthly_amount_for_full_calendar_month + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.532 F + metadata: + proof: + atoms: + - path: versions[0].effective_from + kind: effective_period + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: For every full calendar month ... effective October 1, 2016. + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: the OAP PNA maximum shall be seventy-nine dollars ($79), effective + October 1, 2016. + versions: + - effective_from: '2016-10-01' + formula: '79' +- name: oap_pna_payment_amount_for_month + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.532 D, F + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.532 + excerpt: The client shall be eligible only for a monthly PNA ... For every + full calendar month that the client is a resident in a facility listed + in Section 3.532.D, the OAP PNA maximum shall be seventy-nine dollars + ($79), effective October 1, 2016. + versions: + - effective_from: '2016-10-01' + formula: 'if oap_pna_eligible_for_month and client_is_resident_for_full_calendar_month_in_3_532_d_facility: + oap_pna_maximum_monthly_amount_for_full_calendar_month else: 0' diff --git a/us-co/regulations/9-ccr-2503-5/3.533.test.yaml b/us-co/regulations/9-ccr-2503-5/3.533.test.yaml new file mode 100644 index 000000000..4c7a1aa5c --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.533.test.yaml @@ -0,0 +1,56 @@ +- name: single_client_with_earned_and_unearned_income_no_supplement + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.533#input.gross_earned_income: 500 + us-co:regulations/9-ccr-2503-5/3.533#input.gross_unearned_income: 100 + us-co:regulations/9-ccr-2503-5/3.533#input.ssi_income_amount: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.client_is_married: false + output: + us-co:regulations/9-ccr-2503-5/3.533#oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_unearned_income_under_3_533: 80 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_earned_income_under_3_533: 217.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_total_countable_income_under_3_533: 297.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_authorized_grant_payment_under_3_533: 734.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_state_supplementary_payment_under_3_533: 0 +- name: single_client_with_small_unearned_income_and_leftover_disregard + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.533#input.gross_earned_income: 200 + us-co:regulations/9-ccr-2503-5/3.533#input.gross_unearned_income: 10 + us-co:regulations/9-ccr-2503-5/3.533#input.ssi_income_amount: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.client_is_married: false + output: + us-co:regulations/9-ccr-2503-5/3.533#oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533: 10 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_unearned_income_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_earned_income_under_3_533: 62.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_total_countable_income_under_3_533: 62.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_authorized_grant_payment_under_3_533: 969.5 + us-co:regulations/9-ccr-2503-5/3.533#oap_state_supplementary_payment_under_3_533: 0 +- name: married_client_unearned_income_with_split_disregard + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.533#input.gross_earned_income: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.gross_unearned_income: 50 + us-co:regulations/9-ccr-2503-5/3.533#input.ssi_income_amount: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.client_is_married: true + output: + us-co:regulations/9-ccr-2503-5/3.533#oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_unearned_income_under_3_533: 40 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_earned_income_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_total_countable_income_under_3_533: 40 + us-co:regulations/9-ccr-2503-5/3.533#oap_authorized_grant_payment_under_3_533: 992 + us-co:regulations/9-ccr-2503-5/3.533#oap_state_supplementary_payment_under_3_533: 0 +- name: single_client_with_low_grant_and_state_supplement + period: 2026-01 + input: + us-co:regulations/9-ccr-2503-5/3.533#input.gross_earned_income: 1865 + us-co:regulations/9-ccr-2503-5/3.533#input.gross_unearned_income: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.ssi_income_amount: 0 + us-co:regulations/9-ccr-2503-5/3.533#input.client_is_married: false + output: + us-co:regulations/9-ccr-2503-5/3.533#oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_unearned_income_under_3_533: 0 + us-co:regulations/9-ccr-2503-5/3.533#oap_countable_earned_income_under_3_533: 900 + us-co:regulations/9-ccr-2503-5/3.533#oap_total_countable_income_under_3_533: 900 + us-co:regulations/9-ccr-2503-5/3.533#oap_authorized_grant_payment_under_3_533: 132 + us-co:regulations/9-ccr-2503-5/3.533#oap_state_supplementary_payment_under_3_533: 57 diff --git a/us-co/regulations/9-ccr-2503-5/3.533.yaml b/us-co/regulations/9-ccr-2503-5/3.533.yaml new file mode 100644 index 000000000..7df56cbd4 --- /dev/null +++ b/us-co/regulations/9-ccr-2503-5/3.533.yaml @@ -0,0 +1,201 @@ +format: rulespec/v1 +imports: +- us-co:regulations/9-ccr-2503-5/3.530#oap_total_monthly_grant_standard +- us-co:regulations/9-ccr-2503-5/3.530#oap_payment_floor_standard +module: + proof_validation: + required: true + source_verification: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + summary: For Old Age Pension (OAP), income disregards are applied before determining + total countable income. Countable earned income is found by deducting $65 from + gross earned income and dividing the remainder by two, with any unused portion + of the $20 unearned-income disregard applied to the earned-income calculation + when gross unearned income is less than $20. Countable unearned income is determined + by excluding SSI from gross unearned income, applying a $20 monthly disregard + (split equally between spouses if married and not available to clients who only + receive SSI), then adding SSI back. The OAP grant payment equals the OAP grant + standard minus the sum of countable earned and unearned income, and if this payment + is below the OAP payment floor a state supplementary payment raises it to that + floor. +rules: +- name: oap_earned_income_base_disregard_amount + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.533 A.1.a + metadata: + proof: + atoms: + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: Deduct $65 from the gross earned income. + versions: + - effective_from: '2016-10-01' + formula: '65' +- name: oap_unearned_income_general_disregard_amount + kind: parameter + dtype: Money + unit: USD + source: 9 CCR 2503-5 3.533 A.2.c + metadata: + proof: + atoms: + - path: versions[0].formula + kind: amount + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: Deduct $20.00 from the remainder. + versions: + - effective_from: '2016-10-01' + formula: '20' +- name: oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 A.2.c-f + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: If the client's gross unearned income is less than $20.00, the + difference between the gross unearned income and the $20.00 deduction + shall be applied to the earned income calculation, if applicable. + versions: + - effective_from: '2016-10-01' + formula: "if gross_unearned_income <= 0:\n 0\nelse:\n if gross_unearned_income\ + \ == ssi_income_amount and gross_unearned_income > 0:\n 0\n else:\n if\ + \ gross_unearned_income < oap_unearned_income_general_disregard_amount:\n \ + \ oap_unearned_income_general_disregard_amount - gross_unearned_income\n\ + \ else:\n 0" +- name: oap_countable_earned_income_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 A.1, A.2.f + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: 'To determine countable earned income: Deduct $65 from the gross + earned income; and, Divide the remainder by two (2). ... the difference + ... shall be applied to the earned income calculation, if applicable.' + versions: + - effective_from: '2016-10-01' + formula: 'if gross_earned_income <= 0: 0 else: max( 0, (gross_earned_income - + (oap_earned_income_base_disregard_amount + oap_unearned_income_remaining_disregard_amount_available_for_earned_under_3_533)) + / 2 )' +- name: oap_countable_unearned_income_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 A.2 + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: 'To determine countable unearned income: Determine the client''s + gross unearned income from all sources. Subtract any amount received from + SSI. Deduct $20.00 from the remainder... A client who receives SSI only, + and does not receive any other unearned income, does not receive an unearned + income disregard. Add the full SSI income back to the remainder. The remainder + is countable unearned income.' + versions: + - effective_from: '2016-10-01' + formula: "if gross_unearned_income <= 0:\n 0\nelse:\n if gross_unearned_income\ + \ == ssi_income_amount and gross_unearned_income > 0:\n max(0, (max(0, gross_unearned_income\ + \ - ssi_income_amount))) + ssi_income_amount\n else:\n max(0, (max(0, gross_unearned_income\ + \ - ssi_income_amount)) - (min((oap_unearned_income_general_disregard_amount\ + \ / (if client_is_married: 2 else: 1)), (max(0, gross_unearned_income - ssi_income_amount)))))\ + \ + ssi_income_amount" +- name: oap_total_countable_income_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 (intro), A, B + metadata: + proof: + atoms: + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: "Disregards shall be applied before determining a client\u2019\ + s total countable income. ... Subtract the countable earned and countable\ + \ unearned income from the OAP grant standard to determine the grant payment\ + \ amount." + versions: + - effective_from: '2016-10-01' + formula: oap_countable_earned_income_under_3_533 + oap_countable_unearned_income_under_3_533 +- name: oap_authorized_grant_payment_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 B + metadata: + proof: + atoms: + - kind: import + path: versions[0].formula + import: + target: us-co:regulations/9-ccr-2503-5/3.530#oap_total_monthly_grant_standard + output: oap_total_monthly_grant_standard + hash: sha256:8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: Subtract the countable earned and countable unearned income from + the OAP grant standard to determine the grant payment amount. + versions: + - effective_from: '2016-10-01' + formula: max(0, oap_total_monthly_grant_standard - oap_total_countable_income_under_3_533) +- name: oap_state_supplementary_payment_under_3_533 + kind: derived + entity: Person + dtype: Money + period: Month + unit: USD + source: 9 CCR 2503-5 3.533 B + metadata: + proof: + atoms: + - kind: import + path: versions[0].formula + import: + target: us-co:regulations/9-ccr-2503-5/3.530#oap_payment_floor_standard + output: oap_payment_floor_standard + hash: sha256:8b3031855cedaee3683e939c2794f44b088ebc47ee9e306130689130824bd48e + - path: versions[0].formula + kind: formula + source: + corpus_citation_path: us-co/regulation/9-ccr-2503-5/3.533 + excerpt: If the grant payment amount is less than the OAP payment floor + standard ... a state supplementary payment will be issued to raise the + grant payment to meet the payment floor standard. + versions: + - effective_from: '2016-10-01' + formula: 'if oap_total_countable_income_under_3_533 < oap_total_monthly_grant_standard + and oap_authorized_grant_payment_under_3_533 < oap_payment_floor_standard: oap_payment_floor_standard + - oap_authorized_grant_payment_under_3_533 else: 0'