The Leadership Programs column in the Performance menu has 4 surfaces — Principal 360°, Principal Coaching, Principal Observations, Principal Appraisals. They all run on the same person: each school principal across the academic year. The four surfaces collect different evidence in different ways, but they only make sense together. This page walks you through them in plain English. If a word looks new, Section 7 — Glossary explains it.

A short promise
You do not need to read all four framework JSONs today. Once you know which surface is formative (helping the principal grow) and which is summative (scoring at year-end), the four pages explain themselves. Come back here when you get stuck.
🎯
What are Leadership Programs?
A small workspace for the cycle Eduversal runs around each partner-school principal. Two formative surfaces (Coaching · Observations) help the principal grow during the year. Two summative surfaces (360° · Annual Appraisal) collect the year-end evidence the appraisal score sits on.
👥
Who uses it?
The Performance dropdown is open to every central_user — each Leadership Programs surface is then gated per-page via Page Access. In practice the column is the workspace for Eduversal Directors (mentor side) + central_admin (cycle orchestration). Foundation Reps write the upstream observation + appraisal docs in Academic Hub; this side is the network-wide read.
One important separation. Coaching is confidential (Charter NN5) — only the mentor and the principal see the session notes. Foundation Reps cannot read them. Observations are formative (Charter NN1) — they never feed appraisal scoring. Only the Annual Appraisal produces a year-end number + A–F band. Mixing these up is the #1 new-user mistake; the rest of this page exists so you don't.

Each principal moves through these four surfaces during the year. The first two are about growth (coach + observe). The last two are about evidence (rate + score). Knowing the difference once is enough.

Four surfaces — type + purpose

SUMMATIVE
Principal 360°
3-cohort anonymous feedback (staff · parents · students). Aggregated by Cloud Function once each cohort hits 5 respondents. Composite F3_360 score feeds the Annual Appraisal's F3 component.
FORMATIVE — PRIVATE
Principal Coaching
Eduversal Director (mentor) ↔ principal session log. 5-stage 60-min agenda. Charter NN5 — confidential. Foundation Reps cannot read these. Logged sessions are immutable.
FORMATIVE — OBSERVATIONAL
Principal Observations
Foundation Rep school-visit notes against the 8-foci E/D/N rubric. Charter NN1 — never feeds appraisal scoring. Used as evidence + coaching prep.
SUMMATIVE — SCORED
Principal Appraisals
Annual scored review. F1–F5 + F_LEAD weighted composite → A–F band. Written by Foundation Reps; read network-wide here. Submitted records are immutable at the rule level.

Charter Non-Negotiables — what's hard-locked

Five Charter Non-Negotiables run across the four surfaces. They are rule-enforced in firestore.rules — not just UI conventions. Loosening one is a security regression.

CodeRuleSurface affected
NN1Formative data (observations, induction) never feeds appraisal scoring.Observations · Appraisals
NN2Eduversal never reads named journal / walkthrough entries.Coaching (related)
NN3Mentor must hold an active certification before being assigned.Coaching
NN4Coaching assignment requires three named uids (mentee, mentor, school leader).Coaching
NN5360 responses persist NO respondent uid. Coaching sessions confidential.360° · Coaching
📁 Where this comes from. The frameworks live as JSON in docs/cross-module/principal-360-framework-v1.json + principal-coaching-framework-v1.json and in Academic Hub/resources/principal-observation-rubric.json + principal-appraisal-framework-v1.json. Each is exposed read-only via /references. When this page says "8-foci E/D/N rubric", that comes verbatim from the observation JSON. Edit the JSON, don't hand-edit the surface.

A single principal's year moves through four phases. Each phase touches a different surface. This is the order things happen — not a strict rule, but the way most cycles run.

1
👁️
Phase 1 · Term 1
Observe — gather evidence
Foundation Rep visits the school, runs the 8-foci E/D/N rubric, writes 4 narrative reflections. Charter NN1: never feeds the year-end score.
Observations →
2
💬
Phase 2 · Term 1–3
Coach — grow together
Eduversal Director runs the coaching cycle. 5-stage agenda per session. Charter NN5: notes are private to mentor + principal.
Coaching Hub →
3
🌐
Phase 3 · Term 3
Survey — three cohorts
central_admin launches the 360° cycle. Staff · parents · students answer anonymously. Cloud Function aggregates once each cohort hits 5 respondents.
360° Admin →
4
📋
Phase 4 · End of year
Appraise — score + band
Foundation Rep writes the annual appraisal. F1–F5 + F_LEAD weighted composite → A–F band. Submitted = immutable.
Appraisals →
360° composite F3_360 feeds the Annual Appraisal's F3 component — that's the one wired link between a formative surface and the score. Everything else stays in its own lane. Observations + Coaching do NOT feed the appraisal number (NN1 + NN5).

Four surfaces — one card each. The cards follow the same order they appear in the Performance dropdown's Leadership Programs column.

🌐
Principal 360°
/principal-360-admin
Open page →
What it is
The cycle launcher + monitor for principal 360° feedback. Pick a principal, set the academic year + window (W17 mid-year / W38 year-end / etc.), open the cycle, share the three cohort-specific invite links (staff · parent · student), then watch the per-cohort response counts climb. A Cloud Function aggregates results as soon as each cohort hits 5 respondents (Charter NN5 — anonymity floor).
Why we built it
Before this page, 360 cycles were managed in a spreadsheet + Google Form combination. Anonymity was a promise, not a rule. Now the cycle doc lives in principal_360_cycles, responses land in principal_360_responses with NO respondent uid, and aggregates publish only when the cohort has cleared the 5-respondent floor. The two new tabs — Cycles + Network Insights — let you see both one cycle's progress and network-wide trends in one place.
Day 1 view
A list of cycles, newest first. Click "+ New cycle" to launch one. Each cycle row expands to show the three invite links (with copy buttons) + cohort response counts + the composite F3_360 score once aggregation kicks in. Switch to the "Network Insights" tab for network-wide histogram + above-threshold % + cohort-gap pattern + per-principal trend.
What to do
Launch one cycle per principal per window. Share the three cohort links with whoever should be inviting respondents (typically the principal themself for staff + komite for parents + OSIS for students). Below-threshold cohorts stay hidden by design.
  • Charter NN5 is non-negotiable. The Cloud Function never reads or persists respondent uid. Don't ask raters to identify themselves outside the form — that breaks the trust contract.
  • Below-threshold cohort weight redistributes automatically to the cohorts that did clear the bar.
💬
Principal Coaching
/principal-coaching-hub → /principal-coaching-session
Open page →
What it is
Two pages working as one workflow. The hub lists every principal in the network with the most recent logged session date — pick one to start a fresh session, or open an existing draft. The session form walks the mentor through the 5-stage 60-min agenda from principal-coaching-framework-v1.json: Personal Check-In (private to mentor) → Look Back → Now → Look Forward → Close.
Why we built it
Coaching only works if the principal trusts that what they say stays between them and the mentor. Building it inside the network platform means the audit trail is intact (when was the session? what commitments were made?) while still keeping the content confidential. The rule layer enforces ch_sub_roles ∈ {director} for writes — even other central_users cannot create a coaching session.
Day 1 view
Hub: per-principal cards in a search-able grid, last-session date + "Start new session today" CTA per card. Session: 5 stage cards, each with the framework's prompts, a private notes area for stage 1, commitment review for stages 2 + 4. Sticky bottom action bar with Save Draft / Submit / Mark as Logged.
What to do
Open the hub. Pick the principal you're meeting today. Click "New session". Work through the 5 stages live during the conversation. When the meeting ends, mark the session as Logged — it becomes immutable.
  • Foundation Reps are excluded at the rule level (Charter NN5 director-only-write, 2026-05-27). Don't reintroduce FR access without an explicit Charter exception.
  • The Personal Check-In stage is yellow-highlighted in the form — that's the private-to-mentor section. The principal sees stages 2–5 in their /principal-coaching-view on Academic Hub but not stage 1.
  • Logged sessions are immutable. If you logged the wrong commitment, the next session's "Look Back" stage is the place to correct it — not by editing the previous doc.
👁️
Principal Observations
/principal-observations
Open page →
What it is
Network-wide read-only roll-up of every Foundation Rep observation logged against a partner-school principal. Each row shows principal · school · visit date · visit type · observer · the foci-code summary (e.g. "5 Established · 2 Developing · 1 Not Observed"). Click any row to see the focus-by-focus breakdown + 4 narrative reflections (Glow · Grow · Action · Anchor).
Why we built it
Foundation Reps write observations in Academic Hub /principal-observation-entry. Eduversal needed a cross-school read of "what observation evidence exists for this principal right now?" — for coaching prep, succession planning, and FR calibration. This is that read. Charter NN1: observations never feed appraisal scoring. The page exists to inform conversations, not produce a number.
Day 1 view
Table of observations, newest first (limit 500). Filter by school · status (draft / submitted) · observer · visit type. KPI strip shows total · submitted count · drafts · unique principals · this academic year's count. Click any row for the detail modal.
What to do
Read the observations for the principal you're about to meet for coaching, or the one whose appraisal you're calibrating. Use the focus-by-focus breakdown to scaffold conversations — "P3 was coded Developing last visit, what's changed?".
  • Editing happens upstream in AH /principal-observation-entry. This page is read-only by design.
  • Submitted observations are immutable at the rule level. Drafts can be reopened by the original observer in AH.
  • The 8 foci (P1–P8) come from principal-observation-rubric.json; click a focus name in the detail modal to see what it measures.
📋
Principal Appraisals
/principal-appraisals
Open page →
What it is
Network-wide read-only roll-up of every Foundation Rep annual appraisal on a partner-school principal. Each row shows principal · school · academic year · composite (1–4) · band (A–F) · status · last updated. Click any row to see the F1–F5 + F_LEAD scored breakdown + 6 narrative reflections (PNF1–PNF6). PNF6 is the Eduversal-internal confidential note — visible to central_admin only.
Why we built it
The appraisal is the year's summative product. Eduversal needed a cross-school read for "what's the band distribution this year?" + "is this principal trending up or down?" + per-principal succession planning. This page is also the FR-calibration surface — Foundation Reps from different schools can see each other's scoring patterns. Submitted appraisals are immutable at the rule level; corrections require a manual rules console operation.
Day 1 view
Table of appraisals, newest first. Filter by school · year · status (draft / submitted) · band. KPI strip shows total · submitted · drafts · avg composite · A/B+ share %. Click any row to see the focus-by-focus item scores (weight + per-focus average) + 6 PNF narratives. PNF6 only appears for central_admin.
What to do
Use this page when you need the year-end picture. For one principal's score breakdown: click their row. For network band distribution: read the KPI strip.
  • Editing happens upstream in AH /principal-appraisal-entry by the assigned Foundation Rep.
  • PNF6 (confidential note) is page-level filtered — the HTML for it never renders for non-admins. Don't treat it as a "trust the audience" boundary; it's enforced in JS.
  • Composite + band are persisted on submit + immutable. If a recalculation is needed, that's a central_admin + rules console job.

Leadership Programs is the principal-facing cycle. Eduversal also runs three other professional development cycles on the same Cambridge / Indonesian regulatory anchor. They look related from the outside, but each has its own audience + rubric + governance. New users mix them up.

🏛️
Leadership Programs — what this page is about
4 surfaces for the principal cycle. 360° + Coaching + Observations + Annual Appraisal. Anchored on Cambridge School Leader Standards 2023 + Permendiknas regulations. The principal is the focus.
Teacher Appraisal — the per-teacher cycle
3 pages (School Visits · School Appraisals · Teacher Appraisals) running Framework v2.1 — F1 (20%) + F2 (50%) + F3 (20%) + F4 (10%) + F3L. Cambridge Teacher Standards 2023. The teacher (not the principal) is the focus. See Read Me — Appraisal.
📕
Teacher Programs — Induction · Competency · AI Maturity
The professional development workspace for teachers (not leaders). Year-1 onboarding + 4-level CPD ladder + AI maturity self-assessment. NEVER feeds appraisal scoring (NN1 / NN2). See Read Me — Teacher Programs.
📈
KPI Management — school + teacher metrics
Quantitative scorecards (1–5 stars + weights). Per-school configured. Independent of every appraisal rubric. See Read Me — KPI.
Cambridge cross-references run through all of them. Click any CTS X.Y or CSLS X.Y chip in any page (including this one) to see the full Cambridge Standard text in a popover. The chip wiring is shared via cambridge_crossref/index.

Pick the card that matches your role. The page detects your profile and reveals only the relevant card — but you can read the others to understand what your colleagues see.

Every principal-cycle word, defined in one sentence. If a word here still isn't clear, raise it at the next Coordinators meeting.

360° feedback— anonymous multi-cohort survey
A questionnaire answered by 3 cohorts (staff · parents · students). Each cohort needs at least 5 respondents to publish (Charter NN5 — anonymity floor). Aggregated by Cloud Function into a composite F3_360 score per cycle.
Coaching cycle— mentor + principal sessions
A sequence of 5-stage 60-min meetings between an Eduversal Director and a principal across the year. Confidential by Charter NN5. Logged sessions are immutable — corrections happen in the next session's "Look Back" stage.
Observation— formative, not summative
A Foundation Rep's notes from a school visit, coded against the 8-foci E/D/N rubric. Charter NN1: never feeds appraisal scoring. Exists to inform coaching + appraisal context.
Annual Appraisal— the year-end score
The principal's once-a-year scored review by their Foundation Rep. F1–F5 + F_LEAD weighted composite → A–F band. Submitted = immutable at rule level.
8 foci (P1–P8)— observation rubric structure
Eight aspects of principalship from the observation rubric: P1 Vision · P2 Teaching/Learning · P3 Operations · P4 Quality Assurance · P5 Staff Development · P6 Community · P7 Compliance · P8 Personal Conduct. Each coded E (Established) / D (Developing) / N (Not Observed).
F1–F5 + F_LEAD— appraisal weights
The five weighted appraisal foci plus the Lead block. Weights: F1 25% · F2 40% · F3 15% · F4 15% · F5 5% · F_LEAD 10%. Each focus carries scored items (1–4 scale). Composite → A–F band.
Composite F3_360— the one wired link
Weighted average across above-threshold cohorts. Below-threshold cohort weight redistributes to the rest. This is the single number the Cloud Function publishes from 360 responses — and the only formative-to-summative bridge in the cycle.
PNF1–PNF6— appraisal narrative fields
Six free-text narrative fields on each appraisal: Headline Strength · Priority Development · Recommendation (continue / development plan / non-renewal) · Next-Year Goals · Principal's Reflection · Confidential Note. PNF6 is Eduversal-internal only.
Cohort threshold— anonymity floor
A 360° cohort (staff / parent / student) must have at least 5 respondents to enter the aggregate. Below-threshold cohorts stay hidden — that's the design, not a bug. Five voices is where a pattern outweighs an individual's identity.
CSLS— Cambridge School Leader Standards
The 2023 25-item Cambridge School Leader Standards. The principal cycle anchors on these (vs. CTS — Cambridge Teacher Standards — which the teacher cycle anchors on). Click any CSLS chip for the verbatim popover.
Window— 360 cycle period
A defined sub-period within the academic year when a 360° cycle is open for responses. Standard windows: W17 (mid-year, formative) · W38 (year-end, summative, feeds appraisal F3). Other custom windows are allowed.
Charter NN— Non-Negotiable
Five hard-locked rules (NN1–NN5) that govern data flow across cycles. Encoded in firestore.rules — not just UI conventions. New users sometimes ask "can I see coaching notes for the appraisal?" or "can the appraiser read the 360 individual responses?" — no.
Immutable— rule-level
Submitted appraisals + logged coaching sessions cannot be edited via UI by anyone — central_admin included. This is by design (audit). Corrections require a manual rules-console operation, intentionally rare.