---
title: "Glossary"
url: https://docs.growamal.com/en/glossary/
language: en
---

# Glossary

Alphabetical reference for terms, acronyms, and identifiers used across Amal's developer documentation. Each entry links to the guide where the concept is covered in full.

---

## A

**Acute regression**
A drop of ≥20% across 2 comparable sessions for the same skill. Triggers an `open` alert that requires teacher review. It **never** auto-fails an intervention plan, and it is never surfaced in a way that celebrates or emphasizes the drop (GSR-02). See [Progress Monitoring](https://docs.growamal.com/en/guides/progress-monitoring/).

**ADR (Assessment Decision Rules, ADR-01..12)**
Layer 1 of the decision engine. Each new piece of evidence receives an interpretive `Final_Status_Code` (12 codes, e.g. `confirmed_gateway_weakness`). See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**Aim line / slope / 3-point rule**
In CBM: the straight line from baseline to the target score (aim line), the student's actual growth rate (slope), and the rule that 3 comparable points above or below the aim line are needed before calling a trend. The floor is config-driven (default 3) and supersedes the earlier v5 4-point lock. See [CBM & ORF Fluency](https://docs.growamal.com/en/guides/cbm-orf-fluency/).

**Anchor + Supporting Threads + Asset Bridge**
The Threaded Path Model inside every intervention bundle. The anchor skill group carries the largest cumulative-cycle allocation; 1-2 supporting threads receive a smaller range; an asset bridge built on a documented strength takes the smallest range (or is left empty when evidence is insufficient). These are cumulative-cycle allocation ranges, not fixed per-session percentages. QA_020 verifies the anchor band remains the largest. See [Intervention Bundles](https://docs.growamal.com/en/guides/intervention-bundles/).

**Append-only**
Measurement-relevant tables (mastery events, XP transactions, session events, probes, etc.) forbid UPDATE and DELETE. Corrections are new rows. A whitelisted set of status fields may mutate but must carry a history shadow. Vision rule V-6.

---

## B

**BOY / MOY / EOY**
Beginning, Middle, and End of Year. The three universal screening windows. Every student is assessed against a `BenchmarkProfile` at each window.

**Bundle (حزمة التدخل)**
One of 14 named intervention bundles in the closed catalog (e.g. `FOUNDATIONAL_DECODING_BUNDLE`, `FLUENCY_AUTOMATICITY_BUNDLE`). The catalog also includes 7 non-bundle support objects (monitoring processes, light-support actions, routing guards) that are not intervention plans. A student receives at most one active bundle at a time. Not freeform plans. See [Intervention Bundles](https://docs.growamal.com/en/guides/intervention-bundles/).

---

## C

**Calibration / `calibration_version`**
Refitting an item's difficulty estimate (δ) from real student responses (needs ≥300 per item). Each refit mints a frozen version number. Live sessions always read a single pinned snapshot; the version never changes mid-session (V-6).

**CBM (Curriculum-Based Measurement)**
Quick repeated probes that track growth *slope* over time. In Wave 1, CBM is restricted to 4 modalities: `ORF_CBM` (words correct per minute), ORF accuracy, word-list accuracy, and sentence/text accuracy. Other monitoring uses `progress_monitoring_evidence`. See [CBM & ORF Fluency](https://docs.growamal.com/en/guides/cbm-orf-fluency/).

**Context flag**
The only way a teacher can attach session context to a student record. Chosen from a closed dictionary of 7 allowed `CTX_*` IDs. No free text is ever stored (V-12 + B.24). See [Language Safety](https://docs.growamal.com/en/guides/language-safety/).

---

## D

**δ / delta_prior**
A deterministic formula-based estimate of an item's difficulty before real calibration data is available. Computed from 5 components (sub-skill complexity, age-appropriateness, morphological complexity, structural type, and Arabic features). See [Glossary](https://docs.growamal.com/en/glossary/) under calibration.

**DDR (Domain Decision Rules, DDR-01..10)**
Layer 4 of the decision engine. Aggregates per-skill statuses into a per-domain `DomainStatus` (9 states). See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**`do_not_decide_yet`**
The Tie Rule sentinel: the system's primary safety value. When evidence is split or insufficient, the engine emits `do_not_decide_yet` on `skill_status_confidence`, `decision_confidence`, or `trend_signal`. Every downstream consumer (profiles, bundles, alerts, gamification) must stop and wait rather than act on incomplete data (GSR-01). See [Decision Engine](https://docs.growamal.com/en/how-it-works/decision-engine/).

**Domain status (9 values)**
The per-domain result after Layer 4 (DDR): `adequate_domain / monitor_domain / isolated_skill_need / gateway_driven_domain_concern / coherent_domain_weakness / broad_related_domain_concern / partial_domain_profile / domain_weakness_with_behavior_metadata / contextual_domain_review`. See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**DSM (Domain-Status-to-Macro Map, DSM-01..09)**
Layer 5 of the decision engine. Maps domain statuses to macro-domain status (Meets…Severe + `Partial` and `Contextual` honesty values). See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**Debounce (macro projection)**
At diagnostic finish, N sub-skill recomputes drive N skill and domain snapshots but exactly **one** macro rollup pass over the latest committed feeders. Keeps the macro write from running once per sub-skill. See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

---

## E

**`evidence_row` / `screening_score`**
An append-only row written at diagnostic finish carrying per-sub-skill `{correct, total}` counts (not θ), with `evidenceType = screening_score`. It is the count-based input the skill-status engine recomputes from; `correct` is summed from server-graded responses, never re-derived from θ. See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

---

## F

**Fidelity**
Whether an intervention plan was actually delivered at ≥80% of planned sessions (`fidelity_threshold`). "Plan not working" and "plan not done" are different verdicts. The fidelity gate (TM_BLOCK_01) blocks RTI tier escalation when fidelity is unknown or low. See [RTI Decisions & Tiers](https://docs.growamal.com/en/guides/rti-decisions/).

---

## G

**Gateway skill**
A skill whose weakness blocks downstream learning (e.g. letter-sound knowledge). Flagged `is_gateway` = Yes/No/Partial. Gateway weakness escalates to domain concern faster than isolated weakness. See [Skills Taxonomy](https://docs.growamal.com/en/guides/skills-taxonomy/).

**GLOBAL meta row**
The per-student cross-cutting rollup row on `macro_domain_status_snapshot`, written with `isMetaRow=true`. It is the worst-case-wins status over all feeders and is consumed by `Profile_Rules_v2` PR2-00 `DATA_INCOMPLETE`. It is a meta row, never a dashboard tile. See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

**GSR (Global Safety Rules, GSR-01..05)**
Five cross-cutting monitoring protections that ALL progress-monitoring decisions inherit:
- GSR-01: Tie Rule: insufficient evidence → `do_not_decide_yet`
- GSR-02: Acute regression ≥20% in 2 comparable sessions → review alert, never auto-fail
- GSR-03: Benchmarks only at designated review windows
- GSR-04: Only compare comparable probes
- GSR-05: Never decide from a single data point

See [Progress Monitoring](https://docs.growamal.com/en/guides/progress-monitoring/).

---

## I

**ISC (Intervention Success Criteria, ISC-001..019)**
Per-bundle success definitions (19 entries). Defines what "it worked" means for each bundle. See [Progress Monitoring](https://docs.growamal.com/en/guides/progress-monitoring/).

**ISM (Integrated Scaffolding Model, "the maestro")**
The session assembler. Binds phonics, morphology, and comprehension items to one theme and Sentence Growth Unit so the student never context-switches during a session. Bundle-aware (respects anchor/supporting/asset-bridge weights).

---

## M

**Macro domain**
One of 6 rollup areas in Wave 1: `READ_FOUND` (reading foundations), `ACC_FLU` (accuracy & fluency), `READ_COMP` (reading comprehension), `LISTEN_COMP` (listening comprehension), `LANG_COMP` (language for comprehension), `WR_SP` (writing & spelling). Plus `GLOBAL`: a meta-rollup for cross-domain decisions, never a dashboard tile. Rolls up by status (worst-case-wins on Severe), never by numeric averaging (V-3). See [Decision Engine](https://docs.growamal.com/en/how-it-works/decision-engine/).

**Macro snapshot (`macro_domain_status_snapshot`)**
The persisted table holding the 6 macro tiles plus the GLOBAL meta row, per student per window. Worst-case-wins, never numeric. It keeps its shipped column names (`key`, `status`, `secondaryBadge`, `isMetaRow`), where `secondaryBadge` carries the DSM `macro_status_modifier` value. The idempotency UNIQUE is `[studentId, key, evidenceWindow, ruleVersion, seedVersion]`. Distinct from the conceptual "Macro domain" entry above. See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

**MAP (Profile-to-Bundle Map, MAP-000..020)**
21 deterministic rows mapping (primary profile + access_driver / comprehension_subprofile / modifier) → recommended bundle. MAP-000 = `NO_BUNDLE_SYSTEM_GUARD` (halt when data is incomplete). See [Intervention Bundles](https://docs.growamal.com/en/guides/intervention-bundles/).

**Mastery event**
The only currency of gamification. A measured learning achievement: a status improved, a bundle step met, or an RTI tier step up. Session count and time-on-app never mint XP (V-8 anti-vanity). Source kinds are a closed `MasteryEventSourceKind` enum.

**MeasureStatus (5 values)**
The per-measure result: `Meets / Approaching / Below / Severe / Not_Assessed`. Never a percentage, never a global score. `Not_Assessed` is excluded from rollups, never treated as zero (V-3). See [Standards & Benchmarks](https://docs.growamal.com/en/guides/standards-and-benchmarks/).

**Modifier profile**
One of 5 secondary profile labels that refine (but never replace) the primary profile. Values include `ARABIC_ACCURACY_ONLY_MONITOR`, `WRITING_SPELLING_SUPPORT`, `ON_TRACK_WITH_SKILL_ALERT`. See [Student Profiles](https://docs.growamal.com/en/guides/student-profiles/).

---

## N

**Notification kind / dispatcher**
A notification is addressed by a stable `kind` (FK → `NotificationKindCatalog`, 9 Wave-1 kinds) with a structured-per-kind JSONB `payload`. The `dispatch()` seam is the sole in-process write path: catalog lookup, per-kind Zod payload validation, Arabic render, language-safety filter, then insert. Every notification is recipient-scoped, so there is no IDOR. See [Notification Center](https://docs.growamal.com/en/guides/notifications/).

---

## O

**ORF / WCPM**
Oral Reading Fluency, scored by the **teacher** (no speech recognition, ever, per partner decision). WCPM = words correct per minute, the primary fluency metric. See [CBM & ORF Fluency](https://docs.growamal.com/en/guides/cbm-orf-fluency/).

**Override-code catalog (9 codes)**
The only way to record a teacher override reason: a dropdown from a closed list, never free text (Q18). 4 base codes (`Override_Contextual_01 / Override_Procedural_02 / Override_Scheduled_03 / Override_DataGap_04`), 1 gamification-rescind (`Gam_Award_Invalid_05`), 4 bundle-exit codes (`Bundle_Met_Criteria_06 / Bundle_Teacher_Modify_07 / Bundle_Acute_Regression_08 / Bundle_Data_Incomplete_09`). Each code has an `applicableScope` that pins which surface accepts it.

---

## P

**PAC (Pattern-Aware Confirmation, PAC-01..13)**
Layer 2 of the decision engine. Decides whether to confirm a weak signal with a 2-item mini-test (skipped when the pattern is already clear, to avoid over-testing). See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**PMR (Progress Monitoring Rules, PMR-001..012)**
Per-bundle-family monitoring recipes: which tool, how often, how many data points, how to read the response. All 12 PMR rules inherit the 5 GSR safety rules. See [Progress Monitoring](https://docs.growamal.com/en/guides/progress-monitoring/).

**Primary profile**
One of 12 closed labels per student per assessment window (e.g. `READING_ACCESS_GAP`, `FOUNDATIONAL_DECODING_GAP`, `ON_TRACK`). Plus `DATA_INCOMPLETE` (PR2-00, system guard): not a real profile, only the "evidence missing" signal. Exactly one primary profile fires per window (AO anti-overlap rules). See [Student Profiles](https://docs.growamal.com/en/guides/student-profiles/).

---

## R

**RBM (Response Behavior Metadata, RBM-00..11)**
A parallel stream of behavior flags (too-fast answers, long hesitations, repeated same-option selection…). RBM flags *annotate* scores but never overwrite them; `scoreImpact` is always `None`. See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**Re-diagnostic**
A new diagnostic sitting opened no sooner than 14 days after the prior completed one for the same student and cycle. Opening it archives the prior open practice queue. The comparison read pairs the new sitting against the most-recent preceding completed diagnostic and returns, per sub-skill, a prior-to-current status transition plus a growth direction (up, down, or same). No raw θ leaves the server. See [Diagnostic & Practice](https://docs.growamal.com/en/guides/diagnostic-and-practice/).

**RTI tier**
The formal intervention-intensity level, a first-class persisted entity: `TIER_1_CORE / TIER_2_TARGETED / TIER_3_INTENSIVE`. Every tier movement gates through one of 4 `TM_*` rules and requires a `Tier_Decision_Record`. No OVR_* override rule may change tier; RTI is in every `forbidden_fields` list. Tier-3 requires admin approval (`APPROVE_TIER_3_ACTIVATION`). See [RTI Decisions & Tiers](https://docs.growamal.com/en/guides/rti-decisions/).

---

## S

**Scaffold tier**
How much support a task carries: `Level_1_Foundation / Level_2_Targeted / Level_3_Independence`. Set **per (student × skill × bundle × task type)**, never a student-wide level. Never shown to the student. See [Intervention Bundles](https://docs.growamal.com/en/guides/intervention-bundles/).

**Skill status (9 values)**
The per-skill result from Layer 3 (SSR): `adequate / monitor / weak_isolated / monitor_gateway / weak_gateway / weak_domain_related / broad_weakness_related / cautionary_weakness_with_metadata / contextual_review`. Each output also carries a `skill_status_confidence`. See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**Smart cluster**
A group of students who can be taught together because they share the same bundle, anchor skill group, scaffold tier, and compatible delivery mode, AND both have sufficient data AND no open acute-regression alert (QA_003/004, SCS_01). See [Smart Clustering](https://docs.growamal.com/en/guides/smart-clustering/).

**Snapshot projection / the bridge**
The server-side projection hung off `finishSession` that turns a finished diagnostic into an `evidence_row` and then the skill, domain, and macro snapshots. It adds no routes. See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

**SPOT (Student Profile Output Templates, SPOT-001..015)**
Pre-written narrative templates rendered per audience (teacher / parent / admin / `student_tasks_only`). Rule-written, not AI-written. The AI may only extend a teacher-reviewed SPOT narrative (W1), never author the base. See [Student Profiles](https://docs.growamal.com/en/guides/student-profiles/).

**SSR (Skill Status Rules, SSR-01..12)**
Layer 3 of the decision engine. Combines Final Status Code + pattern + behavior metadata into the 9-value `SkillStatus`. See [Skill-Status Engine](https://docs.growamal.com/en/guides/skill-status-engine/).

**StudentProfile.id vs User.id**
The id-key contract from the measurement bridge. The skill-status snapshot tables, `evidence_row`, and `student_assessment_result` key `studentId` on **StudentProfile.id**. The downstream profile, bundle, rti, and monitoring **chain tables** stay on the **User.id** id-space. So a snapshot read in a module is on StudentProfile.id while the assignment or alert read beside it is on User.id. Reconciling the two is a deferred follow-up (Q-BRIDGE-5). See [Measurement Bridge](https://docs.growamal.com/en/guides/measurement-bridge/).

**Sub-flag**
8 fine-grained Arabic-specific flags (`AR_MADD_FLAG`, `AR_SHORT_VOWEL_FLAG`, `AR_ORTHOGRAPHIC_CONFUSION_FLAG`, `AR_SHADDA_FLAG`, `VOCAB_ALERT`, `SYNTAX_ALERT`, `MORPH_ALERT`, `WR_SP_ALERT`) that roll up into modifier profiles and drive analytics. Never user-facing. See [Student Profiles](https://docs.growamal.com/en/guides/student-profiles/).

**Sub-skill**
One measurable unit of Arabic literacy. The catalog has 80 skills across 9 domains (phonological awareness, decoding & word recognition, sentence meaning & syntax, morphology, vocabulary, listening, reading comprehension, writing & spelling, fluency & accuracy). See [Skills Taxonomy](https://docs.growamal.com/en/guides/skills-taxonomy/).

---

## T

**TAW (Teacher Activation Workflow, TAW_01..17)**
The 17-step flow from seeing recommendations to activating bundles to reviewing exit conditions, across 6 named screens and 3 guardrail flows. See [Teacher Activation Workflow](https://docs.growamal.com/en/guides/teacher-activation/).

**Tenant isolation**
`organizationId` is denormalized and indexed on every tenant-scoped table. Middleware filters every query by it. Cross-org reads return `404` (existence never disclosed across org boundaries). See [Core Concepts](https://docs.growamal.com/en/core-concepts/).

---

## V

**V-3 (Vision rule 3)**
Scientific honesty in measurement: no fake confidence, no single global percentage anywhere. Status is always per-measure or per-macro-domain. `Not_Assessed` is excluded from rollups. Any average of status values is a bug.

**V-5 (Vision rule 5)**
LLMs draft; humans decide; statistics measure. No LLM ever computes θ, picks an item, scores a CBM probe, or emits a mastery event. LLMs are confined to teacher-side drafting workflows.

**V-6 (Vision rule 6)**
Determinism is a feature. Same input + same rule version ⇒ identical output. Every session pins a calibration version; every config table uses publish-then-freeze. Replay must work across calibration snapshots.

**V-12 (Vision rule 12)**
Teacher decides; system proposes; growth language only. No free text about students stored on the server. Override paths use the 9-code catalog, never a text field. The language-safety layer enforces this at every render.

---

## θ (theta)

The student's statistical ability estimate produced by the Rasch measurement model. Internal only: never shown to a teacher, parent, or student. In Wave 1, θ uses a mock formula (WP-03); real calibration lands in WP-CAL. Stored as `Decimal(7,4)` for byte-identical replay (V-6). See [Measurement](https://docs.growamal.com/en/how-it-works/measurement/).
