Capablio

Domain Model

Architecture target (AFF v0.1). Implementation flags live in implementation-status.md. Do not treat this document as a shipped product contract.

Updated

Architecture target (AFF v0.1). Implementation flags live in implementation-status.md. Do not treat this document as a shipped product contract.

Entity overview

erDiagram TENANT ||--o{ FRAMEWORK : owns FRAMEWORK ||--o{ CONSTRUCT : contains CONSTRUCT ||--o{ QUESTION_FAMILY : measured_by QUESTION_FAMILY ||--o{ QUESTION_VARIANT : expressed_as QUESTION_PACK ||--o{ PACK_ITEM : contains PACK_ITEM }o--|| QUESTION_FAMILY : references PACK_ITEM }o--o| QUESTION_BUNDLE : may_reference TENANT ||--o{ PACK_ASSIGNMENT : configures QUESTION_PACK ||--o{ PACK_ASSIGNMENT : assigned_as PACK_ASSIGNMENT ||--o{ SCHEDULE_POLICY : runs_on SCHEDULE_POLICY ||--o{ SURVEY_WINDOW : creates SURVEY_WINDOW ||--o{ SURVEY_INSTANCE : creates SURVEY_INSTANCE ||--o{ SURVEY_ITEM : contains QUESTION_VARIANT ||--o{ SURVEY_ITEM : instantiates SURVEY_ITEM ||--o| RESPONSE : receives SUBJECT ||--o{ SURVEY_INSTANCE : target_of RESPONDENT ||--o{ SURVEY_INSTANCE : completes SUBJECT ||--o{ PDP_GOAL : owns PDP_GOAL ||--o{ PDP_QUESTION_OVERRIDE : changes QUESTION_FAMILY ||--o{ PDP_QUESTION_OVERRIDE : affected_by QUESTION_FAMILY ||--o{ EXPOSURE_EVENT : logged_as SUBJECT ||--o{ EXPOSURE_EVENT : exposed_to RESPONDENT ||--o{ EXPOSURE_EVENT : saw QUESTION_PACK ||--o{ COVERAGE_CYCLE : tracks EXTERNAL_IMPORT ||--o{ EXTERNAL_OBSERVATION : provides

Stable measurement entities

Framework

A named capability model, such as Core Leadership, Engineering Leadership, or a tenant framework. A framework is versioned and may include constructs from multiple sources.

Construct

A relatively stable concept to measure, such as priority clarity, feedback receptivity, delivery-system improvement, psychological safety, or technology economics.

Required fields:

  • construct_id
  • framework_id
  • name
  • definition
  • parent_construct_id, optional
  • evidence_types
  • owner
  • status
  • version

Question Family

The stable semantic intent of a question across cadence and relationship variants.

Examples:

  • leadership.feedback.closes_loop
  • engineering.delivery.removes_dependencies
  • team.health.sustainable_workload

A family owns comparability rules, supported evidence types, and links to PDP templates.

Question Variant

The exact text, scale, observation window, respondent relationship, and language used in a survey.

A variant is immutable after it receives a response. Editing creates a new version.

Composition entities

Question Bundle

A related group of questions with selection behavior:

  • atomic: all items must fit or none are selected
  • splittable: select between min_pick and max_pick
  • ordered: selected items retain sequence
  • mutually_exclusive: only one child branch may be selected
  • branching: a screening answer activates follow-up items

Question Pack

A curated program unit containing anchors, rotation pools, bundles, respondent routing, cadence defaults, and quotas.

Pack Assignment

A tenant-specific attachment of a pack to people, roles, teams, locations, or attributes. An assignment may override cadence, quota, channels, and enabled modules without altering the source pack.

Scheduling and delivery entities

Schedule Policy

Defines when survey windows are created:

  • cadence unit and interval
  • tenant timezone
  • fiscal or calendar period rules
  • due day and response window
  • quiet periods and holidays
  • pause rules
  • channel and reminder behavior

Survey Window

A time-bound opportunity created by a schedule for a population. A window may produce one survey instance per subject/respondent relationship.

Survey Instance

The assembled questionnaire delivered to one respondent about one subject or team for one window.

Survey Item

A frozen copy of a question variant and relevant metadata at assembly time. Historical surveys remain interpretable even if the library changes later.

Exposure and coverage entities

Exposure Event

Recorded when a question is presented, answered, skipped, expired, or withdrawn. It supports cooldown, fatigue, and audit calculations.

Recommended scope key:

tenant + subject + respondent + relationship + question_family

A tenant may choose a broader scope, such as subject-only, but broad scope reduces repeated observations from different raters.

Coverage Cycle

Tracks whether each eligible family or bundle in a rotation pool has been presented. A new cycle starts only under an explicit policy:

  • all required units covered
  • pack version changed materially
  • admin reset
  • configured time boundary

Coverage does not reset merely because a question receives a new wording version.

Development entities

PDP Goal

Fields should include:

  • goal title and description
  • linked constructs and question families
  • owner, supporters, and coach
  • baseline date
  • target behavior and evidence
  • milestones and target date
  • state: draft, active, paused, completed, abandoned
  • review cadence
  • visibility and permissions

PDP Question Override

A time-bounded policy that changes a question family’s normal recurrence for a subject or respondent group.

Supported modes:

  • replace_skip_periods
  • min_skip_periods
  • max_skip_periods
  • force_next_once
  • suppress_until_milestone

Import entities

External Import

Stores source vendor, file, hash, import timestamp, parser version, consent basis, and mapping status.

External Observation

Stores a raw item or competency observation with source scale, respondent group, time, text, and mapping confidence. It is not a native response and is not inserted into native trend calculations unless an explicit bridge has been approved.

Commercial and operational entities

Entitlement

A commercial allowance or limit, for example:

  • allowed cadences
  • maximum active schedules
  • custom question count
  • custom pack count
  • PDP goals per subject
  • 360 cycles per year
  • history period
  • integrations
  • data residency

Feature Flag

An engineering release or experiment control. It must not be used as the billing source of truth.

Tenant Policy

A customer configuration within their entitlement, such as a weekly cadence, anonymity threshold of four, or 24-month response retention.

Invariants

  1. A published question variant with responses is immutable.
  2. Every response points to a frozen survey item and source variant version.
  3. A question cannot be selected when its applicability or observation-window rules fail.
  4. A PDP override cannot bypass legal suppression, tenant pause, or the absolute fatigue safety cap.
  5. Mandatory overflow is visible and resolved explicitly.
  6. Imported observations retain their original scale and source.
  7. Aggregates below the anonymity threshold are suppressed or rolled up.
  8. Data retention deletion and exposure cooldown are separate processes and tables.