Timetable tutorial
Step-by-step guide for the weekly lesson board — bells, lesson demand, hard vs soft constraints, generate and publish, then Views, workload, and cover. Start with Foundation, then demand and constraints. Limit and Soft weight get their own topic so they stop confusing the form. No GHS journals. App links open in a new tab when you sign in.
Foundation
Open the hub, set teaching days, and publish a bell schedule before any lesson can sit on the grid.
Foundation · Start here
Timetable hub
The Timetable hub is the school’s weekly lesson board. It is not attendance, not exams, and not fees. You set the week and bells first, then say how many lessons each class needs, then generate and publish a version teachers can actually follow.
Real scenario
Sunrise Academy opens Timetable before Term 2. The hub says bells are ready, 3 demands still have no teacher, and nothing is published yet. Mrs. Adjei starts at Week & Bell Setup, then Lesson Demand, then Builder.
Worked example (GHS)
Hub · Setup 80% · Demands 12/15 · 0 published · 10-step walkthrough ready
How it works
The hub shows readiness: teaching days, bell schedules, lesson-demand completeness, hard vs soft constraints, draft vs published versions, and pending substitutions. Next-step tiles walk you in order. Each school only sees its own timetable. Nothing here posts a GHS journal.
Key fields — what each one means
Setup readiness
Percent of foundation work done — cycle + default bell + teaching days.
Example: 80% · Weekly cycle saved · Standard Day bells · Mon–Fri
Demand completeness
How many class + subject rows already have a teacher and periods per week.
Example: 12 of 15 demands complete · 3 missing a teacher
Published versions
Live timetables teachers and Views read. Drafts stay hidden until you Publish.
Example: 1 published · 1 working draft · 0 pending substitutions
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetableFoundation · Foundation
Week & Bell Setup
This page draws the empty grid. Teaching days are the columns (Monday to Friday). Bell periods are the rows (Period 1, Break, Period 2). Until a default bell exists, Generate has nowhere to place a lesson.
Read these first
Real scenario
Mrs. Adjei saves Weekly cycle, Mon–Fri, Africa/Accra. She adds Standard Day: Period 1 08:00–08:40, Period 2 08:40–09:20, Break 09:20–09:40, then more teaching slots, and ticks Make default. The hub setup bar jumps up.
Worked example (GHS)
Weekly cycle · Mon–Fri · Standard Day · 8 teaching + 2 breaks · Default
How it works
Save the weekly cycle: name it, pick teaching days, Africa/Accra timezone. Then create a bell schedule (e.g. Standard Day), add periods in order, mark Teaching vs Break / Lunch / Assembly / Devotion, set start and end times, tick Make default, and save. Breaks never receive lessons.
Key fields — what each one means
Teaching days
Days the generator may place lessons. Saturday stays off unless you add it.
Example: Monday · Tuesday · Wednesday · Thursday · Friday
Bell period
One row on the grid: label, type, start time, end time, sequence.
Example: Period 1 · Teaching · 08:00–08:40 · sequence 1
Period type
Teaching can hold a lesson. Break, Lunch, Assembly, Devotion, and Other stay empty.
Example: Break 09:20–09:40 · no Maths can sit here
Default schedule
The bell Views, My Timetable, and Generate use when a version has no override.
Example: Standard Day · Default · Active
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/setupLesson demand
Tell Clasra how many periods each class + subject needs, and who teaches them.
Lesson demand · Lesson demand
Lesson Demand
A demand is a shopping list for the generator: this class needs this many periods of this subject, taught by this teacher. Generate does not invent lessons — it only places the demands you saved.
Read these first
Real scenario
Sunrise adds JHS 2A Mathematics × 5 with Mr Clement, JHS 2A English × 5 with Mrs. Mensah, and Integrated Science × 4 with one double. Completeness hits 100% for JHS 2A. Builder can now generate.
Worked example (GHS)
JHS 2A · Maths · Clement · 5/week · max 2/day · 0 doubles
How it works
Add a row: pick class (JHS 2A), subject (Mathematics), teacher (Mr Clement), periods per week (5), optional double periods (1), max per day (2). Save. Repeat for every class + subject you teach. Completeness % is the share of rows that already have a teacher and a period count. Assign Teachers first if the teacher list looks empty.
Key fields — what each one means
Class + subject + teacher
Who learns what, and who stands in front of the class.
Example: JHS 2A · Mathematics · Clement Danquah
Periods per week
How many teaching slots Generate must place for this row.
Example: 5 periods · one each weekday if the grid allows
Double periods
How many of those slots should sit as a back-to-back pair (useful for practicals).
Example: 1 double · Integrated Science lab block
Max per day
Cap so Maths does not fill an entire Monday for JHS 2A.
Example: Max 2 per day · leftover periods spread later in the week
Placed / remaining
After a version exists, how many of the required slots already sit on that grid.
Example: Placed 4 of 5 · remaining 1 · not over-allocated
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/demandsConstraints
Hard blocks the generator must obey, plus soft preferences — including when Limit and Soft weight actually apply.
Constraints · Constraints
Constraints — hard vs soft
A constraint is a rule the generator must respect. Hard means “never break this.” Soft means “try, but a clash here is only a warning.” Unavailable slots, blocked classes, and rooms are usually Hard. Preferred or avoid slots are usually Soft.
Read these first
Real scenario
Mr Clement has a Monday study-leave. Admin adds Hard · Teacher unavailable slot · Clement Danquah · Monday. Generate never puts his Maths on Monday. Limit 5 and Soft weight 10 still appear on the form — they do not apply to this type. Read the next topic.
Worked example (GHS)
Hard · Teacher unavailable · Clement · Monday · active
How it works
Pick a type, hardness, and a clear label. Then fill only the fields that type needs: teacher + days for Teacher unavailable slot; class for Class blocked slot; room for Room unavailable; subject for avoid / preferred / min day spread. Save. Hard rules remove illegal cells before Generate. Soft rules only change the score.
Key fields — what each one means
Teacher unavailable slot
Those days (or times) must stay empty for that teacher. Hard is the usual choice.
Example: Hard · Mr Clement · Not available Monday
Class blocked slot
That class cannot take a lesson in the blocked day or period.
Example: Hard · JHS 2A · Friday Period 8 · sports
Room unavailable slot
That room cannot host a lesson then (exam hall, painting, hire-out).
Example: Hard · Science Lab · Wednesday afternoon
Subject avoid / preferred (soft)
Nudge Maths off last period, or prefer English in the morning. Never a hard block.
Example: Soft · Mathematics · avoid Friday last period
Hardness
Hard = generator will not place there. Soft = it may, and Validate shows a warning.
Example: Hard share 0% on a teacher-off Monday · that is correct
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/constraintsConstraints · Constraints
Limit and Soft weight
Limit and Soft weight sit on every constraint form, but they only mean something for some types. If you created Hard · Teacher unavailable slot, ignore both numbers. They are leftovers from the form — they do not block Monday and they do not score a penalty.
Read these first
Real scenario
Admin sees ‘Hard constraint share 0% · Teacher unavailable · Mr Clement · Monday · Limit 5 · Soft weight 10’ and thinks Monday is limited to 5. Wrong. Monday is fully blocked. Limit 5 would only matter on a Max periods/day rule. Soft weight 10 would only matter if hardness were Soft.
Worked example (GHS)
Use Limit on Max periods/day = 5 · Use weight on Soft avoid = 10 · Ignore both on Hard unavailable
How it works
Limit is a count the rule compares against: max periods in one day, max consecutive periods, or minimum days a subject should spread across. Soft weight is a penalty (or bonus) added only when hardness is Soft. Hard rules never use the weight. Leave the defaults if the type does not need them.
Key fields — what each one means
When Limit is ignored
Teacher unavailable, class blocked, room unavailable, subject avoid, and subject preferred do not read Limit.
Example: Hard · Clement Monday · Limit 5 on screen · generator ignores 5
When Limit is used
Max periods/day teacher, Max consecutive periods, and Subject min day spread.
Example: Max periods/day · Limit 5 → Clement cannot teach 6 slots on Tuesday
When Soft weight is ignored
Any Hard constraint. Hardness already means ‘never break’.
Example: Hard · Soft weight 10 · no 10-point penalty is added
When Soft weight is used
Soft avoid / preferred slots, soft load caps, and min day spread. Higher = the generator tries harder to obey.
Example: Soft avoid last period · weight 20 · last-period Maths costs more than weight 5
Subject min day spread
Limit here is the minimum number of different days, not a max. Soft by design.
Example: Maths Limit 4 · placed on only 3 days → soft warning · penalty = weight × 1
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/constraintsBuild & publish
Generate a draft, validate clashes, publish, then read class, teacher, room, and master views.
Build & publish · Build & publish
Builder — generate and publish
Builder is the workshop. Create a draft, Generate from demands, click empty cells to place leftover lessons by hand, Validate for clashes, then Submit → Approve → Publish. Only a published version appears in Views and My Timetable.
Read these first
Real scenario
Mrs. Adjei creates Term 2 Weekly, Generates, sees Clement’s Monday empty (unavailable), fills one leftover English cell by hand, Validates (0 hard), Submits, Approves, Publishes. Teachers open Views the same afternoon.
Worked example (GHS)
Draft → Generate → Validate 0 hard → Submit → Approve → Publish
How it works
Create timetable (or Edit as draft to copy a live one). Generate fills Teaching cells from demands and hard constraints. Validate reports hard clashes (teacher / class / room double-booked) and soft warnings. Hard conflicts block Submit and Publish. After Publish, teachers see the grid. To change a live timetable, Edit as draft — never delete the published copy first.
Key fields — what each one means
Create timetable
Starts an empty DRAFT for this session and term.
Example: 2026/2027 · Term 2 Weekly Timetable · DRAFT
Edit as draft
Copies the selected version so the published one stays live while you edit.
Example: Term 2 Weekly · Working Draft
Generate
Auto-places demands onto Teaching bells. May replace existing draft cells.
Example: Generated · 118 placements · 2 unfilled Maths leftovers
Validate
Hard clash = two lessons in one teacher or class cell. Soft = preference miss.
Example: 0 hard · 3 soft · ready to submit
Publish
Makes this version the live school timetable. Incomplete demands warn; hard clashes still block.
Example: Published · Views and My Timetable now read this grid
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/builderBuild & publish · Build & publish
Views — class, teacher, room, master
Views is the printed-board page. Pick the published version, then switch Class, Teacher, Room, or Master. This is how the office and parents read the week. Empty usually means the version is still a draft, or that class has no placements yet.
Read these first
Real scenario
After Publish, Mrs. Adjei opens Views, picks Term 2 published, Class JHS 2A, and prints. She switches to Teacher → Clement and confirms Monday is blank. Master goes on the admin notice board.
Worked example (GHS)
Views · Published Term 2 · Class JHS 2A · Teacher Clement · Master
How it works
Open Views. Confirm the published version is selected. Class Timetable: pick JHS 2A. Teacher: pick Clement. Room: pick Science Lab. Master: the whole school on one sheet. Print or share from the toolbar. Teachers who are not admins mainly see their own teacher grid.
Key fields — what each one means
Class Timetable
One class across the week — what JHS 2A does each period.
Example: JHS 2A · Mon P1 English · Tue P1 Mathematics
Teacher Timetable
One teacher’s load — where Clement is every period.
Example: Clement · Mon empty · Tue P1 JHS 2A Maths
Room
Who occupies a room each slot (lab, hall, classroom).
Example: Science Lab · Wed P3–P4 JHS 2A Integrated Science
Master
School-wide sheet for the office notice board.
Example: Master · all classes · published Term 2
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/viewsLive week
Watch staff workload, cover an absent teacher, and open My Timetable.
Live week · Live week
Staff Workload
Workload counts how many periods each teacher actually received on the selected version, then compares that to their weekly target. Use it after Generate to catch an overloaded Clement or an under-used newly posted teacher.
Read these first
Real scenario
After Publish, Workload shows Mrs. Mensah OVER (28 vs target 24) and Clement UNDER (20 vs 24) because Monday was blocked. Admin moves one English to another teacher in a Working Draft, Validates, and republishes.
Worked example (GHS)
Workload · 18 teachers · 2 OVER · 1 limit breach · 72% on target
How it works
Open Staff Workload on the published (or draft) version. Each row shows planned periods, target, variance, busiest day, longest consecutive run, and limit breaches from Max periods/day or Max consecutive constraints. UNDER / ON_TARGET / OVER are the status badges. Fix overloads back in Builder, then Validate again.
Key fields — what each one means
Planned periods
Count of teaching cells assigned to that teacher on this version.
Example: Clement · 22 planned · target 24 · UNDER by 2
Target periods / week
Contract or school load goal. Missing target shows NO_TARGET, not OVER.
Example: 24 periods · ON_TARGET when planned is 24
Limit breach
A Max periods/day or Max consecutive constraint was broken on at least one day.
Example: Tuesday 6 periods · Limit 5 → breach badge
Consecutive load
Longest run of teaching periods without a break on any day.
Example: 4 consecutive after Break · watch fatigue
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/workloadLive week · Live week
Substitutions — cover today
When a teacher is away today, Substitutions shows which published lessons are orphaned and who is free to cover. This does not rewrite the published weekly grid — it records cover for that date only.
Read these first
Real scenario
Tuesday morning Clement calls in sick. Office opens Substitutions, date today, teacher Clement, runs impact, assigns Mrs. Boateng to JHS 2A Maths P1 and another free teacher to JHS 1B P3. The published weekly grid stays the same for next week.
Worked example (GHS)
8 Sep · Clement absent · 4 impacted · 4 assigned · 0 pending
How it works
Pick the date (today) and the absent teacher. Run impact. Clasra lists affected placements from the published version. Pick a lesson, choose an eligible cover teacher (free that period, not already teaching), and assign. Pending vs assigned counts sit on the hub.
Key fields — what each one means
Impact
Published lessons that teacher was due to take on that date.
Example: Clement absent Tue 8 Sep · 4 lessons affected
Eligible cover
Teachers free in that same period, not already double-booked.
Example: Mrs. Boateng free · P1 Tuesday · assign cover
Pending / assigned
Cover still needed vs cover already given for the week.
Example: 2 pending · 2 assigned · hub badge updates
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/substitutionsLive week · Live week
My Timetable
My Timetable is the teacher’s own published week — the same grid they would pin above their desk. It only fills after someone Publishes a version and that teacher has placements. Drafts never appear here.
Read these first
Real scenario
After Mrs. Adjei publishes Term 2, Mr Clement signs in, opens My Timetable, sees Monday blank and Tuesday Period 1 JHS 2A Mathematics, and prints it. Students still read the Class view on the notice board.
Worked example (GHS)
My Timetable · Published Term 2 · 22 periods · Print ready
How it works
A signed-in teacher opens Timetable → My Timetable. Clasra loads the published teacher view plus a small workload summary. Print from the toolbar before the first week of term. If the grid is empty, the school has not published yet, or this login is not assigned on any demand.
Key fields — what each one means
Personal grid
Only this teacher’s published lessons, on the default bell.
Example: Clement · Tue–Fri Maths · Monday empty (unavailable)
Workload snapshot
Quick planned-period count from the published version.
Example: 22 periods this week · under target by 2
Paper copy for the staff room or teacher’s table.
Example: Print · Term 2 published · Clement Danquah
Open this screen in Clasra
Opens on clasra.com — sign in with your school account (same URL for every school).
/dashboard/timetable/my