Skip to content

CAP-PFM-ELG-008Determine eligibility with an explanation

Markdown

CAP-PFM-ELG-008

Determine eligibility with an explanation

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationObserved

KindCapabilityProduct areaPlatformModuleEligibility, Responsibilities and AttentionRevision1

Read atservices-platform ad3f6a65react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Evaluation distinguishes qualification, refusal and uncertainty; the use’s policy interprets uncertain results.Explanations respect the caller’s permitted detail.
Surfaces
apiportal
Intent sources
services-platform:docs/milestones/plans/PLAT-M11-plan.md#A2services-platform:docs/milestones/plans/PLAT-M11-plan.md#D1services-platform:docs/milestones/plans/PLAT-M11-plan.md#D5services-platform:docs/milestones/plans/PLAT-M11-plan.md#PLAT-M11-S04services-platform:docs/proposals/eligibility/17-decision-register.md#D-08services-platform:docs/proposals/eligibility/17-decision-register.md#D-17services-platform:docs/proposals/eligibility/17-decision-register.md#D-31

Controls

29 controls apply, from the corpus control catalogue.

TC-AVL-004 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-CRY-001 TC-CRY-002 TC-CRY-003 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-004 TC-LOG-004 TC-LOG-005 TC-MON-001 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-VEN-001 TC-VEN-002 TC-VEN-003

Permissions

KeyChecked atScope
platform.eligibility.readapitenant
platform.security-self.readapitenant

Business Rules

15 rules, 14 to be proved before approval. A rule's product intent is derived from its origin: 15 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Evaluation returns eligible, ineligible or indeterminate; an indeterminate result becomes denial under closed, admission requiring review under open with review, or an unresolved outcome under defer.
calculationservicetest
services-platform:modules/eligibility/tests/unit/compile-and-evaluate.spec.js#makes an indeterminate state ineligible under closed
02must prove
Confirmed
Evaluation verifies supplied subjects in the workspace before applying conditions, with an absent record yielding indeterminate and a not-found reason before the failure policy is applied.
invariantservice, databasetest
services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#answers a contact no row of the tenant has indeterminate, subject_not_found, ineligible under the closed policy
03must prove
Confirmed
An omitted or empty required subject yields an indeterminate result with a missing-subject reason.
validationservicetest
04must prove
Confirmed
A failed data read becomes an indeterminate result with a read-failure reason under the binding policy rather than an exception, preserving results for the remaining batch entries.
policyservicetest
05must prove
Confirmed
An empty stored value fails its condition, such as an absent address, instead of making the evaluation indeterminate.
calculationservicetest
services-platform:modules/eligibility/tests/integration/services/evaluate/plat-m11-evaluation.integration.spec.js#answers a contact with no address ineligible, not_satisfied, never fact_missing
06must prove
Confirmed
Evaluation selects the version effective on the requested day and resolves relative dates from that day.
calculationservicetest
services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#answers an as-of shift from the day asked about, so a contact adult today was not in 2015
07must prove
Confirmed
Evaluation batches accept one to 50 requests and return results in request order, rejecting a larger batch as a whole.
validationapitest
08must prove
Confirmed
Purpose declarations control caller admission: portal callers require portal support, console callers cannot use system-only purposes and services require system support, with eligibility read authority also required for console and service callers.
permissionapi, servicetest
services-platform:modules/eligibility/tests/e2e/eligibility-evaluate.e2e.spec.js#refuses a console caller holding the read key a binding whose consumer kind takes system callers only, 403
09must prove
Confirmed
Portal requests evaluate only the signed-in member’s linked contact for display and treat supplied facts as asserted, rejecting foreign contacts, stronger consistency or an unlinked member.
permissionapitest
services-platform:modules/eligibility/tests/e2e/eligibility-evaluate.e2e.spec.js#refuses a portal member an evaluation of another contact, 403
10must prove
Confirmed
Explanation levels are none, portal, administrator and full; administrator and full require eligibility read authority and exclude portal callers, with excessive requests rejected.
permissionservicetest
services-platform:modules/eligibility/tests/unit/evaluate-for-caller.spec.js#refuses a portal caller the full explanation even with the read permission
11must prove
Confirmed
A closed-policy indeterminate result uses the rule’s portal message, with labelled explanations and no linked-record names exposed to portal readers.
policyservicetest
services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#gives the portal the definition’s message for an indeterminate decision under the closed policy
12must prove
Confirmed
People cannot request transactional evaluation over the web; in-process checks read and record within the consumer transaction, with equivalent SQL-function states for SQL-only expressions.
policyapi, service, databasetest
services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#answers the SQL function’s states the TypeScript path answers for the planted contacts
13must prove
Confirmed
Provider evaluation uses declared batch sizes, a five-second budget and one retry, opening a 30-second circuit after five failures in one minute and returning indeterminate while open.
policyservicetest
services-platform:modules/eligibility/tests/integration/services/evaluate/hosted-evaluate.integration.spec.js#opens the circuit after five failures and calls the provider no more while it is open
14must prove
Confirmed
The eligibility data reader can inspect reporting-readable data only within the workspace and cannot write records.
permissiondatabasetest
15
Confirmed
The product should publish evaluation for use inside consumer processes as the approved architecture describes; the available implementation remains internal to Platform.
policyservicedocumented

Scenarios

IdGivenWhenThenProvenance
01A released active-adult expression serves a renewal desk.The desk evaluates an active adult and an inactive person.One qualifies and the other does not, with explanations.test
02A storefront asks about a recently deleted contact.Its member-rate use applies closed policy.Not-found uncertainty produces a denial and standard pricing.test

Edge Cases

IdGivenWhenThenProvenance
03An expression depends entirely on supplied facts.Its named contact is absent.The result remains indeterminate rather than eligible.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.