[{"data":1,"prerenderedAt":1915},["ShallowReactive",2],{"blog-tag-staff":3},[4,183,298,435,574,794,964,1097,1322,1490,1609,1724,1822],{"id":5,"title":6,"author":7,"body":8,"category":167,"date":168,"description":169,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":173,"navigation":174,"ogImage":172,"path":175,"seo":176,"stem":177,"tags":178,"updated":172,"__hash__":182},"blog\u002Fblog\u002Fexams-workspace.md","Nobody should draw an exam timetable in pencil","team",{"type":9,"value":10,"toc":158},"minimark",[11,15,18,23,26],[12,13,14],"p",{},"The exam timetable is drawn on paper, in pencil, by one person, in a week that nobody else wants.",[12,16,17],{},"Then a teacher goes on leave, one paper moves to the Thursday, and the whole grid needs checking\nagain by eye. Usually it is not checked, because checking it means reading forty rows against each\nother twice. So a class sits two papers at once in the third week, and everybody finds out in the\nhall.",[19,20,22],"h2",{"id":21},"a-series-checked-before-it-goes-out","A series, checked before it goes out",[12,24,25],{},"An exam series in 1410SMS is a set of sittings: a class, a subject, a date, a time, a room, an\ninvigilator. Building one is ordinary data entry. What makes it worth having is what happens next.",[27,28,33,40,46],"screenshot",{"alt":29,"height":30,"src":31,"width":32},"The Exams page with four tabs across the top, Exam Series, Builder, Reports and Settings, with Builder selected. To the right of the tabs an exam picker reads First Term Examination 2026\u002F2027, followed by a draft badge and the label Terminal Examination. Below, the series heading gives its term, session and dates beside a Publish and notify button; then a panel headed Worth checking before you publish, listing three amber Check findings and reading 0 to fix, 3 to consider; then the Generate the timetable panel, open at step one of four, Who is sitting.",1416,"\u002Fdocs\u002Fexams-workspace\u002Fworkspace.png",1832,[12,34,35,39],{},[36,37,38],"strong",{},"One action checks the whole series."," It reports every clash it can find, including the two that\nmatter most: the same class sitting two papers at once, and the same invigilator in two halls at\nonce. Clash detection runs on the weekly timetable engine's own logic rather than a second\nimplementation of it, so the two cannot drift apart and start disagreeing about what a conflict is.",[12,41,42,45],{},[36,43,44],{},"Publishing runs the same check and refuses on errors",", with the findings on the response rather\nthan a shrug and a support ticket. You cannot publish a broken series by accident.",[27,47,51,55,58,70,74,77,84,88,91,98],{"alt":48,"height":49,"src":50,"width":32},"A panel headed 'This timetable cannot be published yet' at the top of an exam page for First Term Examination, First Term 2026\u002F2027, dated 22 to 24 July 2026. It lists eleven findings, with '1 to fix, 10 to consider' on the right. The first carries a red Fix badge and reads that JSS 1A's Computer Science paper is on 2026-07-24, a day the school calendar says it is closed. Below it, amber Check badges list seven subjects JSS 1A takes that have no paper in the exam, and three papers with no invigilator.",936,"\u002Fdocs\u002Fexam-validation\u002Ffindings.png",[19,52,54],{"id":53},"publishing-is-its-own-permission","Publishing is its own permission",[12,56,57],{},"Building a draft and telling four hundred families are not the same act, so they are not the same\npermission. A member of staff can be given the series to build and not the button that sends it.",[12,59,60,61,64,65,69],{},"This pairs with the rule that makes drafts usable at all: ",[36,62,63],{},"a draft announces nothing."," Move papers\naround in a draft as much as you like and the world stays quiet. Move or drop a paper ",[66,67,68],"em",{},"after","\npublication and that class's families are told, because they have already written the old date in a\ndiary.",[19,71,73],{"id":72},"several-papers-move-together","Several papers move together",[12,75,76],{},"A cascade is the normal case. The Chemistry paper moves, so the Physics paper has to move to make\nroom, so the room booking changes.",[12,78,79,80,83],{},"Moving them one at a time through a clash checker means passing through arrangements that are not\nvalid and being told so at each step, which teaches you to ignore the checker. So a bulk move takes\nthe whole proposal and checks it against the series ",[36,81,82],{},"as it would be",", not as it is.",[19,85,87],{"id":86},"a-whole-series-can-be-generated","A whole series can be generated",[12,89,90],{},"If you would rather not place forty papers by hand, the workspace will do it, using the same\nconstruction core the weekly timetable generator uses.",[12,92,93,94,97],{},"You describe the shape you want, under ",[36,95,96],{},"Settings → Examinations",", rather than tuning six numeric\nweights: balanced, spread out, finished quickly, or mornings first. That distinction is most of the\nreason the feature is usable, because a scheduler that asks a bursar to balance six weights is a\nscheduler that gets used once. The weights are still there, behind a Custom option, for the school\nin fifty that wants them.",[27,99,104,108,111,114,118,134,137,141,144,151,155],{"alt":100,"height":101,"src":102,"width":103},"Step three of the generation wizard, What is in the way, with the four steps shown as pills reading Who is sitting, Which days, What is in the way and How to weigh it. Under a line saying what the engine needs in place, checked against this exam and the classes named above, a Re-check button sits on the right. The verdict reads Ready, with 1 thing worth knowing, above an amber note that JSS 1B has no pupils on its roll so no room can be checked against its size, and Back and Next buttons below.",542,"\u002Fdocs\u002Fexam-timetable-generation\u002Fgenerate.png",1754,[19,105,107],{"id":106},"a-paper-can-be-the-online-test-that-is-that-paper","A paper can be the online test that is that paper",[12,109,110],{},"If a subject is examined on the computer-based testing module, the sitting can be linked to that\ntest. The sitting then owns the test's window and its class list, so there is one thing to keep\ncorrect rather than two that must be kept in step.",[12,112,113],{},"On the phone that paper carries an \"Online\" tag, ahead of the room, which is still shown beside it.",[19,115,117],{"id":116},"four-documents-all-of-them-printable-from-a-phone","Four documents, all of them printable from a phone",[119,120,121,125,128,131],"ul",{},[122,123,124],"li",{},"A class's papers, for the noticeboard and the parents.",[122,126,127],{},"An invigilator's list, so they know their duties.",[122,129,130],{},"A room's day, for whoever is running that hall.",[122,132,133],{},"The attendance roster a paper is registered on.",[12,135,136],{},"All four print from the mobile app as well as the web, which is not a box-ticking exercise. An\ninvigilator wants their roster on the way into the hall, not at a desk twenty minutes earlier, and\nthat is the whole reason it is on a phone.",[19,138,140],{"id":139},"one-naming-decision","One naming decision",[12,142,143],{},"Internally the object is a \"diet\", which is what examination boards call a round of exams.",[12,145,146,147,150],{},"Every screen a school reads calls it an ",[36,148,149],{},"exam series",", because \"diet\" is a word that costs a bursar\nthirty seconds and teaches them nothing. The technical term survives in our code and nowhere a\ncustomer looks.",[19,152,154],{"id":153},"what-stayed-on-the-web","What stayed on the web",[12,156,157],{},"Generation, the module's settings, linking a CBT test, and cloning a series or building it a class at\na time are web-only, deliberately. They are the parts done sitting down, once, with a spreadsheet\nopen. Everything done standing up, in a corridor, in the week of the exams, is on the phone.",{"title":159,"searchDepth":160,"depth":160,"links":161},"",3,[162,164,165,166],{"id":21,"depth":163,"text":22},2,{"id":53,"depth":163,"text":54},{"id":72,"depth":163,"text":73},{"id":86,"depth":163,"text":87},"Operations","2026-08-16","One person draws the exam grid, one paper moves, and the whole thing needs checking again by eye. Usually it is not. Here is the workspace that replaced the pencil.",false,"md",null,{},true,"\u002Fblog\u002Fexams-workspace",{"title":6,"description":169},"blog\u002Fexams-workspace",[179,180,181],"exams","timetable","product","jFxF93HEcP_aRPykpnno8RN7mJtKB84r5Q-_-kMGy9o",{"id":184,"title":185,"author":7,"body":186,"category":288,"date":168,"description":289,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":290,"navigation":174,"ogImage":172,"path":291,"seo":292,"stem":293,"tags":294,"updated":172,"__hash__":297},"blog\u002Fblog\u002Fright-to-left-text.md","The bug that printed confident nonsense",{"type":9,"value":187,"toc":281},[188,191,194,198,201,204,207,211,214,220,226,232,235,239,242,245,253,257,262,265,269,272],[12,189,190],{},"A school sent us a report card and asked why the Arabic subject names came out as nonsense.",[12,192,193],{},"They were not nonsense. They were confident, well-spaced, correctly-kerned Latin letters, printed\nneatly in the place where Arabic should have been. That distinction is the whole story, because it is\nwhat made the problem hard to see from our end. It did not look like a rendering failure. It looked\nlike a school that had typed something wrong.",[19,195,197],{"id":196},"why-a-pdf-does-this","Why a PDF does this",[12,199,200],{},"The fonts built into the PDF standard are WinAnsi-encoded. They cover Latin and not much else.",[12,202,203],{},"Hand one of them Arabic and it does not draw a box, and it does not refuse. It takes each byte, maps\nit to whatever Latin glyph sits at that position in its own encoding, and draws that, at full\nquality. The output is a finished-looking document that nobody at the school can read.",[12,205,206],{},"A missing-glyph box would have been a better outcome. A row of boxes is obviously broken and gets\nreported on the first day. Plausible-looking Latin gets filed, and the school assumes the fault is\ntheirs.",[19,208,210],{"id":209},"three-separate-problems","Three separate problems",[12,212,213],{},"Getting Arabic onto the page needs three things, and skipping any one of them still produces a wrong\ndocument rather than an obviously broken one.",[12,215,216,219],{},[36,217,218],{},"A font that has the glyphs."," Without an embedded face that actually contains Arabic, you are back\nto the Latin substitution above.",[12,221,222,225],{},[36,223,224],{},"Shaping."," Arabic letters change form depending on what sits either side of them: initial, medial,\nfinal, isolated. Draw the isolated forms in sequence and you get disconnected letters. A reader can\ndecode it, in the way you can decode a word with the letters spaced out, and nobody would accept it\non a document their child brings home.",[12,227,228,231],{},[36,229,230],{},"Bidirectional ordering."," The shaper does not do this, which is the part most often missed. A line\nthat mixes Arabic with a pupil's Latin name or a numeric mark has to have its runs put in the right\norder first, and then the glyphs inside each run ordered by the shaper. Get it wrong and the mark\nends up on the wrong side of the subject it belongs to.",[12,233,234],{},"So the order is: work out the run order, then let the shaper order what is inside each run.",[19,236,238],{"id":237},"where-we-put-the-fix","Where we put the fix",[12,240,241],{},"At the single point where the platform creates a PDF document, not in each renderer.",[12,243,244],{},"A renderer that has to opt in to correct text is a renderer somebody eventually forgets, and the one\nthey forget is the certificate. Patching the one place a document is created means every PDF that\nlibrary draws got this at once: invoices, receipts, the family's own copies of both, the exam\ntimetable and our own subscription receipt.",[12,246,247,248,252],{},"Four of our documents render through headless Chromium rather than the PDF library, and they needed\nthe other half of the same problem solved: an inlined Arabic face, and ",[249,250,251],"code",{},"unicode-bidi: plaintext"," on\nthe elements that hold a school's own words. Those are the ones whose direction we cannot know in\nadvance, because they are whatever the school typed.",[19,254,256],{"id":255},"the-bar-for-shipping-it","The bar for shipping it",[12,258,259],{},[36,260,261],{},"A school with no Arabic gets byte-identical documents to the ones it got before.",[12,263,264],{},"That was the condition. A change to the text engine underneath every document the platform produces\nis exactly the sort of thing that shifts a margin by a point, re-wraps a line on someone's invoice,\nand turns into a fortnight of reports from schools who have nothing to do with Arabic.",[19,266,268],{"id":267},"if-your-school-teaches-arabic","If your school teaches Arabic",[12,270,271],{},"Nothing to switch on. Type Arabic into subject names, teacher remarks, class names or the head\nteacher's comment and it prints properly, mixed with Latin and with numbers on the same line.",[27,273,278],{"alt":274,"height":275,"src":276,"width":277},"A rendered report card PDF for Fatima Abdullahi of JSS 1A, First Term 2026\u002F2027. Four of her six subjects are named in Arabic and two in English, and the Arabic names sit right-aligned in the same column as Computer Science and English Language, each row carrying the same total, grade and remark. Both remark panels below are written in Arabic and set right to left: the teacher's runs across two lines and contains the numeral 91 and the Latin words Computer Science inside the Arabic sentence, each placed in reading order rather than at the end of the line.",2339,"\u002Fblog\u002Fright-to-left-text\u002Freport-card.png",1656,[12,279,280],{},"It pairs with the Hijri calendar option, which lets a school read and enter dates in the Umm al-Qura\ncalendar, the Gregorian one, or both, without changing a single stored date. Both are the same idea:\na school should be able to run in the language and the calendar it actually uses, and neither should\nrequire a separate version of the product.",{"title":159,"searchDepth":160,"depth":160,"links":282},[283,284,285,286,287],{"id":196,"depth":163,"text":197},{"id":209,"depth":163,"text":210},{"id":237,"depth":163,"text":238},{"id":255,"depth":163,"text":256},{"id":267,"depth":163,"text":268},"Guides","A school asked why the Arabic on its report cards was gibberish. It was not gibberish, and that is what made it hard to spot. What it takes to print Arabic properly in a PDF.",{},"\u002Fblog\u002Fright-to-left-text",{"title":185,"description":289},"blog\u002Fright-to-left-text",[295,296,181],"report-cards","internationalisation","hhNFq4YguQCpT35AUSKtoYrKGXURJ6UNf3aOCq1DCXY",{"id":299,"title":300,"author":7,"body":301,"category":167,"date":168,"description":426,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":427,"navigation":174,"ogImage":172,"path":428,"seo":429,"stem":430,"tags":431,"updated":172,"__hash__":434},"blog\u002Fblog\u002Fstaff-attendance.md","Your school knows who was in class. Does it know who was teaching?",{"type":9,"value":302,"toc":417},[303,306,309,312,315],[12,304,305],{},"Most schools know exactly who was in class yesterday, and only roughly who was teaching.",[12,307,308],{},"The pupils' register is taken every morning by a teacher who has to be there anyway, and it is filed\nin a system. Staff attendance is a hardback book on the front desk, signed on the way past, with a\ntime column filled in from memory and a month that gets added up only when somebody asks.",[12,310,311],{},"Nobody chose that. It is just what is left when one register has a natural moment and the other does\nnot.",[12,313,314],{},"1410SMS now records staff attendance the way it records everybody else's. Most of the design is in\nwhat it refuses to do.",[27,316,320,324,327,330,333,337,340,343,346,350,353,360,363,366,370,373,376,380,383,386,389,393,396,399],{"alt":317,"height":318,"src":319,"width":32},"The staff attendance board for a school day: counts of clocked in, late, not in yet and absent across the top, then a table of every staff member with their status, first clock-in time, whether they are on site, hours worked so far, and anything needing checking",1456,"\u002Fdocs\u002Fstaff-attendance\u002Fboard.png",[19,321,323],{"id":322},"it-is-a-punch-log-and-nothing-about-a-day-is-stored","It is a punch log, and nothing about a day is stored",[12,325,326],{},"Staff clock in and clock out. Those are appended, and nothing else is written.",[12,328,329],{},"Whether a day counts as present, late, absent or closed is worked out when somebody reads it, from\nthe punches and the school's own settings. Nothing stores the verdict.",[12,331,332],{},"The reason is drift. Store \"3 September: present\" and you have created a record that can disagree\nwith the punches it came from, and then somebody has to decide which one is right. Derive it and\nthere is one answer, and correcting a punch corrects everything downstream of it in the same moment.",[19,334,336],{"id":335},"absence-is-derived-and-never-entered","Absence is derived and never entered",[12,338,339],{},"A staff absence is no clock-in, on a working day, that nobody was excused from.",[12,341,342],{},"There is no absent button, so nobody marks a colleague absent and, more to the point, nobody forgets\nto. The board, the timesheet, the absence report and the morning reminder all ask the same question\nof the same data, so no two of them can disagree about who was in.",[12,344,345],{},"Each school's own digest goes out at its own 07:00, off an hourly tick, rather than at one time that\nis the morning in Lagos and the middle of the night somewhere else.",[19,347,349],{"id":348},"verification-is-configuration-and-a-check-with-no-implementation-fails","Verification is configuration, and a check with no implementation fails",[12,351,352],{},"Schools do not agree on what proves somebody arrived. Some want a photograph, some a location, some\na shared device on the desk, and some are perfectly happy with a tap.",[12,354,355,356,359],{},"So the verification chain is per-school. With one rule: ",[36,357,358],{},"a required check that has no\nimplementation fails rather than passes."," A security control that quietly degrades into a green\ntick is worse than not having one, because the school believes it is switched on.",[12,361,362],{},"Five preconditions cannot be switched off by anybody: three of them can refuse a punch (a location\nreading too vague to prove anything, a faked location, a second tap moments after the first) and two\nonly record what they found (whether the school was down as closed that day, and how far the\nhandset's own clock was from ours).",[12,364,365],{},"Alongside them, one phone is bound to one member of staff per school, which closes buddy-punching\nwithout a fingerprint reader, a turnstile or anybody's face. Per school rather than outright,\ndeliberately: somebody teaching at two schools carries one handset, and the second school has no\nbusiness being told the first has it.",[19,367,369],{"id":368},"no-background-location-and-the-reminder-says-only-what-a-clock-knows","No background location, and the reminder says only what a clock knows",[12,371,372],{},"The mobile app does not use background location. Not as a setting, not as an option a school can\nturn on. It is forbidden in the client and a test enforces it.",[12,374,375],{},"The morning reminder is therefore a clock, and the wording is a clock's: it is ten past eight and you\nhave not clocked in yet. It does not say \"you appear to be at school\", because it does not know that\nand will not imply it. A staff attendance feature that tracks where teachers are on a Saturday is a\ndifferent product, and not one we want to sell.",[19,377,379],{"id":378},"the-one-we-got-wrong-first","The one we got wrong first",[12,381,382],{},"A recorded school closure used to refuse a staff punch. It reads as obviously correct: the school is\nshut, so nobody is clocking in.",[12,384,385],{},"It is wrong, and a school found out for us. Staff work when the pupils are away. Marking, planning,\nadmissions, the fortnight before a term resumes. A school that had dated its terms honestly found\nitself locked out of its own timesheet for the whole of the long vacation.",[12,387,388],{},"A closure now records the punch and still derives the day as closed. The minutes count, so the\ntimesheet is right. The day-present does not, because the denominator for punctuality is the days the\nschool was actually open.",[19,390,392],{"id":391},"leave-deliberately-unfinished","Leave, deliberately unfinished",[12,394,395],{},"Leave is two inclusive dates and a kind the school defines. There is no approval workflow.",[12,397,398],{},"Approvals, shift patterns and payroll belong to a workforce module, and half of one embedded in\nattendance would have to be unpicked later. What matters is that the deferral is safe: the timesheet\nexport already carries every segment's exact in and out timestamps, so any rounding or approval policy\ncan be computed from data that exists today rather than needing a year of history nobody kept.",[27,400,404,408,411,414],{"alt":401,"height":402,"src":403,"width":32},"The Staff leave panel, headed with a line saying recorded leave silences the absence digest and is reported apart from absence on the timesheet, and buttons for Kinds and Record leave. Three records are listed: Chidi Okafor, Training, 17 to 19 August 2026, 3 days, curriculum workshop in Abuja; Emeka Johnson, Official duty, 12 August 2026, 1 day, WAEC marking centre; and Amina Yusuf, Medical, 10 to 14 August 2026, 5 days, surgery recovery. Training and Official duty carry a green badge and Medical a grey one.",606,"\u002Fdocs\u002Fstaff-leave\u002Fleave.png",[19,405,407],{"id":406},"what-it-looks-like-day-to-day","What it looks like day to day",[12,409,410],{},"The web has a six-tab attendance workspace covering pupils and staff together, and any one of six\npermissions opens it, with each tab gating itself. So a class teacher with the register permission\ngets the register, and an HR officer with only the staff keys still reaches the page rather than\nbeing turned away at the door.",[12,412,413],{},"The phone carries both halves: a member of staff clocks in from it, and an administrator gets the\nboard, the timesheet and the leave list, built from the permissions they actually hold.",[12,415,416],{},"The four time settings ship with ordinary defaults, and clearing a box is a real answer rather than an\nempty one. It means \"follow the working hours I have already given you\", which is the fallback for a\nschool whose day is not the usual one.",{"title":159,"searchDepth":160,"depth":160,"links":418},[419,420,421,422,423,424,425],{"id":322,"depth":163,"text":323},{"id":335,"depth":163,"text":336},{"id":348,"depth":163,"text":349},{"id":368,"depth":163,"text":369},{"id":378,"depth":163,"text":379},{"id":391,"depth":163,"text":392},{"id":406,"depth":163,"text":407},"The pupils' register is taken every morning. Staff attendance is a signing book on the front desk. Here is how we built the second one, and the four things we deliberately refused to do.",{},"\u002Fblog\u002Fstaff-attendance",{"title":300,"description":426},"blog\u002Fstaff-attendance",[432,433,181],"attendance","staff","P7wNggfK4sbL-qoOrUGIVRv-vHMyK27k702JvZ1B-s0",{"id":436,"title":437,"author":7,"body":438,"category":288,"date":168,"description":566,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":567,"navigation":174,"ogImage":172,"path":568,"seo":569,"stem":570,"tags":571,"updated":172,"__hash__":573},"blog\u002Fblog\u002Fweekly-grades.md","The term report is too late to be useful",{"type":9,"value":439,"toc":554},[440,443,446,449,453,456,459],[12,441,442],{},"A parent asks how their child is doing. For most of the term, the school's honest answer is that\nthey will find out in December.",[12,444,445],{},"That is not a school being evasive. It is the shape of the term report. Marks are collected across\nthree months and published once, at the end, when the term is over and nothing about it can be\nchanged. By the time a parent reads that their son stopped keeping up in Maths, the weeks in which\nsomebody could have sat down with him have already gone.",[12,447,448],{},"Schools know this, which is why so many run something alongside it: a book that goes home on Fridays,\na WhatsApp group, a \"continuous assessment\" sheet that never quite becomes anything. Weekly grades\nare that habit, built properly.",[19,450,452],{"id":451},"what-it-is","What it is",[12,454,455],{},"A mark per pupil, per subject, per academic week. Recorded as the week goes, published to families a\nweek at a time, and optionally carried onto the term report card so the weekly record is not a\nparallel system that ends in a drawer.",[12,457,458],{},"A teacher opens the week, sees their class down the page and the subjects across it, and fills in\nwhat they have. A head teacher publishes the week when it is done. Families see the week, and the\nterm so far as a mark book, subjects down and weeks across.",[27,460,464,468,473,476,483,486,490,493,496,499],{"alt":461,"height":462,"src":463,"width":32},"The Weekly marks tab of the Grades workspace, showing week 7 of First Term for JSS 1A Biology: a column of marks out of 10 down the class register, with one pupil's box left empty and another's recorded as a nought",1698,"\u002Fdocs\u002Fweekly-grades\u002Fweekly-marks.png",[19,465,467],{"id":466},"the-four-decisions-that-took-longer-than-the-code","The four decisions that took longer than the code",[469,470,472],"h3",{"id":471},"a-missing-mark-is-not-a-zero","A missing mark is not a zero",[12,474,475],{},"This is the one that matters most and is easiest to get wrong.",[12,477,478,479,482],{},"No mark means no row. It sits outside every average, and the average is over the marks that exist. A\nrecorded ",[249,480,481],{},"0"," is a different thing entirely, and it counts. Clearing a box deletes the row rather than\nstoring a nothing that later reads as a nought.",[12,484,485],{},"A child who was absent on Thursday has not scored nothing. A subject that was not taught this week\nhas not scored nothing either. Any system that quietly turns \"no mark\" into a zero will show a\ndiligent child's average falling through a term in which nothing at all went wrong.",[469,487,489],{"id":488},"the-week-is-the-unit-of-publication","The week is the unit of publication",[12,491,492],{},"Not the mark, and not the subject.",[12,494,495],{},"A teacher can mark all week without a family seeing anything, and nothing becomes visible until the\nschool publishes that week. There is no half-published week, no subject that leaks ahead of the\nothers, and no mark that a parent sees before the school meant them to.",[12,497,498],{},"This also means a family-facing screen never has to ask whether a particular mark is ready. It asks\nwhich weeks were published and reads those.",[27,500,504,508,511,514,518,521,524,528,531,534,537,541,544,547,551],{"alt":501,"height":502,"src":503,"width":32},"The Publish tab of the Grades workspace for week 8 of Third Term, 08 to 14 June 2026, with a Publish all 2 classes button. A summary reads 0 complete, 2 part-marked, 4 nothing in, above a note that publishing sends each class's week to its own families, that a class with nothing marked is skipped rather than sent empty and that a class already published is left alone. Below, each class is listed with how many marks are in, its state, and which subjects nobody has marked: JSS 1A at 17 of 66 and JSS 2A at 4 of 22 are ticked and badged Partly entered, while JSS 3A and SS 1A read Nothing entered and are not.",1756,"\u002Fdocs\u002Fweekly-grades\u002Fpublish-week.png",[469,505,507],{"id":506},"a-week-that-has-not-begun-cannot-be-marked","A week that has not begun cannot be marked",[12,509,510],{},"The academic calendar already knows which weeks a term has, because it derives them from the term\ndates and the school's own week. Weekly grades ask it, rather than introducing a second idea of what\nweek 4 is.",[12,512,513],{},"So a week that has not started refuses marks, and says which situation it is in. A week that has not\nbegun resolves itself on Monday. A locked week needs an administrator. Those are different problems\nand they get different sentences.",[469,515,517],{"id":516},"subjects-are-graded-weekly-until-you-say-otherwise","Subjects are graded weekly until you say otherwise",[12,519,520],{},"Rather than the other way round.",[12,522,523],{},"A school that has to opt each subject in ends up with three of them marked, because opting in is a\njob somebody has to remember to finish. A school that wants to exclude a subject knows which one it\nis and can say so in a moment.",[19,525,527],{"id":526},"why-we-do-not-send-these-on-whatsapp","Why we do not send these on WhatsApp",[12,529,530],{},"We are asked this, and the answer is a real constraint rather than a preference.",[12,532,533],{},"The platform sends WhatsApp through one business phone number, which is capped at 250\nbusiness-initiated conversations a day across every school on 1410SMS. One school publishing one week\nto its families exceeds that on its own, and the schools that would lose their fee reminders and\nabsence alerts that day would be the other ones.",[12,535,536],{},"So weekly grades go out by email, in the app, and as a push notification, and we say why rather than\noffering a WhatsApp toggle that silently drops most of what it is given.",[19,538,540],{"id":539},"who-can-do-what","Who can do what",[12,542,543],{},"Recording is a teacher's job and follows the same rule the rest of grading does: a teacher may mark a\nclass that is one of their homerooms, or a subject they teach. Publishing and locking are separate\npermissions, because collecting marks and telling four hundred families are different acts.",[12,545,546],{},"On the phone, locking asks for confirmation and unlocking does not. That asymmetry is deliberate: a\nlock stops the teacher who has just spotted a wrong mark, and the person doing it should know that\nbefore they tap. Unlocking only hands that back. On the web the one act that confirms is publishing,\nwhich is the one that leaves the building.",[19,548,550],{"id":549},"starting","Starting",[12,552,553],{},"Turn it on for the subjects you actually want it for, tell your teachers which day the week closes,\nand publish the first week yourself before delegating it. The habit is the hard part. The software\nis now the easy part.",{"title":159,"searchDepth":160,"depth":160,"links":555},[556,557,563,564,565],{"id":451,"depth":163,"text":452},{"id":466,"depth":163,"text":467,"children":558},[559,560,561,562],{"id":471,"depth":160,"text":472},{"id":488,"depth":160,"text":489},{"id":506,"depth":160,"text":507},{"id":516,"depth":160,"text":517},{"id":526,"depth":163,"text":527},{"id":539,"depth":163,"text":540},{"id":549,"depth":163,"text":550},"A term report tells a parent in December what the school knew in September. Weekly grades are the other rhythm, a mark per subject per week, published a week at a time.",{},"\u002Fblog\u002Fweekly-grades",{"title":437,"description":566},"blog\u002Fweekly-grades",[572,181],"grades","0QhqbwuZTYWcYZZt3YepUdkyAa1l991jn4eGVub9wbA",{"id":575,"title":576,"author":7,"body":577,"category":288,"date":786,"description":787,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":788,"navigation":174,"ogImage":172,"path":789,"seo":790,"stem":791,"tags":792,"updated":172,"__hash__":793},"blog\u002Fblog\u002Fbuild-your-school-week.md","Build your school week without the wall chart",{"type":9,"value":578,"toc":778},[579,582,585,592,600,604,607,610,616,622,628,631,635,642,650,653,664,667,671,678,687,690,693,697,700,707,715,718,724,728,731,757,760,764,769],[12,580,581],{},"Most schools we work with build the timetable the same way. One person, a wall chart or a\nspreadsheet, and the better part of a fortnight. Everything else waits on it, because until it is\nfinished nobody knows who is free when, which room is spoken for, or whether the new maths teacher\nhas been given five lessons or fifteen.",[12,583,584],{},"Then the first week of term arrives and two teachers turn up to the same room.",[12,586,587,588,591],{},"The clash is never the interesting part. The interesting part is that it was findable. A person\nholding two hundred lessons in their head cannot find it; a computer holding the same two hundred\nlessons finds it instantly and refuses to make it in the first place. That is most of what the new\n",[36,589,590],{},"Timetable"," workspace does.",[27,593,597],{"alt":594,"height":595,"src":596,"width":32},"The Timetable workspace on its Overview tab, showing JSS 1A's published week. Periods run down the left from Period 1 at 08:00 to Period 8 ending 15:05, with Break at 09:30 and Lunch at 12:05 drawn as bands across all five days. Each lesson names its subject, teacher and room, such as Physics with Chidi Okafor in Science Laboratory 1, and several are marked DOUBLE and span two rows.",1524,"\u002Fblog\u002Fweekly-timetable\u002Fweek.png",[12,598,599],{},"One class, one week. Doubles span the periods they actually run across, breaks sit where the school\nstops, and every lesson says who is teaching it and where.",[19,601,603],{"id":602},"you-describe-the-school-not-the-grid","You describe the school, not the grid",[12,605,606],{},"The old way of putting a timetable into software was to type a finished timetable into software. You\ndid the hard part on paper and the computer stored it.",[12,608,609],{},"Here you describe your school instead, and there are only three things to describe.",[12,611,612,615],{},[36,613,614],{},"The shape of your day."," A bell schedule: the periods, their times, and which of them are teaching\nperiods and which are breaks. Most schools need exactly one. A school whose junior and senior\nsections run different days can have several.",[12,617,618,621],{},[36,619,620],{},"The rooms."," Each with a kind: classroom, laboratory, hall, library, sports. The kind is not a\nlabel. A subject can require a laboratory, and the timetable will then only put it in one. Every\nclass also has a home room, which is where it sits unless a lesson says otherwise, so an ordinary\nlesson never has to name a room at all and a school that has never filled in a room still gets room\nclash detection.",[12,623,624,627],{},[36,625,626],{},"What each class needs."," Periods a week per subject, how many of those should be doubles, the most\nit should have in any one day, whether it needs a particular kind of room, and who takes it. Leave\nthe teacher blank and the timetable will use whoever teaches that subject and is free.",[12,629,630],{},"That last tab keeps a running count of what you have asked for against how many periods the week\nactually holds, and tells you plainly when you have asked for more than there is. It is a small\nthing that removes a specific and very common afternoon: the one where a week refuses to come out\nand nobody can work out why, because the answer is that it never could.",[19,632,634],{"id":633},"then-it-builds-it","Then it builds it",[12,636,637,638,641],{},"The ",[36,639,640],{},"Generate"," tab checks the school over before it offers to build anything at all.",[27,643,647],{"alt":644,"height":645,"src":646,"width":32},"The Generate tab. A Before generating card reports Ready. Nothing is standing in the way, with a Re-check button beside it. Below, the Generate card asks what to build, how hard to try, which subjects to keep in the morning and a note for the run, above a full-width Generate button.",1194,"\u002Fblog\u002Fweekly-timetable\u002Fgenerate.png",[12,648,649],{},"It says what is standing in the way before it starts, not after. Warnings do not stop a run.\nBlockers do, and each one names what to fix.",[12,651,652],{},"A class with no bell schedule, a subject nobody is down to teach, a class asking for more periods\nthan its week holds, more practicals than your laboratories can seat. These are the things that\nwould otherwise surface as a half-built week and a shrug.",[12,654,655,656,659,660,663],{},"Two ways to run it. ",[36,657,658],{},"Build a whole new week"," in a fresh draft, or ",[36,661,662],{},"fill"," the one you already\nhave, which keeps every lesson you have placed exactly where it is and only puts something in the\nempty periods. The second is what you want after moving a few lessons by hand and deciding you were\nright.",[12,665,666],{},"A run never touches your published week. It produces a draft.",[19,668,670],{"id":669},"and-you-move-what-you-disagree-with","And you move what you disagree with",[12,672,673,674,677],{},"No generator knows that Mrs Adeyemi does not teach double periods after lunch, or that the Friday\nassembly runs long. The ",[36,675,676],{},"Builder"," is a class's week with a palette beside it of what is still to\nplace, by mouse or by keyboard.",[27,679,684],{"alt":680,"height":681,"src":682,"width":683},"The Builder tab for JSS 1A. A To place panel down the left lists each subject with how many of its periods are placed, all reading 4 of 4. Beside it the week runs Period 1 to Period 8 down the side and Monday to Friday across the top, with Break and Lunch as full-width bands, and every cell naming its subject, teacher and room.",1674,"\u002Fblog\u002Fweekly-timetable\u002Fbuilder.png",2232,[12,685,686],{},"The count beside each subject is what is left to place. Every change saves as you make it, and Undo\nsteps back through what you have done.",[12,688,689],{},"A clash is drawn in the cell it happens in, as it happens. Not in a validation report on another\nscreen, and not at publish time when you have forgotten what you were doing.",[12,691,692],{},"There is one rule worth knowing because it looks like a bug the first time you meet it. The same\nteacher can be in two places at the same time if it is the same subject: that is a merged lesson,\ntwo forms sitting a practical together, and it is one lesson rather than two. Anything else is a\nclash.",[19,694,696],{"id":695},"nobody-sees-a-thing-until-you-publish","Nobody sees a thing until you publish",[12,698,699],{},"This is the part that matters most, and it is the part a wall chart cannot give you.",[12,701,702,703,706],{},"Every week you build is a ",[36,704,705],{},"version",". Drafts are yours. The published one is what teachers,\nstudents and parents see, and there is at most one of those per term.",[27,708,712],{"alt":709,"height":710,"src":711,"width":32},"The Versions tab, listing v1 for First Term 2026\u002F2027, marked Published, with 208 lessons and who built it, offering Open and Restore. Below it a card headed v1: what is wrong with it explains that errors stop a publish and warnings do not, with a Check button.",550,"\u002Fblog\u002Fweekly-timetable\u002Fversions.png",[12,713,714],{},"Check a version before publishing: errors stop a publish, warnings do not. Compare two versions to\nsee exactly what moved between them.",[12,716,717],{},"So you can rebuild next term's timetable in the middle of this one, in daylight, on the real system,\nwith the real staff list, and nobody outside the workspace is any the wiser. Publishing archives the\nold version rather than deleting it. When somebody asks what changed in a mid-term reshuffle, the\ncomparison is a screen rather than an argument.",[12,719,720,723],{},[36,721,722],{},"Until you publish for the first time, your existing timetable is still your timetable."," Every\nschool already on 1410SMS keeps seeing exactly what it saw yesterday. The engine takes over at the\nmoment you first publish and not a moment sooner, which means adopting this is something you do at\nyour own pace rather than something that happens to you on a Tuesday.",[19,725,727],{"id":726},"what-everyone-else-gets","What everyone else gets",[12,729,730],{},"Once it is live, the week stops being a document that has to be distributed.",[119,732,733,739,745,751],{},[122,734,735,738],{},[36,736,737],{},"Teachers"," see their own week across every class they take, and what they are teaching next.",[122,740,741,744],{},[36,742,743],{},"Students"," see their class's week.",[122,746,747,750],{},[36,748,749],{},"Parents"," see each child's week, which quietly answers most of the questions a school office\ngets asked on a Sunday evening.",[122,752,753,756],{},[36,754,755],{},"The app"," shows the same published week a day at a time, opening on today, with the period\nrunning now and the one after it on the dashboard.",[12,758,759],{},"That last one is deliberate. A phone is not where you read a timetable grid, it is where you check\nwhat is happening in twenty minutes. We did not put the builder on it either, for the same reason\nnobody builds a timetable on a phone.",[19,761,763],{"id":762},"where-to-find-it","Where to find it",[12,765,766,768],{},[36,767,590],{}," in the sidebar. Eight tabs: Overview, Periods and Rooms, Requirements, Groups,\nTeachers, Generate, Builder, Versions. Start at Periods and Rooms, because everything else depends\non the shape of your day.",[12,770,771,772,777],{},"The full walkthrough, including teacher unavailability, teaching groups and what each readiness\ncheck is looking for, is in the ",[773,774,776],"a",{"href":775},"\u002Fdocs\u002Fweekly-timetable","Weekly Timetable documentation",".",{"title":159,"searchDepth":160,"depth":160,"links":779},[780,781,782,783,784,785],{"id":602,"depth":163,"text":603},{"id":633,"depth":163,"text":634},{"id":669,"depth":163,"text":670},{"id":695,"depth":163,"text":696},{"id":726,"depth":163,"text":727},{"id":762,"depth":163,"text":763},"2026-08-09","The timetable is the one document a school rebuilds every year and dreads every year. The new Weekly Timetable workspace does the placing, catches the clashes as they happen, and shows nobody anything until you publish.",{},"\u002Fblog\u002Fbuild-your-school-week",{"title":576,"description":787},"blog\u002Fbuild-your-school-week",[180,181],"PEE1vWfRQk9p0H6bpXOtYzLyfVpKh1TnkefYJKAchX0",{"id":795,"title":796,"author":7,"body":797,"category":288,"date":956,"description":957,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":958,"navigation":174,"ogImage":172,"path":959,"seo":960,"stem":961,"tags":962,"updated":172,"__hash__":963},"blog\u002Fblog\u002Freport-card-designer.md","Design the report card your school actually prints",{"type":9,"value":798,"toc":949},[799,802,805,808,811,815,821,830,833,839,849,855,859,862,865,872,875,882,886,889,892,901,904,908,914,920,926,928,938,941],[12,800,801],{},"Ask ten schools what belongs on a report card and you will get ten answers.",[12,803,804],{},"Some rank every child in the class and print the position in bold. Some think ranking a nine-year-old\nis the worst thing a school can do to them, and want the column gone. Some print the highest and\nlowest score in each subject so a parent can see where their child sits without a rank. Some print\nthree assessment columns, some print one. Some want the head teacher's remark at the bottom under a\nsignature line, and some want it at the top, because it is the part parents actually read.",[12,806,807],{},"Until this release, 1410SMS had one opinion about all of that, and it was ours.",[12,809,810],{},"The card was a good card. It was also the same card in Kaduna and in Lekki, in a nursery and in a\nsixth form, and every school that wanted something slightly different had the same conversation with\nus: could you move this, could you take that off, we do not use positions here.",[19,812,814],{"id":813},"what-changed","What changed",[12,816,817,820],{},[36,818,819],{},"Report Cards → Designer"," is now a page where a school lays out its own card and watches it redraw\nas it goes.",[27,822,827],{"alt":823,"height":824,"src":825,"width":826},"The Report Card Designer: a list of the school's designs and the card's sections on the left, a live preview of a real student's report card in the middle, and a properties panel on the right showing the template's name, style, report title, heading typeface, border and logo position",1736,"\u002Fblog\u002Freport-card-designer\u002Fdesigner.png",2832,[12,828,829],{},"The designer. Sections on the left, the card in the middle, and the settings for whatever you have\nselected on the right.",[12,831,832],{},"Three things are going on there.",[12,834,835,838],{},[36,836,837],{},"The section list on the left is the card's running order."," Every band of the card is an item you\ncan move up, move down, hide, or place: full width, the wide column, the narrow column beside it,\nor half width next to its neighbour. Move the remarks above the subject table and the remarks print\nabove the subject table. There is no fixed skeleton underneath waiting to reassert itself.",[12,840,841,844,845,848],{},[36,842,843],{},"The middle is not a mock-up."," It is the real card, rendered by the same code that produces the\nPDF, using a real pupil's real marks. We debated a tidy sample student with three subjects and a\nshort name, and decided against it: the question a head teacher is actually asking is ",[66,846,847],{},"will this fit\nour card",", and a school with fourteen subjects and double-barrelled surnames needs that answered\nhonestly. Pick any graded pupil from the dropdown at the top.",[12,850,851,854],{},[36,852,853],{},"The right-hand panel is whatever you have selected."," Select the subject table and you get its\ncolumns: total, grade, remark, highest, lowest, class average, position, previous terms. Select the\nskills grid and you get rows or a grid, and how many columns. Select nothing and you get the card\nitself: its style, its title band, its heading typeface, its border, where the logo sits.",[19,856,858],{"id":857},"colours","Colours",[12,860,861],{},"The card follows your school's brand colours by default, which is right almost all the time and\noccasionally wrong. A school whose brand is a bright orange may not want a report card in bright\norange, and a school with a formal crest often wants the card darker and quieter than the website.",[12,863,864],{},"So the card's two colours can be set on their own.",[27,866,869],{"alt":867,"height":824,"src":868,"width":826},"The Colours panel of the Report Card Designer, with the main colour left following the school's brand colour and the accent colour overridden to the blue #1D4ED8, and the preview beside it showing a blue title band and seal","\u002Fblog\u002Freport-card-designer\u002Fcolours.png",[12,870,871],{},"The main colour still follows the school's brand. The accent has been set to a blue of its own, and\nthe title band in the preview has already changed.",[12,873,874],{},"They are described by where they print rather than by their names, because \"secondary colour\" tells\nyou nothing about what will move. The main colour is the header band and the totals bar. The accent\nis the title strip, the seal, the rules between sections, the remark headings and the footer.",[12,876,877,878,881],{},"Each one is off by default and says which school colour it is inheriting. That is deliberate: a\npre-filled colour picker cannot express ",[66,879,880],{},"follow the school",", so a school that rebrands next year\nwould find its report card still printing last year's colour with nothing on screen to explain why.\nLeave it off and the card follows. Switch it on and it does not.",[19,883,885],{"id":884},"one-school-several-cards","One school, several cards",[12,887,888],{},"A school is often several schools. The nursery, the junior school and the sixth form do not\nnecessarily want the same document, and a boarding house report is not a termly academic report.",[12,890,891],{},"You can keep more than one design and say which classes print on which.",[27,893,898],{"alt":894,"height":895,"src":896,"width":897},"A drawer titled Which classes print on this design, explaining that a class with no design of its own prints on the school-wide one, and listing the school's classes from JSS 1A to SS 3A with SS 1A and SS 2A ticked",1816,"\u002Fblog\u002Freport-card-designer\u002Fclasses.png",3400,[12,899,900],{},"SS 1A and SS 2A print on the senior design. Everything else falls through to the school-wide one.",[12,902,903],{},"A class can only ever be on one design, which is enforced in the database rather than by asking you\nto be careful. Anything you have not assigned prints on your school-wide card, so a school that\nwants one card for everybody never has to open this at all.",[19,905,907],{"id":906},"what-has-not-changed","What has not changed",[12,909,910,913],{},[36,911,912],{},"If you never open the designer, nothing about your report cards changes."," The card every school\nhas been printing is now called the Standard Report Card, it is what every school starts on, and it\nis the same document it was last term. It cannot be edited or deleted, which is what makes it\nsomewhere to go back to: customising means duplicating it, and if the copy turns out to be a mistake,\nthe original is still sitting there.",[12,915,916,919],{},[36,917,918],{},"The maths is still ours."," Totals, averages, grades, positions, class highs and lows, cumulative\naverages across terms. None of that is affected by how the card is laid out, and none of it is\ncomputed twice. The design decides what is shown and where. It never decides what a number is.",[12,921,922,925],{},[36,923,924],{},"The phone gets it for free."," The mobile app displays the PDF the server produces, so a design\nsaved on a laptop at four o'clock is what a parent opens on their phone at five.",[19,927,763],{"id":762},[12,929,930,933,934,937],{},[36,931,932],{},"Report Cards"," in the sidebar, then the ",[36,935,936],{},"Designer"," tab. It sits beside the report card directory\nand the skills and traits catalogue, which used to be three separate pages and are now one workspace.",[12,939,940],{},"Teachers see the directory and nothing else. Designing the school's card is an administrator's job,\nand the tabs a teacher cannot use are not shown to them at all.",[12,942,943,944,948],{},"There is a fuller walkthrough in the ",[773,945,947],{"href":946},"\u002Fdocs\u002Freport-card-designer","Report Card Designer\ndocumentation",", including what every section's settings do.",{"title":159,"searchDepth":160,"depth":160,"links":950},[951,952,953,954,955],{"id":813,"depth":163,"text":814},{"id":857,"depth":163,"text":858},{"id":884,"depth":163,"text":885},{"id":906,"depth":163,"text":907},{"id":762,"depth":163,"text":763},"2026-08-05","Schools do not agree on what belongs on a report card, and until now ours only had one opinion. The Report Card Designer lets each school decide what appears, where it sits, and what it says.",{},"\u002Fblog\u002Freport-card-designer",{"title":796,"description":957},"blog\u002Freport-card-designer",[295,181],"wa5voYXTIlAT5mIKniMmx4JKuSHIly04kdZW96eINLs",{"id":965,"title":966,"author":7,"body":967,"category":167,"date":1087,"description":1088,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":1089,"navigation":174,"ogImage":172,"path":1090,"seo":1091,"stem":1092,"tags":1093,"updated":172,"__hash__":1096},"blog\u002Fblog\u002Fhow-to-start-a-new-session-and-term.md","The end-of-session checklist",{"type":9,"value":968,"toc":1080},[969,972,980,988,992,995,1001,1005,1008,1015,1019,1026,1040,1044,1070,1074,1077],[12,970,971],{},"Almost everything in 1410SMS is filed against a term and a session. Grades, attendance, invoices,\nreport cards. The start of a new period is therefore one of the few times a school genuinely has to\nsit down and configure something, and it is worth ten unhurried minutes.",[12,973,974,975,979],{},"The mechanics are short and documented in full under\n",[773,976,978],{"href":977},"\u002Fdocs\u002Facademic","Academic Calendar, Terms & Sessions",": add the session, pair it with a term as a\ncalendar, mark that calendar current. This is the other half, the part that is not a form. What order\nto do things in, and what goes wrong when a step is skipped.",[27,981,985],{"alt":982,"height":983,"src":984,"width":32},"The Academic Calendar workspace on its Terms and Sessions tab. The school year for 2026\u002F2027 is drawn as a bar of three coloured term blocks with the breaks between them named, and each term is listed with its dates and day count: First Term 07 September to 18 December, 103 days, badged Current term, the other two offering Set current. Below sit the 2025\u002F2026 terms marked Finished, an undated 2024\u002F2025, and cards listing the academic sessions and the three permanent terms",1924,"\u002Fblog\u002Fnew-session-and-term\u002Facademic-setup.png",[12,986,987],{},"The school year at the top, and underneath it the sessions and terms it is built from.",[19,989,991],{"id":990},"the-click-everything-depends-on","The click everything depends on",[12,993,994],{},"Setting the current calendar is the step that actually changes what the platform does. It decides the\nterm a new grade is filed under, the term an invoice belongs to, what the dashboards report on and\nwhich period a report card opens to.",[12,996,997,1000],{},[36,998,999],{},"If you forget it, nothing breaks visibly."," Marks and invoices keep saving. They keep saving\nagainst last term, and by the time someone notices, correcting them is a real job rather than a\nclick. It is the single most important action on the page, so make it the one you go back and check.",[19,1002,1004],{"id":1003},"do-not-create-a-new-first-term-20262027","Do not create a new \"First Term 2026\u002F2027\"",[12,1006,1007],{},"The three default terms are permanent and reused across every session. That is what lets a report\ncard say \"this pupil's running average across the terms completed so far\" and mean something. The\nterm is First Term; the session is what changes.",[12,1009,1010,1011,1014],{},"A school that calls its terms something else gives them an ",[36,1012,1013],{},"alias"," rather than renaming them:\nMichaelmas, Rain Term, Semester One. The alias is what appears on report cards, in the portals, on\nPDFs, in exports and in the app, while the spine everything is ordered against stays intact.",[19,1016,1018],{"id":1017},"order-matters-for-promotion","Order matters for promotion",[12,1020,1021,1022,1025],{},"New session usually means everyone moves up, using ",[36,1023,1024],{},"Promote Students"," on the Students page. Two\nthings are worth getting the right way round:",[119,1027,1028,1034],{},[122,1029,1030,1033],{},[36,1031,1032],{},"Sort out your class list first."," Opening a new stream or retiring one is a job to do before\npromotion, not after.",[122,1035,1036,1039],{},[36,1037,1038],{},"Work from the top down."," Promote the leaving year first and come down the school, so you are\nnever moving pupils into a class you are about to empty.",[19,1041,1043],{"id":1042},"then-the-things-nobody-remembers-until-they-bite","Then the things nobody remembers until they bite",[119,1045,1046,1052,1058,1064],{},[122,1047,1048,1051],{},[36,1049,1050],{},"Check each class's subject list."," A year group that has picked up a new subject needs it ticked\non the class's Edit form, or it will not appear in grade entry or the timetable builder, and the\nfirst person to notice will be a teacher trying to enter marks.",[122,1053,1054,1057],{},[36,1055,1056],{},"Review your fee structures."," Amounts change more often than fee types do, so this is usually\nupdating a default amount rather than adding anything.",[122,1059,1060,1063],{},[36,1061,1062],{},"Review discount awards."," A sibling discount awarded \"until you revoke it\" carries into the new\nsession by itself, which is normally what you want. A bursary awarded for a single term does not,\nwhich is also normally what you want. Worth a look either way.",[122,1065,1066,1069],{},[36,1067,1068],{},"Set the resumption date"," on any one pupil's report card, and every other pupil in the session\npicks it up.",[19,1071,1073],{"id":1072},"what-carries-over","What carries over",[12,1075,1076],{},"Nothing is deleted at a session boundary. Last year's grades, registers and invoices stay exactly\nwhere they are, filed under the session they belong to, and every screen with a session filter can\nstill reach them.",[12,1078,1079],{},"Unpaid balances carry over too, because a debt does not expire with a term. That is why the\ndashboard's period filter defaults to the whole session rather than the current term: when you are\nchasing arrears, the session total is the number you want.",{"title":159,"searchDepth":160,"depth":160,"links":1081},[1082,1083,1084,1085,1086],{"id":990,"depth":163,"text":991},{"id":1003,"depth":163,"text":1004},{"id":1017,"depth":163,"text":1018},{"id":1042,"depth":163,"text":1043},{"id":1072,"depth":163,"text":1073},"2026-07-29","The handful of things worth settling before a new academic year starts, in the order that stops you undoing your own work, and the one click that quietly decides what every screen in the platform means for the next four months.",{},"\u002Fblog\u002Fhow-to-start-a-new-session-and-term",{"title":966,"description":1088},"blog\u002Fhow-to-start-a-new-session-and-term",[1094,1095],"operations","how-to","DUy9WbgJhxn27uL_ueHxesQUjcTV_GvT8zW34OPQcAU",{"id":1098,"title":1099,"author":7,"body":1100,"category":288,"date":1087,"description":1314,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":1315,"navigation":174,"ogImage":172,"path":1316,"seo":1317,"stem":1318,"tags":1319,"updated":172,"__hash__":1321},"blog\u002Fblog\u002Fredesigned-mobile-app.md","We rebuilt the 1410SMS mobile app, screen by screen",{"type":9,"value":1101,"toc":1302},[1102,1105,1108,1111,1115,1118,1121,1124,1130,1136,1142,1146,1150,1153,1156,1166,1170,1173,1176,1179,1183,1186,1225,1232,1235,1239,1242,1245,1249,1252,1255,1258,1262,1265,1270,1273,1276,1280,1283,1286,1289],[12,1103,1104],{},"The first version of the 1410SMS mobile app did the job. Staff could mark a register on it, parents\ncould check a balance on it, and it worked offline on a bad connection, which in a lot of Nigerian\nschools is the whole ballgame.",[12,1106,1107],{},"It also, if we are honest, looked like a filing cabinet.",[12,1109,1110],{},"Version 1.1.0 is the result of going back through every screen in the app and asking a question we\nshould have asked earlier: does this feel like something built for a phone, or like a website that\nhas been squeezed onto one?",[19,1112,1114],{"id":1113},"the-problem-with-it-works","The problem with \"it works\"",[12,1116,1117],{},"An app that works is not the same as an app people reach for.",[12,1119,1120],{},"A bursar with a laptop open will use the laptop. A class teacher standing in a corridor will not open\na laptop, so if the app is awkward the register gets marked later, from memory, which is how\nattendance data quietly stops being true. The gap between \"the feature exists on mobile\" and \"people\nactually use it on mobile\" is almost entirely a design gap.",[12,1122,1123],{},"Three things were pushing people back to the browser:",[12,1125,1126,1129],{},[36,1127,1128],{},"Every screen looked slightly different from every other screen."," Some had a card with a shadow,\nsome had a card with a border, some had neither. Status colours were whatever green or red that\nscreen's author had picked. Nothing was wrong exactly, but nothing agreed either, and the cumulative\neffect is that an app stops feeling like one product.",[12,1131,1132,1135],{},[36,1133,1134],{},"Half the finance features were read-only."," You could look at an invoice on the phone but not\nrecord the payment against it, so anyone doing the actual work was going back to a desk anyway.",[12,1137,1138,1141],{},[36,1139,1140],{},"Some screens were built like web pages."," The clearest case was taking a test: one long scroll with\nevery question on it, which is exactly how you would build it for a browser and exactly the wrong\nshape for a thumb.",[19,1143,1145],{"id":1144},"what-we-changed","What we changed",[469,1147,1149],{"id":1148},"one-header-one-card-one-set-of-status-colours","One header, one card, one set of status colours",[12,1151,1152],{},"The app now has a shared screen shell. Your school's logo and name sit above the screen title in the\nsame position on every screen, over a soft backdrop, with summary panels rendered as flat cards with\na hairline border rather than floating on a shadow.",[12,1154,1155],{},"That sounds like a small thing. It is the difference between an interface you read and an interface\nyou decode. When a paid badge is the same green on the invoice list, the invoice detail, the pupil's\nrecord and the dashboard, you stop reading the word and start recognising the colour, which is faster\nand is what a native app is supposed to feel like.",[27,1157,1163],{":phone":1158,"alt":1159,"height":1160,"src":1161,"width":1162},"true","The 1410SMS Android app staff dashboard: a green header greeting Adaeze Okonkwo above the school name, term and session, then ₦1.20M collected in 2026\u002F2027 of ₦1.23M invoiced at 98%, a session and term filter, student, teacher, class and parent counts, and a Needs chasing card naming one family 59 days overdue for ₦25,000",1600,"\u002Fdocs\u002Fmobile-app\u002Fdashboard.png",720,[12,1164,1165],{},"The staff dashboard. The same widgets, the same period filter and the same permissions as the web.",[469,1167,1169],{"id":1168},"tablets-and-very-large-text","Tablets, and very large text",[12,1171,1172],{},"Two cases we had been quietly ignoring.",[12,1174,1175],{},"A tablet was getting the phone layout stretched wide, so a four-across row of figures sat as two\ncolumns with a lot of empty space. Stat grids now go to four columns above 600dp with wider margins.",[12,1177,1178],{},"The other was more embarrassing. With the system font size set to its largest accessibility value,\na single word could become wider than the fixed-width column it sat in, and the layout engine\nresponded by wrapping one character per line. Text scaling is now capped at a point where every\nlayout still holds together, which is not a perfect answer but is a great deal better than a column\nof individual letters.",[469,1180,1182],{"id":1181},"finance-you-can-actually-run-from-a-phone","Finance you can actually run from a phone",[12,1184,1185],{},"This was the biggest functional gap, so it got the most work. The app now has:",[119,1187,1188,1195,1201,1207,1213,1219],{},[122,1189,1190,1191,1194],{},"A ",[36,1192,1193],{},"Payments workspace"," with the verification queue, so a payment can be reviewed, verified,\nrejected with a reason, or voided if it was recorded in error, without opening a browser.",[122,1196,1197,1200],{},[36,1198,1199],{},"Invoice search and sort",", because scrolling to find one invoice is fine with thirty and\nimpossible with three hundred.",[122,1202,1203,1206],{},[36,1204,1205],{},"Fee structures",", so the fee types an invoice is built from can be created and edited on the\nphone rather than only read.",[122,1208,1209,1212],{},[36,1210,1211],{},"Bulk reminders",": long-press to start selecting, tap to add, one action to send every selected\nparent their own reminder.",[122,1214,1215,1218],{},[36,1216,1217],{},"Analytics and outstanding",", including a collection-rate ring, a twelve-month trend, and the\ndebtors list.",[122,1220,1221,1224],{},[36,1222,1223],{},"Fee discounts",", both the catalogue and the awards against individual pupils.",[27,1226,1229],{":phone":1158,"alt":1227,"height":1160,"src":1228,"width":1162},"The 1410SMS Android app Fees screen: term and session filter chips, an outstanding card showing ₦25,000 in NGN beside a 98% collected ring with one part-paid and six paid, above a searchable list of invoices each naming the pupil, the fee items and what is still owed","\u002Fdocs\u002Fmobile-app\u002Ffees.png",[12,1230,1231],{},"Outstanding balances get one card per currency, because balances in different currencies are never added together.",[12,1233,1234],{},"Every one of those is gated on the same permissions as the web, so what a role can do does not change\ndepending on which device they are holding.",[469,1236,1238],{"id":1237},"taking-a-test-redesigned","Taking a test, redesigned",[12,1240,1241],{},"Candidates now see one question at a time, with a numbered strip above showing which questions are\nanswered, which one they are on, and letting them jump straight to any of them. Submit is available\nfrom any question rather than only the last, and asks for confirmation if anything is unanswered.",[12,1243,1244],{},"While we were in there we fixed something worse than a layout problem. The countdown had been driven\nby the test's duration rather than by the deadline the server issued, which meant reloading the page\nbought a fresh full timer. It now runs off the server's deadline, so the clock a candidate sees and\nthe cut-off the server enforces are the same clock.",[469,1246,1248],{"id":1247},"the-screens-nobody-wants-to-see","The screens nobody wants to see",[12,1250,1251],{},"Two failure states were badly served.",[12,1253,1254],{},"A school whose subscription had lapsed got empty screens and a Try again button that could never\nsucceed, because every request was being refused. The app now says so plainly, explains that renewal\nhappens in the web portal, and restores itself the moment payment goes through.",[12,1256,1257],{},"And figures used to go stale. Recording a payment updated the invoice but left the dashboard on its\nold number until you reopened the screen, which is exactly the kind of thing that makes someone\ndistrust a total. Writes now invalidate the figures they affect, so what you see after an action is\nwhat actually happened.",[19,1259,1261],{"id":1260},"the-rule-we-used","The rule we used",[12,1263,1264],{},"Partway through, we stopped arguing about individual screens and settled on a test.",[12,1266,1267],{},[36,1268,1269],{},"A screen is finished when nothing about it tells you it came from a web page.",[12,1271,1272],{},"Not \"does it look nice\". Not \"does it match the mockup\". Whether anything on it, a layout, a\ncontrol, an interaction, a scroll length, would only make sense on a desktop. A form with fourteen\nfields in a single column fails that test. A confirmation you can only reach by scrolling to the\nbottom of a long list fails it. A table with five columns squashed to phone width fails it badly.",[12,1274,1275],{},"It is a useful rule because it is answerable. Two people can disagree about whether a card should\nhave a shadow for a long time. They can settle \"would you build it this way if the web version did\nnot exist\" in about a minute.",[19,1277,1279],{"id":1278},"what-is-next","What is next",[12,1281,1282],{},"The redesign is not a finished project, it is a standard we now hold new screens to. The next passes\nare the academic side, which has had less attention than finance, and offline behaviour, where the\napp is capable but does not always explain itself well enough.",[12,1284,1285],{},"If you use the app, update to 1.1.0 and tell us where it still feels like a website. That feedback is\nmore useful to us than almost anything else.",[1287,1288],"app-download",{},[12,1290,1291,1292,1296,1297,1301],{},"The full list of changes is in the ",[773,1293,1295],{"href":1294},"\u002Freleases\u002Fmobile-1-1-0","release notes",", and\n",[773,1298,1300],{"href":1299},"\u002Fdocs\u002Fmobile-app","Mobile App"," in the documentation covers signing in, push notifications and offline\nsupport.",{"title":159,"searchDepth":160,"depth":160,"links":1303},[1304,1305,1312,1313],{"id":1113,"depth":163,"text":1114},{"id":1144,"depth":163,"text":1145,"children":1306},[1307,1308,1309,1310,1311],{"id":1148,"depth":160,"text":1149},{"id":1168,"depth":160,"text":1169},{"id":1181,"depth":160,"text":1182},{"id":1237,"depth":160,"text":1238},{"id":1247,"depth":160,"text":1248},{"id":1260,"depth":163,"text":1261},{"id":1278,"depth":163,"text":1279},"Why the app needed more than a coat of paint, what changed in the redesign, and the rule we used to decide when a screen was finished.",{},"\u002Fblog\u002Fredesigned-mobile-app",{"title":1099,"description":1314},"blog\u002Fredesigned-mobile-app",[1320,181],"mobile","XADBTTzv-xtcIxDq5LgQJNuCSzGYpW541cZPRYfJBRI",{"id":1323,"title":1324,"author":7,"body":1325,"category":1479,"date":1480,"description":1481,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":1482,"navigation":174,"ogImage":172,"path":1483,"seo":1484,"stem":1485,"tags":1486,"updated":172,"__hash__":1489},"blog\u002Fblog\u002Fschool-fee-controls-that-actually-work.md","Four Controls That Stop School Fees Going Missing",{"type":9,"value":1326,"toc":1472},[1327,1330,1333,1336,1340,1343,1346,1353,1356,1360,1363,1370,1373,1387,1390,1397,1400,1403,1407,1410,1413,1416,1419,1423,1426,1429,1432,1435,1439,1442,1457,1460],[12,1328,1329],{},"Almost every school that loses money to its own fee process loses it the same way. Not to theft.\nTo a single unchecked entry.",[12,1331,1332],{},"Somebody takes ₦180,000 at the desk on the first Monday of term, writes it in the book, and does not\nget to the summary sheet because there are fourteen parents waiting behind. Six weeks later a parent\nproduces a receipt for a payment the school cannot find. Now the school is choosing between\naccusing a paying customer of lying and writing off the amount. It usually writes it off, and it\nusually does not record that it did.",[12,1334,1335],{},"The frustrating part is that the controls that prevent this are not complicated and do not require\nan accountant. They require that no single person be the only pair of eyes on a transaction.",[19,1337,1339],{"id":1338},"_1-the-person-who-receives-money-should-not-be-the-last-person-to-confirm-it","1. The person who receives money should not be the last person to confirm it",[12,1341,1342],{},"This is the oldest rule in bookkeeping and the one small schools break most often, usually without\nnoticing, because the bursar is trusted and competent and there is nobody else free.",[12,1344,1345],{},"Trust is not the point. A second review catches honest mistakes far more often than dishonest ones:\nthe payment entered against the wrong sibling, the ₦50,000 typed as ₦500,000, the transfer credited\ntwice because the parent sent the receipt on WhatsApp and then again by email.",[12,1347,1348,1349,1352],{},"What this looks like in practice is a ",[36,1350,1351],{},"verification step",": money is recorded when it arrives, so\nthe parent gets their receipt immediately, but the entry is flagged as unverified until somebody\nelse has checked it against the bank statement or the POS printout. In 1410SMS this is the\nverification queue on the Payments tab. Verifying never moves a balance. It records who checked the\nentry and when, which is exactly what you want in February when you are trying to reconstruct\nOctober.",[12,1354,1355],{},"Do this weekly. A queue reviewed once a term is a filing cabinet.",[19,1357,1359],{"id":1358},"_2-never-delete-a-wrong-entry-reverse-it","2. Never delete a wrong entry. Reverse it",[12,1361,1362],{},"When a payment is recorded in error, the instinct is to delete the row and re-enter it correctly.\nResist it. A deleted row leaves no trace that it existed, which means the one thing you cannot later\nreconstruct is what actually happened.",[12,1364,1365,1366,1369],{},"The correct move is to ",[36,1367,1368],{},"void"," the entry with a stated reason, which reverses the payment, restores\nthe invoice balance and leaves both the original and the reversal visible. Six months later the\nrecord still says: this was recorded, this is who reversed it, this is why.",[12,1371,1372],{},"Two things worth being clear about, because they get conflated:",[119,1374,1375,1381],{},[122,1376,1377,1380],{},[36,1378,1379],{},"Voiding is not a refund."," No money moves. It is the correction of a mistaken entry, usually a\nduplicate or a payment recorded against the wrong child.",[122,1382,1383,1386],{},[36,1384,1385],{},"Voiding is not rejection."," Rejecting is a review verdict and leaves the balance alone. Voiding\nactually reopens the invoice for payment.",[12,1388,1389],{},"Most voids are internal corrections that the parent never needs to hear about, which is why\nnotifying them should be a decision you make per void rather than something that happens\nautomatically. Occasionally it does need telling, and then you want the option.",[12,1391,1392,1393,1396],{},"There is a third correction, and confusing it with voiding is the one that will put your books out of\nstep with your bank. A ",[36,1394,1395],{},"refund"," is money the family really paid and you have really sent back.\nVoiding and refunding do the same thing to the invoice balance and mean opposite things: voiding says\nthe payment never happened, refunding says it happened and is being reversed. Void a payment that\ngenuinely reached your account and your records will show nothing collected while your statement\nshows the money arriving, with nothing anywhere to explain the difference.",[12,1398,1399],{},"So keep the three apart and reach for the one you mean. Cancelling an invoice says the charge should\nnever have been raised. Voiding a receipt says the entry was a mistake. Recording a refund says the\nmoney has gone back. Only the third moves anything, and it is the only one the family is told about\nby default, because money arriving unannounced is a phone call you will take either way.",[12,1401,1402],{},"One habit worth forming with refunds: record them against the date the money actually left, not the\nday you got round to entering it. They are counted on the day they were sent, so a Friday transfer\ntyped in on Monday still reconciles against Friday's statement.",[19,1404,1406],{"id":1405},"_3-treat-the-parent-as-your-auditor","3. Treat the parent as your auditor",[12,1408,1409],{},"This one costs nothing and is the most effective control on the list.",[12,1411,1412],{},"Every parent who receives a receipt the moment they pay, and who can look up their own outstanding\nbalance without phoning the office, is checking your books for you. They have a strong incentive to\nnotice a payment that never landed, and they will tell you within days rather than at the end of\nterm.",[12,1414,1415],{},"Schools that send receipts on request, or at the end of the week, or only when a parent asks twice,\nlose that entirely. The error is still there. It just gets found in November.",[12,1417,1418],{},"The practical version: receipts go out automatically on every payment, invoices carry your bank\ndetails so nobody is guessing where to send money, and the parent portal shows a live balance rather\nthan a figure someone typed into a message. If you want one change from this article, make it this\none.",[19,1420,1422],{"id":1421},"_4-separate-the-roles-even-when-you-cannot-separate-the-people","4. Separate the roles, even when you cannot separate the people",[12,1424,1425],{},"Here is the part most advice on this subject skips.",[12,1427,1428],{},"Textbook segregation of duties assumes you have enough staff to give receipting, reconciliation and\napproval to three different people. A school with two administrators and a head does not have that,\nand telling them to hire is not useful advice.",[12,1430,1431],{},"What you can do is stop everyone signing in as the same account. If your bursar, your receptionist\nand your head teacher all use one shared admin login, you have no record of who did anything, and\nevery control above collapses to nothing. Separate accounts with separate permissions cost nothing\nand give you an audit trail with real names on it.",[12,1433,1434],{},"Then split the sensitive permissions, even across only two people. Recording a payment and voiding a\nreceipt do not have to sit with the same person. Neither do voiding and verifying. In a two-person\noffice you will not achieve full separation, and you should not pretend otherwise, but moving the\nvoid permission to the head teacher alone is a meaningful control that takes about a minute to\nconfigure.",[19,1436,1438],{"id":1437},"what-to-do-this-term","What to do this term",[12,1440,1441],{},"If you are starting from a notebook and a shared login, do not attempt all four at once. In order of\nvalue for effort:",[1443,1444,1445,1448,1451,1454],"ol",{},[122,1446,1447],{},"Give every member of staff their own account. One afternoon, no cost, and it makes everything\nelse possible.",[122,1449,1450],{},"Turn on automatic receipts to parents. Immediate effect, no process change for your staff.",[122,1452,1453],{},"Move the void permission away from whoever records payments day to day.",[122,1455,1456],{},"Start reviewing the verification queue on a fixed day each week. Friday afternoon works well\nbecause the week's bank statement is available.",[12,1458,1459],{},"None of this makes fraud impossible. It is not meant to. It means that a mistake surfaces in days\nrather than months, while it is still small enough to fix and while everyone still remembers what\nhappened.",[12,1461,637,1462,1466,1467,1471],{},[773,1463,1465],{"href":1464},"\u002Fdocs\u002Ffees","Fee Management docs"," cover how each of these works in 1410SMS, and\n",[773,1468,1470],{"href":1469},"\u002Fdocs\u002Froles-permissions","Roles & Permissions"," covers splitting the sensitive ones.",{"title":159,"searchDepth":160,"depth":160,"links":1473},[1474,1475,1476,1477,1478],{"id":1338,"depth":163,"text":1339},{"id":1358,"depth":163,"text":1359},{"id":1405,"depth":163,"text":1406},{"id":1421,"depth":163,"text":1422},{"id":1437,"depth":163,"text":1438},"Finance","2026-07-27","Most money lost in a school office is not stolen. It goes missing because one person recorded it, nobody checked, and the mistake was found six weeks later. Here are four controls that catch it early.",{},"\u002Fblog\u002Fschool-fee-controls-that-actually-work",{"title":1324,"description":1481},"blog\u002Fschool-fee-controls-that-actually-work",[1487,1094,1488],"fees","security","IoIa-XgvPT3ngur0kNIb7s2r4sqkgv2rmnWOOGAMqFk",{"id":1491,"title":1492,"author":7,"body":1493,"category":288,"date":1600,"description":1601,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":1602,"navigation":174,"ogImage":172,"path":1603,"seo":1604,"stem":1605,"tags":1606,"updated":172,"__hash__":1608},"blog\u002Fblog\u002Fhidden-cost-of-manual-school-administration.md","The Hidden Cost of Manual School Administration",{"type":9,"value":1494,"toc":1592},[1495,1498,1501,1505,1508,1511,1514,1518,1521,1535,1538,1541,1545,1548,1551,1554,1558,1561,1564,1568,1571,1574,1577,1581,1584,1589],[12,1496,1497],{},"Ask a school owner what their administration costs and you will usually get a figure for\nstationery, printing and maybe a bursar's salary. That is the visible part. The larger cost sits in\nthe hours, and nobody bills for those, so nobody counts them.",[12,1499,1500],{},"Here is the shape of it.",[19,1502,1504],{"id":1503},"the-cost-of-answering-simple-questions","The cost of answering simple questions",[12,1506,1507],{},"A parent calls on a Tuesday afternoon. They want to know two things: what their son still owes, and\nhow many days he has missed this term.",[12,1509,1510],{},"In a school running on paper, neither answer exists yet. Somebody has to build it. The fee balance\nmeans finding the right receipt book or the right tab in the right spreadsheet, then checking it\nagainst whatever was recorded at the gate during fee week. The attendance figure means counting\nmarks in a register by hand, one day at a time.",[12,1512,1513],{},"Call it eight minutes. That is not a disaster on its own. But a school of 400 students fields that\ncall, or one like it, several times a day through a busy term. Eight minutes, twenty times a week,\nis close to three hours. Every week. For an answer the school already technically has.",[19,1515,1517],{"id":1516},"reports-get-produced-late-or-not-at-all","Reports get produced late, or not at all",[12,1519,1520],{},"Most heads of school want the same four things regularly:",[119,1522,1523,1526,1529,1532],{},[122,1524,1525],{},"Who is behind on fees, and by how much",[122,1527,1528],{},"Which classes have an attendance problem",[122,1530,1531],{},"How enrolment is tracking against last term",[122,1533,1534],{},"Which subjects are underperforming",[12,1536,1537],{},"On a manual system each of these is a small project. Somebody pulls figures from two or three\nplaces, checks them against each other, finds a discrepancy, chases it down, then formats the\nresult. By the time it lands, the term has moved on.",[12,1539,1540],{},"So in practice these reports get requested when something has already gone wrong. The school ends\nup managing by exception rather than by observation, which is a much more expensive way to run\nanything.",[19,1542,1544],{"id":1543},"reconciliation-is-where-the-money-leaks","Reconciliation is where the money leaks",[12,1546,1547],{},"Fee collection is the part that actually costs schools money, not just time.",[12,1549,1550],{},"The failure is almost never the first entry. A bursar who records a payment records it correctly.\nThe failure is the second entry: the summary sheet that was supposed to be updated afterwards and\nwas not, because the queue at the desk was twelve parents long and it was the first week of term.",[12,1552,1553],{},"Now two numbers disagree. Nobody notices until a parent produces a receipt for a payment the school\nhas no record of, and at that point the school has a choice between an argument and a write-off.\nBoth are expensive, and the second one is invisible in the accounts.",[19,1555,1557],{"id":1556},"what-growth-does-to-all-of-this","What growth does to all of this",[12,1559,1560],{},"Schools usually adopt spreadsheets for good reasons. They are free, everyone understands them, and\nat 80 students they genuinely work.",[12,1562,1563],{},"The problem is that the workload does not scale with student numbers. It scales with student\nnumbers multiplied by the number of things you track per student. Double the enrolment and add\nper-subject assessment breakdowns, and the admin burden goes up by considerably more than double.\nThat is why so many schools describe a specific term where administration stopped being manageable,\nrather than a gradual decline.",[19,1565,1567],{"id":1566},"what-this-is-not-about","What this is not about",[12,1569,1570],{},"It is worth saying plainly: none of this is an argument for replacing staff with software.",[12,1572,1573],{},"Schools that digitise well do not end up with fewer administrators. They end up with administrators\nwho spend their week on admissions conversations, fee negotiations with families in difficulty, and\nfollowing up the students who are quietly slipping, instead of on assembling numbers by hand.",[12,1575,1576],{},"The work that gets removed is the work nobody wanted to do anyway.",[19,1578,1580],{"id":1579},"a-reasonable-test","A reasonable test",[12,1582,1583],{},"If you are trying to judge whether your current setup is costing you more than it looks, one\nquestion tends to settle it:",[12,1585,1586],{},[36,1587,1588],{},"How long does it take to answer \"which students owe money, right now, across the whole school\"?",[12,1590,1591],{},"If the answer is under a minute, your system is fine and you should keep it. If it involves opening\nseveral files, or asking a specific person who happens to know where things are, you already know\nwhat it is costing you. You have just never had a reason to add it up.",{"title":159,"searchDepth":160,"depth":160,"links":1593},[1594,1595,1596,1597,1598,1599],{"id":1503,"depth":163,"text":1504},{"id":1516,"depth":163,"text":1517},{"id":1543,"depth":163,"text":1544},{"id":1556,"depth":163,"text":1557},{"id":1566,"depth":163,"text":1567},{"id":1579,"depth":163,"text":1580},"2026-07-05","The cost of running a school on paper and spreadsheets is rarely the paper. It is the hours your staff spend assembling answers that the system should already know.",{},"\u002Fblog\u002Fhidden-cost-of-manual-school-administration",{"title":1492,"description":1601},"blog\u002Fhidden-cost-of-manual-school-administration",[1094,1607],"buying-guide","0AphcSraqtpIwmvNTCcCGQ0lxR-78WzK9Y7FO558Hpw",{"id":1610,"title":1611,"author":7,"body":1612,"category":288,"date":1716,"description":1717,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":1718,"navigation":174,"ogImage":172,"path":1719,"seo":1720,"stem":1721,"tags":1722,"updated":172,"__hash__":1723},"blog\u002Fblog\u002Fchoosing-school-management-software-checklist.md","Choosing School Management Software: A Practical Checklist",{"type":9,"value":1613,"toc":1708},[1614,1617,1620,1624,1627,1630,1634,1637,1640,1644,1647,1654,1658,1672,1675,1679,1682,1685,1689,1692,1695],[12,1615,1616],{},"Glanced at quickly, most school management systems look the same. Students, grades, attendance,\nfees, a parent portal, and a features page that reads like every other features page.",[12,1618,1619],{},"The differences show up about four months in, once a school is genuinely running on the thing. Here\nare the questions worth asking before that point rather than after it.",[19,1621,1623],{"id":1622},"can-you-try-it-without-a-card-and-without-a-sales-call","Can you try it without a card and without a sales call?",[12,1625,1626],{},"If evaluating a system requires booking a demo and entering card details, what you are evaluating is\na sales process.",[12,1628,1629],{},"A real free tier, running the actual platform rather than a cut-down trial, lets your own staff form\nan opinion using your own students before anybody commits budget. That is a far better signal than a\nguided walkthrough, because the things that irritate people daily never come up in a guided\nwalkthrough.",[19,1631,1633],{"id":1632},"is-your-data-actually-isolated","Is your data actually isolated?",[12,1635,1636],{},"For any platform hosting more than one school, ask plainly: is my school's data isolated from every\nother school at the database level, on every plan?",[12,1638,1639],{},"What you want is a design property rather than a policy commitment. Policies change with management.",[19,1641,1643],{"id":1642},"what-happens-to-the-records-you-already-have","What happens to the records you already have?",[12,1645,1646],{},"Every school switching systems arrives with history: students, staff, and usually several terms of\ngrades, nearly always in spreadsheets.",[12,1648,1649,1650,1653],{},"Bulk import from CSV or XLSX, with validation that shows you the errors ",[66,1651,1652],{},"before"," anything is saved,\nis the difference between a weekend of setup and a term of retyping. Ask to see the import screen\nduring evaluation. It is the most revealing screen in any of these systems and it is almost never in\nthe demo.",[19,1655,1657],{"id":1656},"does-every-role-get-a-portal-or-only-the-office","Does every role get a portal, or only the office?",[119,1659,1660,1663,1666,1669],{},[122,1661,1662],{},"Admins need the whole picture: enrolment, staff, fees, analytics",[122,1664,1665],{},"Teachers need to record grades and attendance without friction, because they will do it a few\nhundred times a term",[122,1667,1668],{},"Students need their own results and timetable",[122,1670,1671],{},"Parents need attendance, grades and fee position without phoning anyone",[12,1673,1674],{},"A system that serves the front office well and everyone else badly ends up being used only by the\nfront office. Then you are paying for software and still running the school on WhatsApp.",[19,1676,1678],{"id":1677},"what-does-it-cost-once-you-grow","What does it cost once you grow?",[12,1680,1681],{},"Look past the entry price. Work out what you would pay at 100 students, at 250, and at 1,000.",[12,1683,1684],{},"Watch particularly for features withheld from lower tiers rather than priced by scale. Paying more\nas you grow is reasonable. Discovering that report cards were an add-on is not.",[19,1686,1688],{"id":1687},"one-more-question","One more question",[12,1690,1691],{},"Ask who answers the phone when something breaks during fee week.",[12,1693,1694],{},"It is an unglamorous question, and it will tell you more about the next three years than any feature\ncomparison.",[12,1696,1697,1698,1702,1703,1707],{},"This list is not exhaustive, but these questions tend to surface real differences rather than\nmarketing copy. Our own answers are on the ",[773,1699,1701],{"href":1700},"\u002Fpricing","Pricing"," and ",[773,1704,1706],{"href":1705},"\u002Ffaq","FAQ"," pages.",{"title":159,"searchDepth":160,"depth":160,"links":1709},[1710,1711,1712,1713,1714,1715],{"id":1622,"depth":163,"text":1623},{"id":1632,"depth":163,"text":1633},{"id":1642,"depth":163,"text":1643},{"id":1656,"depth":163,"text":1657},{"id":1677,"depth":163,"text":1678},{"id":1687,"depth":163,"text":1688},"2026-06-29","The questions that actually determine whether a school management system will still be in use a year from now, rather than the ones answered on the features page.",{},"\u002Fblog\u002Fchoosing-school-management-software-checklist",{"title":1611,"description":1717},"blog\u002Fchoosing-school-management-software-checklist",[1607,1094],"rjtZdoyg_OrgsGc-Y1pQ3MDoqZlA12ByeHeoqe_t6dg",{"id":1725,"title":1726,"author":7,"body":1727,"category":167,"date":1814,"description":1815,"draft":170,"extension":171,"featured":170,"image":172,"imageAlt":172,"meta":1816,"navigation":174,"ogImage":172,"path":1817,"seo":1818,"stem":1819,"tags":1820,"updated":172,"__hash__":1821},"blog\u002Fblog\u002Fattendance-paper-vs-software.md","Paper Attendance Registers vs Software: What Actually Changes",{"type":9,"value":1728,"toc":1808},[1729,1732,1735,1739,1742,1745,1748,1752,1755,1758,1761,1764,1768,1782,1785,1789,1792,1795],[12,1730,1731],{},"Marking a class register by hand takes about two minutes, and most teachers can do it while doing\nsomething else. So the case for attendance software is rarely that marking gets faster. It does not.",[12,1733,1734],{},"The case is about what happens to that mark afterwards. On paper, usually nothing happens to it\nuntil somebody needs it, at which point it involves flipping through a lot of pages.",[19,1736,1738],{"id":1737},"a-register-is-only-as-useful-as-its-totals","A register is only as useful as its totals",[12,1740,1741],{},"In principle a paper register holds everything you could want: who was present, on which day, all\nterm.",[12,1743,1744],{},"In practice, turning that into \"this student's attendance rate is 78%\" or \"which class has the worst\nattendance this month\" means somebody counting by hand. So the question only gets asked once there\nis already a problem worth the counting.",[12,1746,1747],{},"Once the same daily mark rolls up automatically into a per-student rate and a per-class breakdown,\nthe cost of asking drops to nothing. That changes how often it gets asked, which is the actual\nbenefit.",[19,1749,1751],{"id":1750},"patterns-are-easier-to-miss-than-absences","Patterns are easier to miss than absences",[12,1753,1754],{},"A student who misses three days in a row is visible. Someone notices and someone calls home.",[12,1756,1757],{},"A student who is absent one day a week, every week, for a whole term is much harder to spot on\npaper. The register looks unremarkable on any given page. You only see it if you count, and nobody\ncounts unless prompted.",[12,1759,1760],{},"That student has missed around twelve days by the end of term, which is four times the absence that\ntriggered the phone call.",[12,1762,1763],{},"Alerting a parent on the day a student is newly marked absent, rather than at a report card meeting\nten weeks later, is a small mechanical change with a disproportionate effect on how early problems\nsurface.",[19,1765,1767],{"id":1766},"different-people-need-different-things-from-the-same-mark","Different people need different things from the same mark",[119,1769,1770,1773,1776,1779],{},[122,1771,1772],{},"A class teacher wants roll call to take thirty seconds and then be done with it",[122,1774,1775],{},"A head of school wants to compare classes across terms without asking anyone to tally registers",[122,1777,1778],{},"A parent wants their own child's rate without phoning the office",[122,1780,1781],{},"A welfare or admissions conversation needs an exact, defensible number rather than \"roughly\"",[12,1783,1784],{},"A paper register serves the first of those well and the other three badly.",[19,1786,1788],{"id":1787},"the-honest-summary","The honest summary",[12,1790,1791],{},"Going digital does not change what a teacher does each morning. It changes what the mark becomes\nafterwards: a rate, a trend, an alert and a portal view, without anyone doing arithmetic.",[12,1793,1794],{},"If your school already produces reliable per-class attendance figures every term, you are getting\nmost of this value already and the software matters less. If those figures only appear once\nsomething has gone wrong, that gap is the thing worth fixing.",[12,1796,1797,1798,1802,1803,1807],{},"For how this works in 1410SMS specifically, see ",[773,1799,1801],{"href":1800},"\u002Fdocs\u002Fattendance","Attendance Tracking"," and\n",[773,1804,1806],{"href":1805},"\u002Fdocs\u002Fattendance-analytics","Attendance Analytics"," in the docs.",{"title":159,"searchDepth":160,"depth":160,"links":1809},[1810,1811,1812,1813],{"id":1737,"depth":163,"text":1738},{"id":1750,"depth":163,"text":1751},{"id":1766,"depth":163,"text":1767},{"id":1787,"depth":163,"text":1788},"2026-06-22","Marking attendance is not the hard part. Everything that is supposed to happen afterwards is. Here is what changes when the register stops being paper.",{},"\u002Fblog\u002Fattendance-paper-vs-software",{"title":1726,"description":1815},"blog\u002Fattendance-paper-vs-software",[432,1094],"lwyCXacrk87oTukAD8Qmdu-KvOz8ycBgx_Oz4XQycW8",{"id":1823,"title":1824,"author":7,"body":1825,"category":1479,"date":1907,"description":1908,"draft":170,"extension":171,"featured":174,"image":172,"imageAlt":172,"meta":1909,"navigation":174,"ogImage":172,"path":1910,"seo":1911,"stem":1912,"tags":1913,"updated":172,"__hash__":1914},"blog\u002Fblog\u002Fdigitise-school-fee-collection.md","How to Digitise School Fee Collection Without Losing Control",{"type":9,"value":1826,"toc":1900},[1827,1830,1833,1837,1840,1843,1847,1850,1853,1856,1860,1863,1866,1870,1884,1888,1891,1894],[12,1828,1829],{},"Almost nobody starts with a fee management system. Schools start with a notebook, then a\nspreadsheet, then several spreadsheets, one per class or one per term.",[12,1831,1832],{},"That works for a while. Then a payment gets recorded on the wrong sheet, or a parent insists they\npaid and nobody can find the entry, or the bursar turns out to be the only person who understands\nwhat the third tab means. None of this reflects badly on the school. It is simply what happens when\na manual system outgrows the number of people checking it by hand.",[19,1834,1836],{"id":1835},"bundle-the-fees-rather-than-tracking-them-one-at-a-time","Bundle the fees rather than tracking them one at a time",[12,1838,1839],{},"A school term rarely involves a single fee. There is tuition, and then uniforms, PTA dues, lab fees,\nexam fees, excursions. Each is easy enough to track on its own and genuinely painful to reconcile\ntogether.",[12,1841,1842],{},"The fix is not a bigger spreadsheet. It is treating a student's fees for a term as one invoice with\nseveral line items and a single balance. Whoever collects payment then has one question to answer\nrather than six: how much does this student still owe in total, right now.",[19,1844,1846],{"id":1845},"make-the-balance-update-itself","Make the balance update itself",[12,1848,1849],{},"The usual point of failure in a manual system is not the first entry. It is the second one.",[12,1851,1852],{},"Somebody records a payment correctly in the receipt book, then does not update the summary sheet,\nbecause there are eleven parents waiting and it is the first week of term. Two numbers now disagree,\nand nobody finds out until a parent produces a receipt for something the school has no record of.",[12,1854,1855],{},"When recording a payment updates the balance directly, rather than requiring a second manual step,\nthat entire category of error stops existing. This is the single highest-value change on the list,\nand it is worth prioritising over everything else here.",[19,1857,1859],{"id":1858},"let-parents-look-it-up-themselves","Let parents look it up themselves",[12,1861,1862],{},"\"How much do I still owe?\" is one of the most common questions any school office fields, and it is\nnearly always answerable without a phone call.",[12,1864,1865],{},"Give the parent a portal showing their child's current fee position, send the invoice by email or\nWhatsApp when it is issued, and send a receipt when it is paid. A good share of the back-and-forth\nduring a busy term simply stops.",[19,1867,1869],{"id":1868},"what-this-looks-like-in-1410sms","What this looks like in 1410SMS",[119,1871,1872,1875,1878,1881],{},[122,1873,1874],{},"One invoice per student per term, bundling every fee type into a single balance",[122,1876,1877],{},"A running balance that updates the moment a payment is recorded, with no second sheet to reconcile",[122,1879,1880],{},"Optional automatic notifications to parents by email or WhatsApp for invoices, receipts and\noverdue reminders",[122,1882,1883],{},"Import of existing records from CSV or XLSX, so switching does not mean re-entering a term of data",[19,1885,1887],{"id":1886},"start-small","Start small",[12,1889,1890],{},"None of this needs to happen at once, and a mid-term switch is usually a bad idea.",[12,1892,1893],{},"Schools up to 40 students run on the free plan indefinitely, so the low-risk version is to run one\nterm in parallel: keep the existing spreadsheet as the record of truth, enter the same data in both,\nand compare at the end. If the numbers match and the office prefers the new one, move everyone over\nat the start of the following term.",[12,1895,637,1896,1899],{},[773,1897,1898],{"href":1464},"Fee Management section of the docs"," covers the detail.",{"title":159,"searchDepth":160,"depth":160,"links":1901},[1902,1903,1904,1905,1906],{"id":1835,"depth":163,"text":1836},{"id":1845,"depth":163,"text":1846},{"id":1858,"depth":163,"text":1859},{"id":1868,"depth":163,"text":1869},{"id":1886,"depth":163,"text":1887},"2026-06-15","A practical path from tracking fees in a notebook or spreadsheet to a system that bundles every fee, keeps every balance current, and tells parents where they stand.",{},"\u002Fblog\u002Fdigitise-school-fee-collection",{"title":1824,"description":1908},"blog\u002Fdigitise-school-fee-collection",[1487,1094],"hqq-IsXAxAhTGnkqRKDpTKcGPy4zEEOXPTlwOz11_9k",1787681163865]