Skip to content

CAP-PFM-ELG-011List qualifying subjects and assess a draft’s impact

Markdown

CAP-PFM-ELG-011

List qualifying subjects and assess a draft’s impact

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

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
Completed bulk work separates qualifying, refusing and uncertain subjects.A release can cite its measured impact on subjects.
Surfaces
consoleapijob
Intent sources
services-platform:docs/milestones/PLAT-M12-eligibility-who-qualifies.md#Scope in one paragraph

Controls

33 controls apply, from the corpus control catalogue.

TC-AVL-004 TC-AVL-005 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-004 TC-DAT-005 TC-IAM-001 TC-IAM-002 TC-IAM-004 TC-IAM-005 TC-IAM-006 TC-LOG-001 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.populationapitenant
platform.eligibility.publishapitenant
crm.contacts.queryservicetenant

Business Rules

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

IdRuleKindEnforced atProvenance
01must prove
Proposed
Population start and read require population authority plus the dataset query permission; simulation start and read require publish authority plus that dataset permission.
permissionapi, servicetest
services-platform:modules/eligibility/tests/e2e/eligibility-population.e2e.spec.js#refuses a population run to a caller without the dataset query key, 403 naming it
02must prove
Proposed
Population runs evaluate an effective or numbered version on its subject dataset, optionally filtered, rejecting compile failures, nonbatch providers, a foreign dataset, more than 250,000 explicit subjects or saved-query output before creating a run.
validationservicetest
services-platform:modules/eligibility/tests/integration/services/population/population-run.integration.spec.js#refuses a rule whose provider type cannot be called in batches, and creates no run
03must prove
Proposed
Eligible-only runs prune subjects excluded by database conditions, but provider-dependent branches cannot eliminate candidates in advance.
calculationservicetest
services-platform:modules/eligibility/tests/integration/services/population/population-run.integration.spec.js#enumerates only the subjects the sql prefix keeps when the run asks for the eligible alone
04must prove
Proposed
Population jobs persist each cursor page once and resume after interruptions, with runs exceeding one million subjects stopped unless explicitly allowed.
invariantservicetest
services-platform:modules/eligibility/tests/integration/services/population/population-run.integration.spec.js#records a retried page once: the second attempt from the old cursor changes nothing
05must prove
Proposed
Completed runs expose state counts and ordered pages of at most 1,000 subject references, comparison gains and losses limited to 10,000 each, unchanged counts and optional reference-and-state exports.
calculationservicetest
services-platform:modules/eligibility/tests/integration/services/population/population-run.integration.spec.js#answers the subjects newly eligible against the earlier run, and none no longer eligible
06must prove
Proposed
Simulations compare a draft and publication over recent decision subjects, derived-role holders and any requested scope, returning state changes and affected bindings and references, with nonbatch providers making results partial.
calculationservicetest
07must prove
Proposed
Publication may cite a completed simulation of its current draft or record a skip, rejecting both choices together, foreign simulations, unfinished simulations and results for earlier drafts.
validationservicetest
08must prove
Proposed
Population runs have a 90-day retention target and simulations 30 days; the product should enforce expiry, but scheduled cleanup is absent.
lifecycleservicetest
services-platform:modules/eligibility/tests/integration/services/persistence/population-runs.integration.spec.js#expires the settled run once its time has come, and only in its own tenant
09must prove
Proposed
Population and simulation reads conceal other workspaces’ records, and workspace deletion removes their runs and simulations.
invariantservice, databaseobserved
10
Proposed
The product exposes run lookup by its returned identity but offers neither a run list nor cancellation.
policyapitest

Scenarios

IdGivenWhenThenProvenance
01A director needs a renewal population.They run the active-member expression on chapter contacts.Completed output gives state counts and pages without omissions or repeats.test
02A draft broadens the rate to inactive members.The director simulates and publishes with that result.Publication records the gains and losses and queues newly eligible subjects.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.