Skip to Content

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.

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.

Aim line / slope / 4-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 4 consecutive points above or below the aim line are needed before calling a trend. See CBM & ORF Fluency.

Anchor + Supporting Threads + Asset Bridge The Threaded Path Model inside every intervention bundle. One anchor skill group takes 40-60% of instructional time; 1-2 supporting threads take 25-35%; an asset bridge built on a documented strength takes 10-15% (or is null when evidence is insufficient). QA_020 verifies the anchor remains the largest share. See 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 19 named intervention packages in the closed catalog (e.g. FOUNDATIONAL_DECODING_BUNDLE, FLUENCY_AUTOMATICITY_BUNDLE). A student receives at most one active bundle at a time. Not freeform plans. See 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.

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.


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 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.

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.

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.

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.

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.


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.


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.


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.

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.

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.


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.

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.

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.

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.

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.

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.


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.


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.

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.

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.

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.


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.

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.

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.


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.

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.

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.

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.

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.

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.

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.

Sub-flag 8 fine-grained Arabic-specific flags (AR_MADD_FLAG, AR_SHORT_VOWEL_FLAG, AR_LETTER_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.

Sub-skill One measurable unit of Arabic literacy. The catalog has 79 skills across 9 domains (phonological awareness, decoding & word recognition, sentence meaning & syntax, morphology, vocabulary, listening, reading comprehension, writing & spelling, fluency & accuracy). See 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.

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.


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.

Last updated on