Review the school’s academic structure, run your class streams, assign class teachers, and set the rules that turn scores into grades.
Curriculum is the academic spine of the school: the curricula you teach (CBC and 8-4-4), the stages and grades inside each curriculum, the class streams students sit in, the subjects taught, the senior-school pathways for CBC, and the grading scales used on report cards. School leadership uses the Curriculum pages to review the structure, run the classes the school actually opens, and pick the grading rules. Teachers, bursars, registrars, and guardians never edit these records, but they read them everywhere: a student’s grade, stream, and pathway show up on their profile, on their report card, on their invoices, and on the registers a teacher marks each morning.
Curriculum ships pre-built. Each new school starts with both Kenyan curricula (CBC and 8-4-4) and a full set of curriculum stages, grade levels, class streams, subjects, pathways, and grading scales already in place. Most setup is reviewing what is there and adjusting the parts your school actually runs (class streams, class teachers, compulsory subjects, grading scales). Curriculum is a core module and cannot be disabled under Settings.
A curriculum the school runs. Two are pre-seeded: 8-4-4 Education System (Nursery, Primary, High School) and Competency-Based Curriculum (Playgroup through Senior Secondary). Pre-seeded and not editable from the panel.
Curriculum stage
A stage inside a curriculum, such as Lower Primary, Junior Secondary, Primary School, or High School. Pre-seeded for both curricula and not editable from the panel.
Grade level
A single grade or class inside a stage, such as Grade 1, PP1, Class 5, or Form 3. Pre-seeded and not editable from the panel.
Grade stream
A concrete class section inside a grade level, such as Grade 1 A or Form 4 Red. Pre-seeded with the labels picked during onboarding; new streams can be added, and existing streams can be renamed, moved between grade levels, or deleted. Each stream can have one class teacher.
Subject
A teachable subject (for example, Mathematics, English, Biology, Music). The full catalogue is pre-seeded for both curricula. The only field a school can change on a subject is whether it is marked Compulsory.
Pathway
A senior-school subject track for CBC. Three are pre-seeded: STEM, Social Sciences, and Arts & Sports. Subjects and students are attached to a pathway from its page.
Grading scale
A score-to-grade mapping used on report cards. Four are pre-seeded: CBC Rubric Scale, 8-4-4 KCSE Percentage Scale, 8-4-4 12 Point Scale, and 8-4-4 84 Point Scale. Each scale holds Grade bands (for example, 80–100 → A or Exceeds Expectations). Schools can add their own scales and edit grade bands.
Curriculum pages live under Settings in the sidebar. Three navigation groups carry the seven pages:
Academic Structure holds Curriculums, Curriculum Stages, Pathways, and Subjects.
Grade Levels & Streams holds Grade Levels and Grade Streams.
Grading holds Grading Scales (visible only when the Academics module is enabled).
A new school does not need to build any of this from scratch. The pages exist to let you check what is in place and to adjust the parts your school actually runs.
In the sidebar, go to Settings → Curriculums, or open /settings/curriculums. The list shows the two pre-seeded curricula along with a Students count badge so you can see how many learners sit on each.
2
Open Curriculum Stages
Go to Settings → Curriculum Stages, or open /settings/curriculum-stages. The list shows every stage with its parent curriculum, the grade range inside the stage (for example, Grade 1 to Grade 3 for Lower Primary), and the students at that stage. Open a row to see the school-day periods configured for the stage (these power the timetable).
3
Open Grade Levels
Go to Settings → Grade Levels, or open /settings/grade-levels. The list shows every grade level with its stage, the number of streams in that grade, and the number of students.
[Insert screenshot: Curriculum Stages list at /settings/curriculum-stages showing columns Name, Curriculum, Grades, and Students for the pre-seeded CBC and 8-4-4 stages]
This is where most of the day-to-day Curriculum work happens: deciding how many streams to open in each grade, naming them, and assigning a class teacher to each.
Go to Settings → Grade Streams, or open /settings/grade-streams. Click New grade stream in the page header.
2
Pick the curriculum stage and grade level
Pick the Curriculum Stage the stream sits in, then the Grade Level inside that stage.
3
Pick a class teacher (optional)
Use the Class Teacher picker to assign one of the school’s teachers. The picker shows every teacher in the school, searchable by name. Leave it blank if the class teacher has not been decided yet; you can assign one later (see Assign a class teacher).
4
Name the stream and save
Enter the stream’s Name (for example, Grade 1 East or Form 4 Red). The name must be unique across the school. Click Save. The stream becomes available for student admission and lesson scheduling.
[Insert screenshot: New grade stream form at /settings/grade-streams/create showing Curriculum Stage, Grade Level, Class Teacher, and Name fields]You can also add a stream from inside a grade level: open Settings → Grade Levels, open the grade level, and use New on the Grade Streams tab. The form there asks for the stream name and class teacher only; the grade level is set automatically.
Open the stream from Settings → Grade Streams, click Edit, change any of Stream Name, Grade Level, Curriculum Stage, or Class Teacher, and save. Students enrolled in the stream stay enrolled when you rename it or move it to a different grade level.
You will need: the stream to be empty of students. The delete action does not transfer students to another stream; if students are still enrolled, move them to a different stream first (see Users & Identity).
Open the stream from Settings → Grade Streams and click Delete in the header. The stream is soft-deleted and disappears from the active list. Existing attendance records, lessons, and other history written against the stream stay on the records they belong to.
You will need: the teacher’s record to exist. Add teachers under Users & Identity first if they have not been onboarded yet.
A class teacher owns the stream’s daily registers, the stream’s discipline and follow-up flow, and is the staff member named on the stream’s view page. A stream can have at most one class teacher; a teacher can be class teacher for several streams.
1
Open the stream
Open the stream from Settings → Grade Streams.
2
Use Assign Teacher
Click Assign Teacher in the header. Pick the teacher from the Class Teacher picker and confirm. A success notification appears in the panel.
You can also do this from the teacher’s profile: open Teachers, open the teacher, switch to the Class Assignments tab, and use Assign Class to attach a stream.
Open the stream from Settings → Grade Streams. The header action reads Change Teacher when a teacher is already assigned. Click it, pick a different teacher, and save. To unassign without picking a replacement, open the picker, clear the selection, and save. The stream stays in place without a class teacher until you assign one.
The school does not create subjects from scratch. Both curricula come with a full subject catalogue (Mathematics, English, Kiswahili, the sciences, the languages, the senior-school pathway subjects, and so on). The only choice a school makes on a subject is whether it is marked Compulsory.
Go to Settings → Subjects, or open /settings/subjects. Filter by Curriculum to narrow the list, or tick Compulsory only to see what is currently flagged.
2
Edit the subject
Click Edit on the row. The subject’s Code and Name are read-only because the catalogue is shared across schools; only the Compulsory toggle is editable.
3
Toggle Compulsory and save
Switch the Compulsory toggle on or off and save. Compulsory subjects are the ones every student in the curriculum is expected to take.
You will need: the pathway you want to add the subject to. Three CBC pathways ship pre-seeded (STEM, Social Sciences, Arts & Sports), and so does the senior-school subject catalogue. There is no setup before this step.
Pathway membership decides which subjects a senior-school student can pick. The pre-seeded subjects already cover each of the three pathways; this workflow is for the cases where your school offers a subject the seed did not place.
1
Open the pathway
Go to Settings → Pathways, or open /settings/pathways. Open the pathway you want to edit. The view page shows the pathway, its curriculum (always the Competency-Based Curriculum), and tabs for Subjects and Students.
2
Attach a subject
On the Subjects tab, click Attach in the header. Pick the subject from the list and save. The subject is now selectable for students placed in this pathway.
Open the pathway from Settings → Pathways and switch to the Subjects tab. On the subject’s row, click Detach and confirm. The subject record itself stays in the catalogue; it just stops appearing in this pathway’s subject options.
You will need: the student to be enrolled in the Competency-Based Curriculum. Pathways do not apply to 8-4-4. If the student is on 8-4-4, no Pathways field appears on the form.
CBC senior-school students pick a pathway (STEM, Social Sciences, or Arts & Sports) and the subjects inside it. Pathway placement is captured on the student’s own profile.
1
Open the student
Go to Students and open the student. Click Edit.
2
Set the pathway in Academic Context
Scroll to the Academic Context section. Tick the box for one (or more) of STEM, Social Sciences, or Arts & Sports in the Pathways list. The Subjects list refreshes to show only subjects attached to the chosen pathway, so the student can pick the subjects they will take.
3
Save
Save. The student now shows on the pathway’s Students tab and on the subject’s roster for each subject they were enrolled in.
You can also attach a student from the pathway side: open Settings → Pathways, open the pathway, switch to the Students tab, and use Attach to add the student. Either path produces the same link.
Open the pathway, switch to the Students tab, and use Detach on the student’s row, or open the student, click Edit, and clear the pathway tick box in Academic Context. The student stays enrolled and stays on the stream and grade level; only the pathway link is removed.
A grading scale turns raw scores into the codes that appear on a report card. CBC Rubric Scale uses descriptor codes (E.E Exceeds Expectations, M.E Meets Expectations, A.E Approaching Expectations, B.E Below Expectations). The 8-4-4 KCSE Percentage Scale uses letter grades from A down to E. The two 8-4-4 point scales (12 Point and 84 Point) are alternates for schools that grade in points rather than percentages.
You will need: the grading scale the band belongs to. Bands hang off a scale and cannot exist on their own. Add the scale first (see above) if it does not exist.
A grade band is one row in the score-to-grade mapping: a Code (the badge that prints, such as A or E.E), a Name (the label, such as Grade A or Exceeds Expectations), a Min Points, and a Max Points. Bands should cover the full range without overlap.
1
Open the grading scale
From Settings → Grading Scales, open the scale. The view page opens on the Grade Bands tab.
2
Click Add Grade Band
Click Add Grade Band in the tab’s header.
3
Enter the band's code, name, and range
Enter the Code (up to 10 characters; for example, A or E.E), the Name (for example, Grade A or Exceeds Expectations), the Min Points for the band, and the Max Points. The band covers any score from min to max, inclusive.
4
Save
Save. The band appears on the list, sorted by minimum points. Repeat for every grade the scale should produce.
[Insert screenshot: Grading Scale view page at /settings/grading-scales/ showing the scale name and curriculum header, the Grade Bands tab with columns Code, Name, Min, Max, and the Add Grade Band header action]
On the scale’s Grade Bands tab, use Edit on a row to change a band’s code, name, or score range, or Delete to remove it. Changes take effect the next time a report card is generated; existing report cards keep the labels they were generated with.
Open the scale from Settings → Grading Scales and use Edit to rename it or move it to a different curriculum, or Delete to remove it. Deleting a scale that is no longer attached to any assessment is safe; deleting one that is still in use will leave those assessments without a scale, so check the assessment list under Assessments before deleting.
A few user-visible relationships are worth keeping in mind:
The structure is a tree: every grade stream sits inside a grade level, every grade level sits inside a curriculum stage, every stage sits inside a curriculum. A student carries all four labels on their profile.
A grade stream has at most one class teacher; a teacher can be class teacher for several streams. Teachers see students whose stream they own and students enrolled in the subjects they teach.
Subjects are shared across both curricula by code and name where the subject is the same (Mathematics, English, Biology, French, and so on); curriculum-specific subjects (for example, the CBC senior-school pathway subjects) live only under their curriculum. Marking a subject Compulsory applies in every curriculum the subject is attached to.
Pathways are a CBC-only concept. A student on 8-4-4 has no pathway. A CBC senior-school student can be placed in one or more pathways; the subjects available to them are the union of those pathways’ subjects.
A grading scale belongs to one curriculum and carries its own grade bands. Assessments and report cards pick which scale they use; see Assessments.
Most curriculum data is read on-screen rather than downloaded. The one printable report on these pages is the class timetable, which lives on the Grade Streams page because it is scoped to a single stream.
Report
Where
Filters
Output
Class Timetable
Class Timetable header action on Settings → Grade Streams, or Download Timetable on a single stream’s view page
Class (required from the list page), Timetable period (required)
Landscape PDF showing the chosen stream’s lessons across the timetable period, with periods on the left and weekdays across the top
The Download Timetable action appears on a stream’s view page only when the Timetable module is enabled. From the list page, the Class Timetable action is available whenever you have permission to read grade streams.
Guardians do not see the Settings cluster at all. The Curriculums, Curriculum Stages, Grade Levels, Grade Streams, Subjects, Pathways, and Grading Scales pages are hidden from the Guardian role and the sidebar does not show the Settings group for guardian logins.Curriculum information still reaches guardians indirectly: it appears as plain labels on their child’s profile (curriculum, stage, grade level, stream, subjects, and pathway), on each report card, on registers the guardian reads, and on invoices that use per-stage pricing. Guardians cannot change any of these values.
Why can I not create a new curriculum, stage, or grade level?
The two curricula (CBC and 8-4-4), their stages, and the grade levels inside each stage ship pre-seeded because the system uses them to drive every other module: students, lessons, assessments, registers, and invoicing all key off these records. To prevent that wiring from breaking, the panel does not expose Create or Delete actions for curricula, stages, or grade levels. You can rename grade levels, and you can add, edit, and remove grade streams. If your school runs a structure that the seeded set does not match, contact support.
What is the difference between a grade level and a stream?
A grade level is the academic level (for example, Grade 1, Form 3). A stream is a specific class of students at that level (for example, Grade 1 A, Form 3 Red). A grade level can hold many streams, and each student is enrolled in exactly one stream. Class teachers are assigned to streams, not to grade levels.
Why are the Code and Name fields on a subject read-only?
The subject catalogue is shared across both Kenyan curricula and across every school running on Elimu Bora, so the Code and Name of a subject are not editable from the panel. The only field a school can change is the Compulsory toggle, which decides whether the subject is mandatory for students in the curriculum. If a subject you need is missing entirely, contact support.
Why can I not see a subject on the assessment list?
Two usual causes. First, the subject may not be attached to the curriculum the student is on: open Settings → Subjects, filter by the curriculum, and confirm the subject is listed. Second, for CBC senior-school students, a subject only appears on a student’s assessment list when the subject is attached to one of the student’s pathways: open the pathway under Settings → Pathways and confirm the subject is on its Subjects tab; if not, attach it (see Add a subject to a pathway).
A new student is missing from a teacher's class list. What now?
Teachers see students by stream and by subject. Open the student under Students, click Edit, and check the Grade Stream and Subjects in the Academic Context section. If the stream is not the one the teacher owns, change it. If a subject is missing, tick it on the student form. Both changes take effect immediately.
Can I move a stream to a different grade level?
Yes. Open the stream from Settings → Grade Streams, click Edit, and change Grade Level (and Curriculum Stage if needed). Students enrolled in the stream stay enrolled, so the move is rare in practice; it is typically used to correct a stream that was created in the wrong grade level.
Can a guardian see the curriculum settings?
No. The Guardian role has no permission to read any of the Settings pages, so guardians never see the Curriculums, Stages, Grade Levels, Streams, Subjects, Pathways, or Grading Scales lists. They see curriculum data only as labels on their child’s profile and on the records (report cards, registers, invoices) that mention it.