Spteca
πŸ—‚οΈ Admin β€” Daily Operations

The Admin Guide

You run the school day-to-day: teachers, students, the schedule, payments and communication. This guide follows the exact order that gets a school running β€” Teachers β†’ Availability β†’ Students β†’ Schedule β€” then covers every tool you'll use daily.

βž• The New buttonAt the top of the sidebar, + New opens the three things a school teaches: an Individual lesson (enrol a student in a private subject), a Group class (a class several students join) and a Program (one price covering several lessons). Click it β€” it does not open on hover, so it works the same on a tablet. Each option takes you straight to the form it creates.
🧭 How the menu worksThe sidebar is in sections β€” Calendar, Lessons, Students, Teachers, Money and Messages β€” with Settings and My account at the bottom. The section you are in stays open, so you always see where you are; point at any other section and its pages open beside it. Clicking a section's name takes you to its first page, so on a tablet one tap is enough. On a phone, tap a section in the menu to unfold it. Paths in this guide read Section β†’ Page, e.g. Money β†’ Student Payments.
πŸ“‹ Individual LessonsSidebar β†’ Lessons β†’ Individual Lessons lists every private arrangement in the school at once β€” student, subject, teacher, plan, weekly slots with their rooms, and start and end dates. Filter by teacher, subject, plan, status or weekday, and use the amber chips to find what needs attention: No teacher, No room, Missing a weekly slot, Ending within 30 days. Those only ever flag active enrolments. Tabs at the top switch between Individual, Group and Programs. To change an arrangement, open the student β€” this page finds, the student page edits.

10 Β· Programs

Sidebar β†’ Lessons β†’ Programs

A program is something you sell: several lessons for one price. "The Singing Pianist" might be 8 piano lessons, 4 vocal lessons and a term in the choir β€” one figure the family pays, whatever it contains.

A program is a product, not a classTwo students on the same program share nothing but the price and any group class in it β€” their piano lessons are different teachers at different times. So a program has no start date and no capacity of its own: each student buys it on their own date, and capacity belongs to the group class where it already lives.

Building one

Name it, choose a Program price plan (create one in School Settings β†’ Pricing Plans β€” it may be charged as one total or per term, never monthly), then add what it includes:

  • An individual lesson β€” subject, length, how many a week, how many in total, and what the teacher is paid for it. The count is required: a program is paid once, so a lesson with no end would run for ever against a price already collected.
  • A group class β€” pick one that already runs. You may leave its count blank; the class keeps its own schedule and pays its own teacher.

At the bottom, the economics: revenue, what the individual lessons cost you, and what the group classes cost. The group line does not multiply β€” you pay the choir's teacher once however many program students join it, which is why the fifth student is worth more than the first.

Enrolling a student

Open the program's roster and add a student with their own start date. For each individual lesson choose the teacher and either a weekly slot or pick the dates by hand; group classes need nothing, they are simply joined. Spoteca checks the lot before saving anything β€” the student's own lessons, the teachers', the rooms, the classes, and the program's items against each other.

πŸ’³ One invoice, not one per lessonEnrolling raises a single invoice for the program's total, listing what it covers β€” "8 Γ— Piano, 4 Γ— Vocal". If the plan is payable in parts, those are instalments under that one invoice, never separate bills. The group class never invoices a program student: their seat is paid for by the program.

Cancelling a place

Cancel on a roster row shows what has not been delivered β€” item by item β€” and suggests refunding that share of the price. The number is a suggestion; you confirm it. Lessons still to come are removed, class memberships end today, and the teacher's unpaid bills can be cancelled with it. Attendance and notes already recorded are kept.

The setup order (why it matters)

#StepWhy it can't be skipped
0Super Admin created a pricing planEnrollment requires a plan. If none exists, ask your Super Admin β€” see the Super Admin guide.
1Configure subjects & roomsTeachers and enrollments are organised by subject; lessons can be assigned to rooms.
2Add teachersA lesson always belongs to a teacher.
3Teachers set availabilityYou cannot book a slot the system doesn't know is free.
4Enroll studentsEnrollment = student + subject + teacher + slot + plan. Everything downstream (schedule, payments, attendance) flows from it.
Admin dashboard
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The Admin dashboard β€” your daily control room.

1 Β· Settings: subjects & policies

Sidebar β†’ Settings

The Subjects Offered list β€” the subjects your school teaches (Piano, Ballet, Karate, English…) β€” appears everywhere: teacher profiles, enrollment forms, the curriculum, the public join page. It starts empty for a new school, and it's managed by the school owner under Super Admin β†’ School Settings β†’ Subjects tab. If the owner enables "Allow Admins to Manage Subjects" in their Preferences, you can add and edit subjects right here in Settings too. This page also holds your studio rooms and school policies.

Admin settings
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Settings β€” subjects list and school policies.

2 Β· Rooms

Sidebar β†’ Calendar β†’ Rooms

Add each physical room with a name and the subjects it's compatible with (the drum room isn't for violin lessons). Mark rooms that allow group classes and set their capacity. When scheduling, Spoteca only offers compatible, free rooms β€” and guarantees no two lessons ever share a room at the same time.

Rooms
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Rooms β€” subject compatibility and group capacity.

3 Β· Add teachers

Sidebar β†’ Teachers β†’ Teachers β†’ + Add Teacher

1

Identity & login β€” all required

Full name, a username (what the teacher signs in with), a password (min. 6 characters β€” the teacher can change it later), email, phone number and whether that number has WhatsApp. A profile photo is required too (JPG/PNG, max 600Γ—600) β€” it appears on schedules and the student's "My Teacher" page.

2

Subjects β€” at least one

Tap every subject the teacher covers. This filters which teachers appear when you enroll a student for that subject.

3

Bio & CV (optional)

A short bio (visible to students) and a CV file.

Add teacher
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The Add Teacher form.

Hand the teacher their username + password and point them to the Teacher guide. Their first job is the next section.

4 Β· Teacher availability β€” the critical step

⚠️ Nothing can be scheduled without thisSpoteca will only offer lesson slots inside a teacher's marked availability. A new teacher has none, so they are unbookable until availability exists. This is the single most common reason a new school feels "stuck".

There are three ways to get availability into the system β€” pick per teacher:

Option A β€” You set it for them (fastest)

Sidebar β†’ Teachers β†’ the green Availability button on a teacher's card. The same weekly grid the teacher sees opens in a window: click or drag to paint the hours they can work, then Save availability. No waiting for anyone to log in.

  • Lessons already booked show red and can't be unpainted β€” cancel or reschedule the lesson first.
  • The teacher is notified every time you change their hours, so nothing moves under them silently.
  • If your school runs fixed hours, hit Import school hours first and adjust from there instead of painting a whole week.
ℹ️ Don't see the Availability button?Your school owner has turned it off. It lives under Super Admin β†’ School Settings β†’ Preferences β†’ Allow Admins to Set Teacher Availability and is on by default.

Option B β€” Teachers set their own hours (freelance-style)

Each teacher logs in with the credentials you created, opens My Schedule β†’ My Availability, and paints the hours they can teach (click or drag on the weekly grid, 15-minute precision, then Save availability). They have the same Import school hours button. Full walkthrough with screenshots in the Teacher guide.

Option C β€” Bulk import from a spreadsheet

For a whole roster at once, the Super Admin imports an Excel availability sheet β€” one row per teacher / day / 15-minute slot. See Import Data for the exact format. Teachers can still refine their grid afterwards.

🏫 School hours vs teacher availabilityThese are two different things. School hours (Super Admin β†’ School Settings β†’ School Hours) are just when the building is open β€” nothing is ever scheduled against them. They exist so you or a teacher can press Import school hours and start from a sensible week instead of a blank one. Importing merges: whatever is already painted stays. Once saved, that teacher's own grid is the only thing the scheduler reads, so a teacher's own hours always win. Changing school hours later never rewrites anyone's existing availability.
πŸ’‘ Verify at a glanceOpen Calendar β†’ Schedule and switch to the availability view β€” every teacher's free (green) and booked (red) slots side by side. If a teacher shows no green, they haven't set availability yet.

5 Β· Add & enroll students

Sidebar β†’ Students β†’ Students

Two buttons, two purposes:

  • + Add Student β€” creates a student profile only (no lessons yet). Use for waitlisted kids or imports.
  • + Enroll β€” the full flow: creates the student (or picks an existing one) and their enrollment with teacher, weekly slot and pricing plan. This is your everyday button.

The Enroll flow, step by step

1

Student details

Name, username + temporary password (their login) and phone number are required; date of birth, email and address are optional. Existing student? Search by name instead. Enrolling a minor? At least one guardian (parent) must be added in the Guardians section of the same form.

2

Subject

Choose from your school's subject list. A student can hold several enrollments (piano and guitar), each with its own teacher, slot and plan.

3

Teacher & slot

Spoteca lists only teachers who teach that subject, then only their free, available slots (teacher availability minus existing bookings). Pick the weekly day + time. A compatible free room can be assigned in the same breath. If the chosen plan includes 2+ lessons per week (intensive), the form asks you to pick each additional weekly slot with the same teacher.

4

Pricing plan

Choose one of your school's plans. The plan drives everything financial: invoice amount and cycle, teacher pay, reschedule allowance.

5

Confirm

Click Enroll Student. Spoteca instantly creates the weekly recurring lesson, generates the first payment, and (if enabled) notifies the teacher.

Enroll student β€” details
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Enroll β€” student details.
Enroll student β€” slot & plan
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Enroll β€” subject, teacher, slot and plan.

Student profiles

Open any student for the full picture: enrollments, lessons, attendance, payments, notes, guardians, and extended fields (emergency contact, medical notes, referral source, tags…). Your school can even define custom fields that appear on every student form.

πŸ”’ Private staff notes. The student page has a confidential Private staff notes section, visible to school staff only β€” never the student or guardians. You see every note any teacher has written about the student, and can add your own. Teachers see only their own notes; super-admins can remove any note.

When a student stops

Use Deactivate on the student. Billing stops, their history β€” lessons, attendance, notes, invoices β€” stays, and you can reactivate them later. Permanently deleting a student is reserved for the school owner and is meant for accounts created by mistake: it is refused if the student was ever enrolled or invoiced, because an invoice is a record that can only be cancelled, never erased.

πŸ—“οΈ Start date first, then the slotThe enrolment form asks when the lessons begin before it shows the grid, because the grid is answering for that date. It defaults to today, so an ordinary enrolment takes exactly the clicks it always did. Change it and the grid re-reads: a lesson that finishes before your start date no longer holds its hour. That is what lets you turn a trial into a real enrolment in the same slot β€” the trial you taught this morning kept that hour blocked for the rest of the day, which was precisely when you wanted to book it. Pick a slot and the start date moves forward to the first of that weekday on or after the date you chose, so a Tuesday slot never starts on a Friday. When a slot is taken, the reason now appears in a line under the grid instead of a bubble that covered the row above it.
🎟️ Session packs on hand-picked datesA pack can follow the weekly slot, or you can pick each session's date on the enrolment form β€” the date picker only offers times the teacher is actually free, with one room per session. When those dates run out the enrolment is flagged Needs dates: Spoteca can't invent the next sessions, so add them and the student is billed as usual.
πŸ—“οΈ Term plans started lateWhen a student starts a term plan after the term has begun, they pay only for the lessons left. The enrol form asks how the teacher is paid: the whole term, or only the lessons from the start date.

Two or three lessons a week? On the weekly option, a pack counts every weekly slot together: a 5-session pack on Monday and Thursday is Mon, Thu, Mon, Thu, Mon β€” and stops there.

Students list
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The students list after enrollment.

6 Β· The public enrollment link

First, the Super Admin enables it: School Settings β†’ Self-Enrollment (Public Signup) β€” the toggle reveals your copyable join link and a ready-made QR code. Then share spoteca.com/join/yourschool on WhatsApp, Instagram or your website. Prospects create their own student account (name, email, password, phone, subject of interest, message) and land in your pending students β€” you complete the enrollment when they're ready. It's your always-on lead-capture page, branded with your logo.

Join page
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The public join page for your school.

7 Β· Schedule & calendar

Sidebar β†’ Calendar β†’ Schedule β€” the weekly grid across all teachers. It shows every teacher's availability and bookings side by side:

Available (free to book) Booked lesson Not available

Click any green slot to enroll a student straight into it β€” the enroll form opens with teacher, day and time pre-filled. This is the fastest way to fill your week.

πŸ“… Only your open days are shownThe schedule and calendar show the weekdays your school is open β€” your owner ticks them under School Settings β†’ School Profile β†’ Open days. A day that still has lessons can't be closed; if one ever does end up closed with something booked on it, it stays on the grid with a Closed tag so those lessons never vanish from view.
Schedule
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The schedule grid β€” all teachers, availability and bookings.
πŸ“¦ Packs and one-time classes are not on this gridThe grid is a weekly timetable, and a session pack meets on hand-picked dates while a one-time class meets once. Drawn on a weekday they would claim to repeat, and would show only the first of their sessions β€” a four-session pack all on one Tuesday appeared as a single 4:00 PM cell. A line above the grid tells you how many there are; their real dates are on the Calendar, where each session sits on the day it actually runs, in the room it actually uses.

Sidebar β†’ Calendar β€” the date-based view: every lesson occurrence on real dates, including one-time events, group sessions and reschedules. Rooms can be assigned from here too.

Calendar
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The calendar β€” occurrences by date.
ℹ️ Weekly lesson vs occurrenceAn enrollment creates a weekly recurring lesson ("Monday 16:00 with Nadia"). Spoteca then generates dated occurrences (Mon 12 Jan, Mon 19 Jan…). Attendance, reschedules and cancellations act on occurrences β€” the weekly pattern stays intact.

8 Β· Reschedules, cancellations, absences & closures

Reschedule requests from families

When your owner has switched on student reschedule requests (Preferences), a student β€” or a parent, for their child β€” asks from their own Schedule page. They choose the lesson, then pick from times the teacher is actually free; the room is left to you. Every admin is notified and you approve or refuse the request.

  • The allowance is per subject. The plan sets how many reschedules a month the family may use, and a student with piano and guitar has a separate allowance for each. Families see how many they have left on their dashboard and Schedule.
  • Who asked decides who pays for it. A move the family asked for uses one of their reschedules. A move the school makes β€” a teacher is ill, a room is double-booked β€” is free.
  • Moved to another day leaves an orange card on the old date, with an arrow to where the lesson went; the new date carries ↻ Moved from…. Moved to another hour on the same day changes that lesson in place β€” there is no second card β€” and the card says ↻ Moved from 2:30 PM, so the old time is never lost.
  • Permanent moves rewrite the weekly slot itself. On a session pack, a permanent move shifts the sessions still to come rather than rebuilding the pack.
  • Hand-picked packs have no weekly slot. Click any of the pack's sessions β†’ Reschedule β†’ Re-pick the remaining dates to choose new dates for every session not yet marked β€” including ones that went by with no register taken. If those did happen, mark them on the calendar instead.
ℹ️ Moving one lesson vs. moving the slotA one-off reschedule moves a single date β€” the weekly slot stays where it was. So a lesson moved to Wednesday 16:00 occupies that time on that date only, and Wednesday 16:00 still shows as free for new enrollments. When you pick a slot a moved lesson lands on, Spoteca marks it ⚠ moved lesson and names the student and date. To change a student's time for good, use permanent reschedule.

Cancelling a lesson β€” and the notice window

On the Calendar, open a lesson and choose Cancel lesson. Spoteca asks who asked to cancel:

  • The school β€” the session is not used. The student keeps it.
  • The student or family β€” it depends on the plan's cancellation notice. With enough notice, the session is not used. With less notice than the plan asks for, it counts as used, like a no-show β€” and you can tick Waive it when you want to be kind. A late cancel shows on the lesson as counted or waived, and you can change your mind later.

The notice window is set per plan by the owner and is off by default. When it is on, families also can't ask to move a lesson that starts sooner than the window β€” unless the owner allows late requests on that plan.

Cancel a lesson
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Cancel a lesson β€” who asked, and whether the session counts.

Teacher absences

Sidebar β†’ Teachers β†’ Absences β€” log sick days, vacation or personal leave for a date range. Spoteca finds every affected lesson and walks you through rescheduling each one into a free slot; a replacement lesson can be moved again later from the absence itself. If no slot works, issue a refund β€” cash, or credit automatically applied against the student's next invoice.

Academy closures

Holidays close the whole school for a date: every teacher is marked absent and all lessons that day are handled the same way (reschedule or credit). Single closed dates are set by the owner under School Settings β†’ Closed Days.

Absences
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Absences & closures management.

9 Β· Group classes & events

Sidebar β†’ Lessons β†’ Group Classes

Theory circles, ensembles, workshops: pick a teacher, room, weekly day/time (or a one-time date for events/recitals), a group pricing plan, and enroll multiple students. Group extras:

  • Capacity β€” cap the class size; full classes can feed the waitlist.
  • Minimum students to start billing β€” don't charge anyone until the class is viable (you can override and start billing manually).
  • Per-session attendance β€” each session tracks attendance per student.
  • Session packs on your own dates β€” choose Schedule N sessions when a prepaid pack does not run weekly. Pick a prepaid (bundle) plan and the picker shows exactly as many rows as the plan sells: one date and time per session, so a pack can run Fri 4pm, then Wed 5pm, then skip a month. Fill weekly from the first date sets a weekly pattern in one click if that is what you want, and you then change only the sessions that differ. Each time is picked from the teacher's availability on that date, with their existing lessons greyed out and school closures flagged. A pack on your own dates does not auto-renew β€” when the sessions run out, you set up the next pack yourself.
  • One-time events β€” set a date instead of a weekly day for recitals, masterclasses, open days. Pick the date first, then choose the time from the teacher's availability on that date: times they are already teaching are greyed out, and closure days are flagged, so you see a clash before you save.

A class that meets more than once a week

Dance, martial arts, gymnastics and ensemble programmes are usually sold twice or three times a week. You do not make one class per weekday β€” that double-bills every student and splits the register in two.

Instead, set up Slot 1 β€” day, time and room β€” then press + Add another slot for the second weekly meeting, and again for a third. There is no limit.

  • Two sittings on one day are allowed. A class can meet on as many weekdays as you like, and twice on the same one β€” Tuesday 4pm and Tuesday 6pm are two sittings, each with its own register, notes and attendance. Only the same day at the same time is refused, because that is one meeting entered twice.
  • Each slot has its own day, its own time and its own room. Tuesday 5pm in the big studio and Thursday 6:30pm in the small one is a single class, not two.
  • Times come from the teacher's availability for that day β€” the same picker as slot 1, not a free-text box. Slots they are already teaching are greyed out.
  • Rooms are shown free or taken at that slot's own day and time, exactly as when you book an individual lesson. You choose from what is actually free instead of discovering the clash later.

Everything downstream counts every slot: the register, the calendar, the number of sessions on the invoice, and the teacher's per-lesson pay. A twice-a-week class holds twice as many sessions in a month and is priced and paid accordingly.

Which class types use slotsExtra weekly meetings apply to recurring group classes. A one-time event is a single date, and a session pack runs on the dates you pick for it β€” neither uses slots.
Group class slots
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Slot 1 and Slot 2 β€” each with its own day, time and rooms. Times come from the teacher's availability; rooms show which are free.
🎟️ Packs in group classesEvery student who joins a pack class gets the pack's sessions from their own first day and pays for them, however late they join β€” the class adds just the sessions they need. If the plan doesn't renew, the student leaves the class after their last session: the roster shows pack finished β€” add again, and adding them again sells a new pack. If it renews, they're invoiced for the next pack before this one runs out. A teacher paid a flat rate per pack is paid for every session the class holds.
πŸ“¦ Trials and term plans in group classesA trial plan is one session, so it can only be used for a one-time event. Group classes can also use Term plans; when you activate one after the term has begun, choose whether the teacher is paid for the whole term or only the sessions from the start date.

Draft β†’ Activate: nothing bills until you say so

A new group class is created as a DRAFT. A draft charges nobody β€” no student invoice, no teacher payment β€” and has no attendance register at all. That is deliberate: a class that has not started has no sessions to mark, and an empty register invited people to take attendance for a class that did not exist yet.

Enrol your students, then activate. The banner on the class carries a start date and a button:

  • Leave the date as today and the button reads Activate now.
  • Set a future date β€” the first Monday of next term, say β€” and the button names it: Activate from 12 Oct. Same action, later start.

Minimum students is only a warning here. Activate with fewer students than the minimum and Spoteca tells you how many are enrolled and asks whether to go ahead. It never refuses silently, and it never starts billing on its own.

What activation actually does

Three things, all dated from the start date you chose:

  1. The register begins. Sessions are listed from the start date forward, one row per weekly meeting per slot, each at that slot's own time. Nothing before the start date appears β€” a class starting next Monday does not collect a fortnight of empty sessions behind it.
  2. Student invoices are raised, one per enrolled student, status UNPAID.
  3. The teacher's payment is raised, status UNPAID, following the plan's rate basis β€” or nothing upfront if the teacher is paid only for attended sessions.

Which period gets billed depends on the plan:

Plan typeWhat the start date bills
Monthly / recurringThe month the class actually starts. Activating in September for an October start raises an October invoice, not a September one. A mid-month start counts only the meetings from that day onward in the first month; every month after is a whole month.
Per TermThe term containing the start date, prorated to the sessions left in it. If the plan has auto-renew ON, it is re-billed every following term.
Session packThe pack's sessions are generated from the start date forward.

Marking those invoices paid is the normal Payments / Teacher payments job.

Draft group class activation
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The draft banner: who is enrolled, what activation will bill, the start date, and Activate now.
⚠️ No register on a group?It is still a draft. Enrol the students, set the start date, press Activate now. If a twice-a-week class shows only one weekday, the second meeting was never added as a slot β€” edit the class and use + Add another slot.
πŸ’Έ Closing a group β€” refunds & teacher payWhen you Deactivate a group, a window lets you refund each enrolled student β€” the amount they paid is pre-filled, and you can lower it, refund fully, or set it to zero per student. If the group is closing because the teacher can't run it, tick the box to cancel the teacher's unpaid bill for that group in the same step. Refunds are recorded on each student's invoice (they see them under Payments) and are subtracted as a "Refunds" line in your Financial Reports, lowering net revenue. Already-paid teacher payments aren't touched.

Handing a class to another teacher

Open the class and press Change teacher. Pick the new teacher, then decide what happens to this period's teacher pay:

  • Split it β€” each teacher is paid for the sessions they teach;
  • Keep it with the current teacher;
  • Give the whole period to the new teacher.

The students, register and billing stay exactly as they are β€” only the teacher changes β€” and the change is recorded in the Audit Log.

Change a group's teacher
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Change teacher β€” and choose who is paid for this period.
πŸ‘₯ Group students are full studentsEveryone in a group class is enrolled like any other student: they appear in Students with their teacher, they count under Enrolled, their group attendance shows in their own attendance history, and they are never flagged as having no teacher. There is one register per class, shared by the teacher and the office β€” Present or Absent per student per session.
Group classes
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Group classes.

11 Β· Payments & promo codes

🚫 Waiving an invoice you won't collectOn any unpaid invoice, Cancel marks it as no longer owed β€” most often when a student's trial fee is folded into the plan they signed up for. The invoice stays on the record (so you can still see the trial happened), but it drops out of both revenue and outstanding in Financial Reports. Changed your mind? Restore puts it back to unpaid. If a teacher is owed for the same lesson, you'll be asked whether to cancel their bill as well β€” untick it when the teacher should still be paid for teaching it.

Sidebar β†’ Money β†’ Student Payments

πŸ’š You never create invoices by handEvery active enrollment generates its payments automatically according to its plan (recurring, per-term, per-pack…). Your job is simply to mark them paid as money arrives.
🧾 "+ Add a charge" β€” for everything that is not a lessonRegistration fees, exam entries, instrument rental, books, a late fee. Pick the student, pick what for, type the amount, and optionally a description, a due date and how they paid. There is no month and no lesson count, because a registration fee has neither β€” and no promo code. It becomes an ordinary invoice: it appears in the list, counts in Financial Reports, and prints its category on the invoice and receipt where the lesson line would be. You still never bill tuition by hand β€” if you need to charge for lessons, enrol the student and the plan does it.
  • Statuses β€” Paid, Unpaid, Partial, Overdue, Cancelled. Overdue students are flagged automatically and can receive payment reminders.
  • Documents β€” every payment produces a numbered invoice and, once paid, a numbered receipt (PDF, branded with your logo). Refund receipts exist too.
  • Promo codes Money β†’ Promo Codes β€” percentage or fixed discounts; for everyone or for the students you tick, on every plan or only the plans you tick; usage caps and expiry dates. Applied at payment time, the discount trail is kept.
  • Credit β€” refunds issued as credit sit on the enrollment and get deducted from the next invoice.
🧾 Invoices paid in instalmentsWhen a plan is set to be paid in parts, the term or period is still one invoice for the full amount β€” that is the debt, and that is what the PDF is for. Its instalments appear indented underneath it, each with its own due date and its own Mark Paid button. Settling parts moves the invoice to Partial and shows the remaining balance; the last one settles it. Marking the invoice itself paid settles every part at once, and cancelling it withdraws the parts still owed while leaving anything already paid untouched. The dates are spread equally across the period to start with β€” that is arithmetic, not an agreement, so click the ✏️ beside any date to move it to whatever you actually agreed with the family. A moved date stays put: the nightly billing run never rewrites one you set by hand. Families see the same schedule, read-only, under Payments β€” and are reminded before each instalment falls due, not just the first.
πŸ’΅ Taking a payment β€” and the student who leaves mid-monthPay on any unpaid invoice offers three ways to settle it: pay in full, pay for the lessons attended β€” the value of the lessons actually delivered in that period, shown with the count, e.g. 2 of 10 lessons taught Β· $40 β€” or a custom amount. A lesson counts as delivered if it was taught, missed, or cancelled too late to be given back, so a no-show is still charged for. Take less than the balance and Spoteca asks one question, "And the rest?": leave it owed (the family is staying β€” the invoice becomes Partial with the balance underneath it) or write it off (they are leaving β€” the invoice is reduced to what you took and marked paid, keeping a record of what it originally charged). A payment never reduces an invoice below what has already been received: giving money back is a refund, which is its own decision.
🏷️ Promo codes are the owner'sOnly the school owner (Super Admin) sees Money β†’ Promo Codes and creates codes. Anyone who marks payments can apply an existing code with Apply Promo Code on the invoice.
πŸ‘¨β€πŸ‘©β€πŸ‘¦ Aiming a promo code β€” and the sibling caseA code carries two sets and one choice. Students: Everyone, or tick exactly who it is for β€” tick both brothers and one code serves the family. Plans: All plans, or tick the ones it reaches, so 10% lands on the piano and not the guitar. How it is applied: automatically β€” every upcoming tuition invoice for those students on those plans is discounted with nobody typing anything, including the monthly renewal, the first invoice at enrolment, term and pack invoices and group-class seats β€” or by hand, which is the only way onto a fee. Most specific wins and discounts never stack: if "everyone, 10%" and "Kevin on Standard, 16.67%" both fit, the one naming the student is applied and the other is not. A usage limit counts either in total or per student β€” pick per student for a family discount, or ten invoices will be eaten by whoever is billed first. Tuition only, automatically β€” a registration or exam fee is never discounted on its own. Invoices already issued do not change, so apply the code by hand once for the month already out. A code can be edited until it has been used; after that only its description, limit and expiry can change.
πŸ›‘ Stopping one subject β€” what happens to the moneyΓ— Cancel lesson on an enrolment says in advance what it will do, and asks about everything that costs money. The invoice for the period in progress is reduced to the lessons already taught β€” not written off β€” with the arithmetic shown (2 of 10 lessons taught β†’ $40); you can instead leave the full amount owed, or withdraw the invoice entirely. An invoice for a period where nothing was taught is cancelled outright, and a period already finished stands as it is. A paid period keeps its lessons to the end; a part-paid one keeps only the lessons the money covers. The teacher's unpaid bill is priced the same way: pay them for the lessons they taught (the default once they have taught some β€” two of eight becomes two), pay it in full, or cancel it (the default when none of it has been taught). The teacher is told which of the three happened, and a bill you have already paid is never touched. A lesson still scheduled today is asked about on its own: keep it, remove it, or move it to another of that student's enrolments.
Payments
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Payments β€” auto-generated, tracked by status.
πŸ•‘ History β€” everything that happened, in orderStudents β†’ History lists a student's β€” or the whole school's β€” lessons (present, absent, not marked, cancelled and by whom, rescheduled and to when), money (invoice raised, paid, part paid, cancelled, refunded) and enrolments, newest first. Filter by student, teacher, subject, kind and dates; a line above the list totals what's shown, and Export CSV downloads exactly that β€” handy when a family questions a charge. For one student, use the History button on their row in Students, or the History tab on their page.
πŸ•‘ Teachers β†’ HistoryThe History page has a Students | Teachers switch at the top. Teachers β†’ History opens it on the teachers' side: the lessons each teacher gave (a group class once, with its register counted), their absences, their pay β€” bill raised, paid, cancelled β€” and students who started or stopped with them. For one teacher, use the History tab on their page. Teachers, students and parents also have a History page of their own, showing only their own lessons and money.
πŸ’Έ ExpensesMoney β†’ Expenses lists the school's expenses (rent, repairs, equipment) and lets you add one. Admins see it only when the owner turns on "Allow Admins to Manage Expenses" in School Settings β†’ Preferences; otherwise expenses stay with the owner.

12 Β· Teacher payments

Sidebar β†’ Money β†’ Teacher Payments

Teacher pay is calculated automatically each month from delivered lessons Γ— the plan's teacher rate (with per-teacher overrides where set). Plans marked pay-per-attendance count only sessions marked Present. Apply deductions with a note when needed, mark payouts as paid, and export a PDF pay statement per teacher. Teachers see the same numbers in their own portal β€” no more spreadsheet disputes.

Teacher payments
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Teacher payroll, calculated for you.

13 Β· Attendance & lesson notes

Sidebar β†’ Calendar (admins can mark it; teachers usually do). Statuses: Present, Absent, Late, Excused. Attendance links to payments where relevant (pay-per-attendance plans) and feeds the student flags system.

πŸ‘₯ Group classes: the register follows activationA group class shows no register at all while it is a draft. Once activated it lists every weekday the class meets β€” all of its weekly slots, each at that slot's own time β€” starting on the activation date and never before it. If a day is missing, that meeting was never added as a slot: see section 9.
πŸ•˜ Whose clock are these times?If your owner has set the school's time zone, every time on this page β€” and on the calendar, the schedule, and the timestamps on invoices and receipts β€” is shown in the school's own zone, whatever device you are reading on. If no zone has been set, times follow your own device clock, exactly as before. It is set under School Settings β†’ School Profile.

Sidebar β†’ Students β†’ Lesson Notes gives you oversight of every note teachers write β€” content, homework, rating and attachments β€” so you always know teaching is happening and parents are getting feedback. Two tabs: Notes written, and Needs notes β€” every lesson marked Present in the last 90 days that still has no note, with the student, date and teacher, so you can see at a glance who is behind on write-ups. The student, teacher and date filters apply to both.

πŸ“ Writing a note from the calendarOn Calendar, once a lesson is marked Present a + Note button appears on it. That opens the same lesson note the teacher writes β€” rating, topics, observations and homework β€” so you can fill one in on a teacher's behalf; it is always saved under the teacher who taught the lesson, not under your name. Lessons marked Absent or cancelled show + Remark instead: just a one-line note like "called in sick", since there is no lesson to grade. That remark is visible to the student and their parents on their calendar β€” for anything confidential use the private Student notes instead.
Attendance
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Attendance overview.

14 Β· Messages & announcements

Messages Messages β€” direct chat with any teacher, student or guardian. Read receipts and reactions included; every conversation is logged in one place (goodbye, WhatsApp chaos).

Announcements Messages β†’ Announcements β€” one-to-many broadcasts: all students, all teachers, or everyone. Ideal for holiday closures, recital invitations, policy updates. Recipients get an in-app notification (and push, if they enabled it).

Announcements
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Announcements.

15 Β· Waitlist, guardians & reports

  • Waitlist Students β†’ Waitlist β€” park people who want a place before you have one; when a slot frees up, notify and enroll in two clicks. More below.
  • Guardians Students β†’ Guardians β€” link parents to students. Every guardian you add gets their own parent portal login: you set their username and password on the same form as their name, so you can hand the details over straight away. If the parent already has a Spoteca account, search for it at the top of the guardian card and link it instead β€” their name and contact details are then read from that account.
  • Reports Students β†’ Reports β€” per-student progress reports and school-level summaries, exportable as branded PDFs.
  • Progress Students β†’ β‹― More β†’ Progress β€” skills, repertoire, badges, the practice goal, and Exams & assessments: record an exam before it happens and add the grade afterwards, whether your school sets it or the student sits it at their own school. Teachers can only file exams for subjects they teach that student; you can record any subject.
πŸ”— Your join link β€” what happens when somebody appliesSuper Admin → School Settings → Enrollment → Your join link decides it. Off: visitors are told you are not taking applications. Enquiry only: they confirm their email with a six-digit code, then leave a name, phone and the subject they want β€” no account and no password, so nobody can sign in to your school from that form. It arrives in Students → Waitlist, never on your Students page, and no student exists until you enrol them. You are notified each time, and the notification opens the waiting list. Asking twice with the same email for the same subject updates the enquiry instead of making a second one.
πŸ“‹ Working a lead in the waiting list+ Add a note writes a dated line with your name on it β€” "Called her, no answer yet" β€” kept apart from the applicant’s own message. Notify tells them a place may be free. Enroll as a student opens the enrolment form with their name, phone, email and subject already filled in, and marks the entry Enrolled once you save. It used to say "Mark Enrolled" and only changed a label β€” the person stayed un-enrolled.
πŸ€” “I’ll think about it” β€” the third button on an applicationSomebody fills in your join link, you ring them, and they want time. Approve would open the student portal to them and email them a welcome; Decline reads as a rejection; Delete throws away their phone, their email and the message saying what they want. Use Move to waiting list instead: the name, phone, email and message are copied to Students → Waitlist as an enquiry, and the student record is removed β€” so your Students page stays a list of actual students and the lead is still there when they decide. Enrol them properly from the waiting list when they say yes. It is refused for anyone who already has a lesson or an invoice: that is history, not an application.

The waiting list

A waiting list is mostly people who are not students yet β€” a parent who rang on Tuesday, someone who asked after a recital. So it does not ask you to create a student record first. Press Add to Waitlist and fill in:

  • Student name β€” required. Just type it; no account, no username, no password.
  • Phone number β€” optional but worth having. A prospect has no Spoteca login, so a phone number is how you reach them when a place opens.
  • Subject β€” required, chosen from your school's own subject list, the same one the teacher form and enrolment read.
  • Preferred teacher, days and notes β€” all optional.
πŸ’‘ "Other" is a market-research toolThe subject list ends with Other…, which opens a free-text box. Use it when someone asks for something you don't teach β€” cello, oud, music theory. Those entries quietly build a record of demand you're currently turning away, which is the best evidence you'll get for what to add next.

When a place opens, mark the entry Notified, then Enrolled once they've taken it. Entries that go cold can be marked Expired rather than deleted, so you keep the history.

Waitlist
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
The waitlist.

16 Β· Your account & getting help

My account

Sidebar β†’ My account β€” your own name, email, phone, address and photo, and your password. Changing your email asks for your current password and sends a confirmation link to the new address; nothing changes until you click it. Your username can't be changed.

πŸ” Changing your password signs out your other devicesChange your password β€” or ask an admin to reset it, or use the forgotten-password link β€” and every other browser or phone signed in to that account is signed out within about five minutes. The device you change it on stays signed in. That is the point: if somebody else has got into an account, changing the password is what pushes them out. The same applies to every password an admin sets for a teacher, student or parent.
My account
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
My account β€” your own details, in every role.

Ask AI

The ? button in the bottom corner opens Ask AI and this tutorial. Ask AI answers questions about using Spoteca in your language, and it can see how your school is set up β€” open days, teachers, plans, classes β€” so "why can't I book Friday?" gets an answer about your school. It can't see anyone's records or payments. Under each answer, tell us with πŸ‘ or πŸ‘Ž whether it helped β€” a thumbs-down reaches the Spoteca team so the answer gets fixed.

Ask AI
πŸ“Έ Screenshot pending β€” run capture-screenshots.mjs
Ask AI β€” answers about your own school, with πŸ‘ / πŸ‘Ž under each reply.

If editing is switched off

If the school's own Spoteca invoice is overdue, a banner appears at the top and changes are paused until the owner settles it. Everything stays readable and nothing is lost. Teachers, students and parents only see a note to contact the office.

FAQ

I can't pick a slot when enrolling β€” the list is empty.

The chosen teacher has no (remaining) availability, or the day isn't one of the school's open days. Check Section 4 β€” either the teacher hasn't painted their grid, or every available slot is already booked.

Can one student learn two subjects?

Yes β€” add a second enrollment on the same student. Each enrollment has its own teacher, slot, plan, invoices and reschedule allowance.

How do trials work?

Create a Trial pricing plan (one-time). Enroll the prospect on it; after the session, convert them to a full plan. A trial ends the day after its last session. If the trial fee is folded into the plan they chose, Cancel the trial invoice.

A parent wants to move Thursday's lesson only.

They can ask from their own Schedule page, or you move that one occurrence from the calendar β€” the weekly slot is untouched. A move the family asked for uses one of their monthly reschedules; one the school makes is free.

A family cancelled an hour before the lesson.

Cancel it as asked by the student or family. If the plan has a notice window and the cancel is inside it, the session counts as used β€” tick Waive it if you'd rather not count it.

What if a teacher leaves?

Hand each of their group classes to another teacher with Change teacher, reassign their individual students from the teacher's page, then deactivate the account. History is preserved.

Can I delete a student?

Deactivate them β€” that stops billing and keeps their history. Only the owner can permanently delete, and only an account that was never enrolled or invoiced.

Next β†’ The Teacher Guide: availability, lessons, notes & pay