Ideas — Proposed Data Model

← tree index · see open issues in data & integration

A first-pass entity sketch derived from the flows. Not authoritative — a starting point for plan-eng-review. Names are illustrative.

Core entities

School ──< Engagement >── InstructionalStrategist
  │            │
  │            ├──< Cohort (CohortSnapshot) >──< Participant
  │            │
  └── SchoolContextProfile (1 per school, reusable, versioned/timestamped)

School & context

Engagement

People

Behavioral entities (the metric backbone)

ApplicationEvent

The most important table — powers time-to-apply metrics.

ApplicationEvent {
  participant_id, engagement_id, strategy_id,
  occurred_at,                 // → time-to-first-application, 24/48/5d windows
  evidence_type,               // artifact | observation | self_report
  outcome,                     // success | attempted_failed
  attempt_number               // → repeat-application rate, applications-to-mastery
}

ActionPlan (Practice commitment)

participant_id, engagement_id, what, when, with_whom, created_at. The object the Apply gate checks for absence (→ intervention layer).

PulseResponse

participant_id, engagement_id, likert (1–5), mcq_answers[3]. Never exposes individual scores downstream; only aggregates ([C3] enforced at query level). → pulse check

Reflection / Survey

participant_id, engagement_id, evidence, obstacles, next_try, survey_complete (bool). Survey completion gates the Certificate.

Content entities

ContentAsset (+ visibility state machine)

ContentAsset {
  type,                        // pre_work | workshop_material | slide_deck | post_resource | microlearning
  engagement_id?,              // null for reusable microlearning
  visibility_state,            // draft | pre_engagement | day_of | post_released
  default_rule_owner = PM,
  ...
}
VisibilityTransition { asset_id, from, to, actor_id, at }   // audit log

content visibility states

IntroVideo

strategist_id, url, duration (≤45s), approval_state (pending/approved/rejected), watched_pct. Auto-associates via assignment. → intro video

Microlearning + tags

Reusable ContentAsset with a gap taxonomy so the IS recommendation engine and the intervention layer can match item → participant gap. Taxonomy shape is an open question.

Signal / loop entities

InterventionTrigger

phase, participant_id, signal_type (missing_prework | no_action_plan | no_application_24/48/5d | no_survey | drift | at_risk_cohort), fired_at, response_type, channel. → intervention layer

NextEngagementSignal (business loop)

cohort_id, gap_summary, routed LA → PM → HubSpot (LA-first rule). at_risk / high_perf flag drives case-study capture. → business loop

GapSignal (Content Creator backlog)

Cross-engagement pattern (e.g., “40% miss Q2”) fed from PM + IS to prioritize microlearning.

Cross-cutting