School objectives
An objective is a single line item a student must complete before they're considered done with the school. For a Foundations course, objectives might be "Attend session 1", "Complete homework week 2", "Pass final assessment". For a leadership track, "Shadow a small-group leader for 3 weeks", "Submit testimony", "Pass interview". The objectives list is the curriculum that defines what "graduating" actually means.
Adding objectives to a school
Open Schools → [School] → Objectives. The list starts empty for a brand-new school. Click Add objective to start.

Each objective takes:
| Field | Notes |
|---|---|
| Title | The line item — e.g. "Attend session 1: Who is Jesus?" |
| Order | Numeric position; reorder by drag |
| Required for graduation | If checked, the student can't be graduated until this is marked complete |
| Notes | Optional — additional context, expectations, due timing |
Save and the objective appears on every student's enrolment view.
Reordering and renaming
Drag objectives by their handle to reorder. Reordering only affects display — it doesn't reset anyone's completion. Renaming an objective rewrites the title on every existing enrolment row that references it; the completion status for each student stays the same.
Per-student completion
Open any student's enrolment row and you'll see the objectives list with a checkbox next to each:

Check an item and it's marked complete with your user ID and a timestamp. Uncheck and it's reverted (the row stays for audit purposes but the completion is nulled out). Each completion writes to student_objective_completions:
| Column | Value |
|---|---|
enrolment_id | The enrolment row |
objective_id | The objective |
completed_at | Timestamp |
completed_by | Who marked it |
grade | Optional letter or numeric grade |
notes | Optional per-completion notes |
Optional grading
If your school awards grades, turn on Settings → Grading per school and pick a scheme (letter, percentage, pass/fail). When grading is on, checking an objective opens a small dialog where you enter the grade. The grade shows on the student's transcript and is averaged for the cohort report.
Required vs optional objectives
The Required for graduation flag lets you build a curriculum with some "graded" items and some "encouraged" items. A student missing an optional objective can still graduate; missing a required one blocks graduation.
When you try to record a graduation for a student with unchecked required objectives, the confirmation dialog lists them and forces you to acknowledge before proceeding. You can override with a note ("graduated by petition") — the override is logged.
Don't make every objective required
A common mistake is marking 15 of 15 objectives as required, then having to constantly override. Better: mark the 4-5 truly load-bearing objectives as required (final assessment, attended X of Y sessions, submitted testimony) and let the rest be "encouraged".
Bulk-checking objectives
For session-by-session schools where everyone attending session N gets that objective checked, use Schools → [School] → Bulk update objectives. Filter to attendees, pick the objective, and check it across the whole list at once. The action shows up in the bulk-actions monitoring page.
Workflows
You can trigger a workflow on objective completion — for instance, send a "You've completed week 3! Here's the homework for week 4" WhatsApp message. See Workflows → Triggers.
Permissions
Adding, editing, or reordering objectives requires schools.write. Marking student completions requires schools.write_completions — which is normally granted to school leaders specifically rather than every Administrator, so that classroom volunteers can mark attendance without being able to restructure the curriculum.
Next steps
- Recording a graduation — what happens when a student completes the required objectives.
- Reports — completion rate, time-to-completion, transcript per student.
- Workflows — automate follow-up when objectives are completed.
- Bulk actions → Monitoring — for session-wide bulk completion updates.
