middleschool.softwareBook a conversation

middleschool.software · Built for the middle grades, 6–8 · Early access · 2026

Run the middle grades — first electives, advisory, and every activity in one place.

Middle school is its own stage: the years a student first picks an elective, first joins a team or a club, first runs their own schedule — anchored by a small advisory group while the school catches early wobbles. This platform is built for exactly that: course requests where prerequisites advise instead of block and a full class waitlists instead of dropping, advisory and team/house grouping, clubs and first teams with the child-safety rails on, standards-based report cards, counselor and MTSS supports, and the promotion and records hand-off up to high school. It is a for-profit platform FOR middle schools — not a school itself. Money is honest-off; a conversation is the honest next step.

Their first electivescourse requests with advisory prerequisites — a full class waitlists, it never silently drops
Advisory holds togetherthe master-schedule solver keeps team/house cohorts intact — over opaque keys, never a student name
Safety rails onfail-closed physical clearance, chaperone screening, and consent-gated activity sign-ups
$0 student-records tierroster, gradebook, standards report cards, and scheduling settle no money
One team, one viewan adviser's console rolls up roster, wobbles, clubs, and family messages — no silo per feature

How it works

A middle school, from set-up to the move up — in four steps

Every step is described as it is built today, with the honest-off holds called out where they exist.

Step 1 · Set up the school — recognised as a middle school, records tier free

The platform stands up the school's vertical and charges nothing to do it — the student-records tier settles no money. From day one the school's roster and student data is school-owned, under the school's own brand and contact, not the platform's. No live billing, no subscription.

Step 2 · Build the schedule & the advisory groups

Students submit course requests — their first electives — with advisory prerequisites surfaced and over-capacity classes waitlisted, never dropped. The deterministic solver builds the master schedule against the bell structure, rooms, and teachers, keeping team/house advisory cohorts together and leaving anything it cannot place clearly unplaced with a reason. Lunch waves and activity periods book against the same fixed-slot capacity law as picture day — an opaque slot key, an exact integer capacity, never a time-window guess. It sees opaque section and cohort keys, never a student name, and it is never a high-school transcript or credit-hour engine.

Step 3 · Run the middle-grades day

The gradebook and standards-based report cards report mastery by skill. Clubs, activities, and first teams run behind the child-safety rails — consent-and-capacity sign-ups, fail-closed physical clearance, and chaperone screening that denies by default. Counselor caseload and MTSS supports catch early wobbles on the strictest privacy lane. An adviser's team-view console rolls the advisory roster, each student's attendance-intervention picture, club membership, and family-message status into one place — a guardian letter is generated and queued honestly, never faked as mailed. Picture day is scheduled from an adviser cockpit, and the year's photos flow toward the yearbook.

Step 4 · Move them up — promotion and the records hand-off to high school

At year-end the registrar runs advisory promotion / retention against a recorded policy basis, and packages each rising student's cumulative record for transfer — logged as a FERPA disclosure — up to the high school. We provide the mechanism; a human in the records office still owns the decision and signs the record.

What is built

Six middle-grades capabilities — each traced to real code

Every capability is labelled honestly: Built means the underlying engine exists and is production-ready. Where a run, an input surface, or money is held, the label says so — and money is honest-off across all of it today.

Pick your classes — the first time the choice is theirs

Middle school is where a student first chooses: band or art, a world language, a STEM or maker elective. The course-request flow is built to be theirs to drive. A request is prerequisite-aware, but the prerequisite gate is ADVISORY — an unmet prereq is SURFACED for a registrar to weigh, never a silent hard block. An over-capacity elective is WAITLISTED, never quietly dropped and never pushed past the cap. Requests are open only inside the registration window (a missing or malformed window fails CLOSED), and every request is fail-closed on authorization. Behind the requests, a deterministic whole-timetable solver places sections against the bell structure, rooms, and teacher availability — honoring team/house grouping — and leaves an unplaceable section UNPLACED with an explainable reason rather than forcing it into a clash. It reasons over structure only: opaque section and cohort keys, never a student name.

Built · advisory prereqs · waitlist not drop

The middle-school day — not a high-school master schedule

A middle-grades day is its own shape: a rotation of core and exploratory classes, an advisory block, one or two lunch waves, and an activity period — not a high-school transcript engine. We say that on purpose: there is no credit-hour ledger here, no GPA weighting, and no transcript-driven course sequencing anywhere in the platform, because the middle grades don't run on one. A lunch wave or an activity-period block is booked with the same fixed-slot capacity law already used for picture-day and admissions-interview scheduling — a slot is keyed by an opaque identity (a wave, a room, a block), capacity is an exact integer (a capacity of zero is a valid, always-full slot), and a seat is only ever counted by an exact key match, never a time-window guess. Full-day placement — rotations, exploratory courses, and the advisory block sitting against rooms and teacher availability — is the same deterministic master-schedule solver the course-request pillar already describes. One capacity-slot law, one solver, no borrowed high-school baggage.

Built · capacity-slot law · no credit/GPA machinery

Advisory, teams & houses — a small group that knows every kid

The middle-grades day is anchored by a small advisory or homeroom group, and many schools organize the grade into teams or houses. The master-schedule solver treats team/house grouping as a first-class structural constraint, so an advisory cohort holds together across the timetable — expressed as an opaque cohort slug, never a student identity. On top of that grouping sits an SEL substrate: social-emotional curriculum units, staff-facing competency screeners, and a deterministic dashboard roll-up with no AI, no sentiment scoring, and no model anywhere — every band is a pure function of staff-recorded facts. Honest-off, on purpose: the STUDENT-facing check-in / mood INPUT surface is held pending consent and counsel — it stores nothing and scores nothing today. The advisory grouping and the staff-facing SEL screeners are built; the student mood-input surface is honest-off.

Built · student mood-input surface honest-off

One team, one adviser view — roster, wobbles, clubs, and family messages together

An adviser shouldn't have to open four tabs to know their own team. The console rolls up, per team/house cohort: the advisory roster itself (the same team/house cohort key the master-schedule solver already holds together); each student's attendance-intervention picture — a chronic-absence band, a tier recommendation that is a data-trend FLAG for the team to weigh (the engine NEVER auto-refers a case to court — refersToCourt is always literal false, a human-review flag, never an auto-file), and a truancy flag, all over opaque student references, staff-only and denied to a minor session; club and activity membership for the team's own students, read through the same consent gate the clubs engine defends everywhere else — a suppressed, do-not-publish student's name is stripped from the roster and the count stays honest rather than silently wrong, and only an adviser on the allowlist can open it; and family messages as a first-class, honestly-labelled status, not a silo. A guardian letter routes through the identical consent chokepoint that gates the club roster, reports zero-recipients or suppressed plainly rather than faking a send, and — honest-off, on purpose — a letter is generated and queued, never claimed as mailed, until a print/mail provider is provisioned. One team. One adviser view. Every column as consent-honest as the rest of this page.

Built · staff-only · letters queued not mailed

Clubs, activities & first teams — with the safety rails on

This is the first taste of clubs, activities, and interscholastic teams, so the child-safety rails matter more here than anywhere. Event and trip sign-ups are consent-and-capacity gated and fail closed — no positive consent means no sign-up, and a full activity waitlists rather than overflows. Athletic eligibility folds academic, physical, and forms axes into one roster view that NEVER auto-denies a kid: any missing or ambiguous input resolves to needs-review for the athletic director, never to ineligible. A physical-clearance record is fail-closed the other way — no current, valid physical means not cleared to play, and the private medical detail behind that yes/no is walled behind health-records consent. Field-trip chaperone assignment reads a recorded background-check status and denies by default without a real, current clearance. Honest-off: the background-CHECK RUN itself stays off until a licensed provider is provisioned — the engine reads a screening, it does not perform one — and the spirit store settles no money on this site.

Built · screening-run & money honest-off

Gradebook & standards-based report cards — mastery, not just a letter

Middle grades are where many schools report by skill rather than by a single letter. The gradebook is built, and on top of it a standards-based report-card model rolls up mastery PER standard from the tagged proficiency the gradebook already produced — deterministically, as a REPORT MODEL over the existing gradebook, not a second parallel gradebook and not a new student table. A student is referenced by an opaque roster id; the report is surfaced through a consent gate. Report-card comments are supported. Honest scope: this is an enrollment-and-records daily-driver that COMPLEMENTS a school's system of record — it is not a certified, full academic system-of-record. We say so rather than imply a certification we do not hold.

Built · consent-gated · records tier free

Counselor & MTSS — catch a wobble early, keep the record private

The middle grades are when a small slip can compound, so the supports that catch it early are core. The MTSS / RTI substrate carries a student's tier (1 universal / 2 targeted / 3 intensive), the intervention, its frequency, and progress-monitoring data points — and it is ADVISORY: a tier-recommendation is a data-trend FLAG the team reviews, never a tier the system moves on its own. The counselor caseload surface mounts confidential notes under a FERPA sole-possession rule with fail-closed authorization. Attendance-intervention flags truancy risk, and a dyslexia screener is built. All of it is sensitive child PII on the strictest privacy lane — consent-gated, walled, and never made public. It tracks and flags; it does not diagnose, and nothing here is medical or legal advice.

Built · advisory · privacy-walled

The move up to high school — promotion & records that follow the student

Middle school ends with a transition, and the platform is built for that hand-off. Year-end promotion / retention is ADVISORY: it never auto-retains a student without a recorded policy basis — the registrar owns the decision, and the promotion roll-up is a cohort advisory, not an action. When a student moves up (or moves schools mid-year), a records transfer packages the cumulative education record and logs it as a FERPA 99.32 disclosure on an append-only basis — because transferring a student's record IS a disclosure, and it should be recorded as one. Both flows are registrar / records-office only, both are the highest-sensitivity FERPA class, and neither uses AI. This is the one high-school-facing capability the page claims: the bridge up, not a high-school transcript or GPA product.

Built · advisory promotion · FERPA-logged transfer

For middle schools

Built for the stage, not re-labelled for it

The first schedule that is theirs

Picking an elective is a rite of passage in the middle grades. The course-request flow makes it a real choice: prerequisites advise instead of block, a full class waitlists instead of dropping, and the deterministic solver builds the whole timetable while keeping advisory and team cohorts together. It reasons over opaque section and cohort keys — never a student name.

Activities with the rails on

First clubs, first teams, first field trips — and the child-safety rails matter most here. Consent-and-capacity sign-ups, athletic eligibility that resolves ambiguity to needs-review rather than auto-denying a kid, fail-closed physical clearance with the medical detail walled, and chaperone assignment that denies by default without a real clearance. The background-check RUN is honest-off until a licensed provider is provisioned.

Catch a wobble, then hand them up

Standards-based report cards report mastery by skill; counselor caseload and the MTSS substrate catch early slips on the strictest privacy lane, advising a team and never moving a tier on their own. At year-end, advisory promotion and a FERPA-logged records transfer move each rising student up to the high school.

To book a conversation: [email protected].

One team, one adviser view

An adviser shouldn't need four tabs to know their own team. The team-view console rolls up the advisory roster, each student's attendance-intervention picture — a chronic-absence band and a tier recommendation that is a data-trend FLAG the team reviews, never an auto-referral to court — club and activity membership read through the same consent gate that protects it everywhere else, and family-message status. A guardian letter routes through that identical consent chokepoint and is generated and queued honestly, never faked as mailed. Staff-only, denied to a minor session.

A middle-school day, not a high-school transcript

Rotations, exploratory courses, an advisory block, lunch waves, and an activity period — that is the shape of a middle-grades day, and it stays that shape. There is no credit-hour ledger, no GPA weighting, and no transcript-driven sequencing anywhere in the platform. A lunch wave or activity period books through the same fixed-slot capacity law already used for picture day; full-day placement runs through the same deterministic master-schedule solver as the course-request flow.

What is built and what is honest-off — plainly

The course-request, scheduling, activities, records, and supports engines are built. Some runs, one input surface, and money are held.

Built and wired today: course requests with advisory prerequisites and waitlist-not-drop; the deterministic whole-timetable master-schedule solver with team/house grouping; lunch waves and activity periods on the same fixed-slot capacity law as picture day, with no credit-hour or GPA machinery anywhere in the platform; advisory cohort grouping and the staff-facing SEL screeners; an adviser's team-view console rolling up roster, attendance-intervention flags, club membership, and family-message status behind the same consent chokepoint used everywhere else; clubs, activities, and first teams behind consent-and-capacity sign-ups, fail-closed athletic physical clearance, and chaperone assignment; the gradebook and standards-based report cards; counselor caseload and the MTSS / RTI substrate; and year-end promotion plus the FERPA-logged records transfer up to high school.

Honest-off — present but not enabled for live use: all money (no live billing, no subscription, no live payment, and the spirit store settles nothing); the background-CHECK RUN (the engine reads a recorded screening status; it does not perform a background check — that stays off until a licensed provider is provisioned); and the STUDENT-facing SEL check-in / mood INPUT surface (held pending consent and counsel; it stores nothing and scores nothing). We do NOT diagnose a student, and we do NOT lead with a high-school transcript or GPA product — the one high-school-facing capability is the transition hand-off. No school is running a live middle-grades program on middleschool.software yet. A conversation is the honest next step. Nothing here is legal or medical advice.

The platform underneath

Built on the school publishing platform

middleschool.software is the middle-grades front door on a broader school platform. The same platform runs enrollment, student records, scheduling, communications, and yearbooks for schools of every stage; homeroom.software is the publishing platform it is built on, and yearbook.sale is where a family reserves the school’s yearbook. middleschool.software is a for-profit product — a software vendor serving middle schools, not a school, district, or nonprofit itself.

Early access · Middle-school leaders, counselors, advisers, and families · See the current state honestly

Book a conversation

middleschool.software is in active development. No school is running a live middle-grades program on middleschool.software yet. We do conversations that show the current state honestly: how course requests and the master-schedule solver work, how advisory and team grouping hold together, how the activity safety rails, standards report cards, and MTSS supports behave, how the move-up records transfer is logged, and exactly what is built versus honest-off. There is no pricing commitment and no signup. If it looks right for your school, we discuss what early access looks like.

To book: email [email protected].

FAQ

Common questions

Is middleschool.software a school, a district, or a nonprofit?

No. middleschool.software is a for-profit software company — a vendor whose product is this platform for middle schools. It is not a school, not a district, and not a nonprofit. Middle schools are (mostly) public schools; the software that serves them is a for-profit product. We are precise about the difference because it matters: nothing we run is a public entity, and this site sells software, not donations.

Why build for the middle grades specifically — isn't a school a school?

The middle grades are their own stage. It is the years a student first chooses electives, first joins a team or a club, first runs their own schedule, and is anchored by a small advisory group while the school watches for early wobbles. It is not the early grades, and it is not yet high school. So the capabilities here are shaped like that stage — course requests, advisory and team grouping, activities with the safety rails on, standards-based report cards, MTSS supports, and the hand-off up — rather than a generic feature list re-labelled for middle school.

Can students pick their own electives?

Yes — that is the flagship. The course-request engine lets a student (or parent) request next term's classes, including their first electives. Prerequisites are ADVISORY: an unmet prereq is surfaced for a registrar to weigh, not a silent hard block. An over-capacity elective is WAITLISTED, never silently dropped or pushed past the cap. Requests only open inside the registration window — and a missing or malformed window fails closed, never assumed open. A student-self request with an unmet prereq is recorded as requested, pending a human, never auto-approved.

Is this a high-school master schedule with credit hours and GPA?

No, and we say so on purpose. The middle-grades day is its own shape: a rotation of core and exploratory classes, an advisory block, lunch waves, and an activity period — not a transcript engine. There is no credit-hour ledger, no GPA weighting, and no transcript-driven course sequencing anywhere in the platform, because the middle grades don't run on one; that machinery simply does not exist in the codebase to claim. A lunch wave or activity-period block books through the same fixed-slot capacity law already used for picture-day scheduling — an opaque slot identity, an exact integer capacity (zero is a valid, always-full slot), and a seat counted by exact key match, never a time-window guess. Full-day placement of rotations and exploratory courses runs through the same deterministic master-schedule solver the course-request pillar describes — one capacity law, one solver, no borrowed high-school baggage.

How do advisory, teams, and houses work in the schedule?

The master-schedule solver treats team/house grouping as a first-class structural constraint, so an advisory or homeroom cohort holds together across the whole timetable. The solver is deterministic — the same problem and seed always yield the same schedule — and it reasons over structure only: opaque section, course, teacher, room, and cohort keys, never a student identity. A section it cannot place without a clash is left unplaced with an explainable reason, never force-placed.

Can an adviser see their whole team in one place — roster, wobbles, clubs, and family messages?

Yes — that is the console's whole point: one team, one adviser view, never a silo per feature. It rolls up the advisory roster (the same team/house cohort key the scheduler already holds together), each student's attendance-intervention picture (a chronic-absence band and a tier recommendation that is a data-trend FLAG for the team — the engine never auto-refers a case to court), the team's club and activity membership (read through the same consent gate the clubs pages use everywhere, so a suppressed student's name is stripped and the count stays honest), and a family-message status. A guardian letter routes through that identical consent chokepoint, reports zero-recipients or suppressed plainly instead of faking a send, and — honest-off — is generated and queued, never claimed as mailed, until a print/mail provider is provisioned. The console is staff-only and denied to a minor session.

Do you do social-emotional check-ins on students?

The SEL substrate is built for the STAFF side: curriculum units, staff-facing competency screeners, and a deterministic dashboard roll-up — with no AI, no sentiment scoring, and no model anywhere. The STUDENT-facing mood / check-in INPUT surface is honest-off: it is held pending consent and counsel, it stores nothing, and it scores nothing today. We would rather ship the honest scaffold than pretend a sensitive student-input surface is live before it is consented and reviewed.

How safe are clubs, activities, and first teams?

The rails are the point. Event and trip sign-ups are consent-and-capacity gated and fail closed — no positive consent, no sign-up; a full activity waitlists. Athletic eligibility folds academic, physical, and forms checks into one view that NEVER auto-denies a kid: any missing or ambiguous input resolves to needs-review for the athletic director. Physical clearance is fail-closed the other way — no current valid physical means not cleared — and the medical detail behind it is walled behind health-records consent. Chaperone assignment denies by default without a real, current clearance. Honest-off: the background-CHECK RUN stays off until a licensed provider is provisioned; the engine reads a recorded screening, it does not perform one.

Are these standards-based report cards, or letter grades?

Either — and standards-based is first-class. The report-card model rolls up mastery PER standard from the proficiency the gradebook already tagged, deterministically, as a report model over the existing gradebook rather than a second gradebook or a new student table. Report-card comments are supported, and the report is surfaced through a consent gate. Be clear-eyed, though: this is an enrollment-and-records daily-driver that complements your system of record; it is not a certified, full academic system-of-record.

How is counselor and MTSS data handled — and does the system move a tier on its own?

No, it never moves a tier on its own. The MTSS / RTI substrate carries the team-assigned tier and progress-monitoring data; a tier recommendation is a data-trend FLAG the team reviews, never a change the system applies. The counselor caseload surface holds confidential notes under a FERPA sole-possession rule with fail-closed authorization. All of it is sensitive child PII on the strictest privacy lane: consent-gated, walled, and never made public. It tracks and flags — it does not diagnose, and nothing here is medical or legal advice.

What happens when a student moves up to high school?

That transition is built for. Year-end promotion / retention is advisory: the system never auto-retains a student without a recorded policy basis — the registrar owns the decision. When a student rises (or transfers mid-year), a records transfer packages the cumulative education record and logs it as a FERPA 99.32 disclosure on an append-only basis, because transferring a record IS a disclosure. Both flows are records-office only and use no AI. This is the one high-school-facing thing we do: the hand-off up — not a high-school transcript or GPA product.

What does it cost to run enrollment, records, and the schedule?

The student-records tier settles no money — roster, gradebook, standards report cards, and scheduling are the free tier. There is no live billing here, no subscription, and no live payment: money is honest-off across the platform today, including the spirit store. If a school later turns on a fee-bearing module, that is a separate, opt-in decision. The records-and-scheduling daily-driver itself is free to run.

How is student and family data handled?

Student and family data is owned by the school and is never sold to or shared with outside companies, advertisers, or third parties. Data involving minor students is consent-gated — a family opts in before any disclosure — and consent can be withdrawn at any time. Minor student data runs on our own private systems and is never made public. The scheduling and master-schedule engines never even see a student name — they reason over opaque cohort keys.

How do we get started?

By a conversation, not a signup. middleschool.software is in active development, and no school is running a live middle-grades program on it yet. A conversation shows the current state honestly: how course requests and the master-schedule solver work, how advisory and team grouping hold together, how the activity safety rails and standards report cards behave, and exactly what is built versus honest-off. There is no pricing commitment and no signup. Email [email protected].