Changelog

What we shipped, when. Newest first.

Update — 2026-07-09

9 July 2026

9 July 2026

Search finds people the way you actually have them

Paste a number straight out of WhatsApp — "+44 7392 945872" — and the member whose mobile is stored as "07392 945872" comes straight up. Those are the same number, and every search box now knows it.

  • Quick search (⌘K), the students screen and the message recipient picker all

now match by email and phone as well as name — one shared matcher, one set of rules everywhere.

  • Any spelling of a phone number works: +44 or 07, spaces or not, or just the

last six digits.

  • A parent or guardian's name finds the child on the students screen — often

the only name a message gives you.

  • Surname first works: "Okafor Sam" finds Sam Okafor, as does "sam ok".

Date pickers that fit on a phone

Three forms — the task reminder, the grading event's date, and the accident form — could push their whole window sideways on a phone, because a native date box refuses to shrink below its built-in width. They now share one date-and-time field that stays inside its column, uses your phone's own calendar and clock wheels, and stacks neatly on small screens.

The students screen says what it will do

  • "Individual view" replaces "Flat view" — it pairs with "Group by family" and

matches the "Individuals (no household)" heading you already see.

  • Export is honest about scope: the button reads "Export selected (3)" when

you've ticked people, "Export all (142)" when you haven't — and does exactly what it says.

  • "Invite to Telegram" respects your selection. Tick five members and only

those five are invited; the confirmation names the count before anything sends. With nothing selected it still offers everyone — and says so.

  • New: chase the portal invites that never landed. One action finds everyone

who was given portal access but has never actually logged in, shows you the exact list, and re-sends their login link. If mum uses the portal and dad never has, dad still gets his.

Member profile, tidied for the phone

  • Actions now lives top-right, in line with the back link, instead of a row of

buttons pushing the record down the page.

  • The status pill sits under the belt colour on mobile, so name and email keep

the full width. Desktop is unchanged.

  • The household panel uses its whole width: family members flow in a grid and

the classes list gets room, rather than everything squeezing into one narrow column with the right half empty.

  • The bottom tab bar stays pinned to the bottom of the screen while the page

animates in — it could briefly ride up with the content before.

Promotions: two small things that weren't small

  • Collapsing a grade group now sticks. Closing a section used to snap it

straight back open.

  • Opening a member from promotions now offers "Back to promotions" instead of

dropping you in the directory.

Fixed: invoice PDFs wouldn't open

Every invoice PDF was failing with "We couldn't load this invoice right now" — the document asked the database for address fields that don't exist, so the whole fetch failed. Fixed; the "Bill to" block now prints the household's address correctly.

Grading events: published means finished

  • A published grading is visibly locked. The event card shows a locked marker,

"Live scores" becomes "View scoring", and on the grading day screen the Pass/Unsuccessful/Undo buttons are replaced by a padlock with a note explaining why. The server refuses late edits too — including panel notes, which could previously still be edited after publishing.

  • Unpublish was checked end to end, since it's the scary one: certificates are

removed, their numbers are kept for the audit trail, and only an admin with a password confirmation can do it.

  • Archive old gradings. An unpublished grading you never ran can now be

archived — it's hidden from the working list (with a "Show archived" toggle), and any calendar events linked to it are unlinked automatically. Published gradings can't be archived; restore is one click.

  • New: a post-event analysis PDF. Once results are published, download a

summary with attendance and outcome figures, the words your examiners used most in their feedback, and where red and amber scores concentrated — so the next course focuses on what the last grading showed. Candidate names are kept out of the word analysis by design.

  • The Sessions/Events and Upcoming/Past selectors now share one row on mobile,

and the new-event date no longer overflows the modal.

Trials & Enrolments

  • Opens on "Upcoming" rather than everything ever.
  • One Actions button replaces the row of three (Embed, Book Trial, Send

Invite) — same actions, less furniture.

Video review

  • The Pending/Reviewed switch is now the same animated selector used across the

app, and the counts no longer make the buttons change width as they load.

  • Wording now says member, not parent/student, matching the portal rename.

Accident reports

  • The list opens on the last 7 days — with 30, 90 and custom ranges one tap

away — instead of loading every report ever recorded.

  • On a phone, reports are cards with a clear View action; no more dragging a

wide table sideways.

  • Save as draft. Part-way through recording an incident, save it and finish

later — drafts are labelled, filterable (Complete / Draft), and don't produce a PDF until they're completed. The form itself no longer scrolls sideways on mobile.

Communications & automations

  • Template filters (All / Manual / Automation) use the house animated selector.
  • The automations Build list works on a phone — cards instead of a 760px-wide

table that dragged the page sideways.

  • The SMS gateway page no longer scrolls sideways — the 90-day volume chart

scrolls inside its own box.

  • Scheduled changes speaks English: "checked automatically every morning"

rather than CRON jargon, and "Overdue (not yet applied)" instead of just "Overdue".

  • The arrears page gained the same breathing space every other billing page has.

Housekeeping

  • The changelog is hidden on the demo account. What's new is for customers,

not a public feed of everything we're building.

Update — 2026-07-08

8 July 2026

8 July 2026

Events can now run past midnight — and across several days

A late-finishing event used to be stored as if it ended earlier the same morning, which quietly hid it from the next day's calendar. Events now record when they truly finish.

  • A late event keeps running into the next day. Create a 10pm event that runs

four hours and it now finishes at 2am *tomorrow* — the calendar shows it on both days, and the form tells you so: *"Runs 10pm–2am, ending 01/02/2026 (next day)."* Previously the finish date stayed on the start day, so the event vanished from the next morning's view even while it was still happening.

  • Multi-day events ask for what they actually need. Turn on Multi-day and

the form swaps the length chips for a proper end date *and* end time. A duration can't describe a 50-hour residential camp, and the chips were misleading: with multi-day on they were setting the finishing clock time on the last day, not the event's length. Now the control matches the question.

  • An impossible time is caught in the right way. With multi-day on, an end

that's before the start on the same day is a typo, and the form says so. With it off, the same pair means "it runs past midnight" — so it's accepted and the finish date moves on a day. Same clocks, two different mistakes, two different messages.

  • Every repeat of a recurring event carries the right span. A recurring

10pm–2am class used to store each occurrence as finishing on the day it started, so only the first evening ever showed correctly. Each repeat now spans the same number of days as the first.

  • Rescheduling honours it too. Moving an event to a late slot now updates its

finish date, and the server independently re-checks the finishing *instant* — a check that only looked at the clocks would have read a legitimate 1 Feb 10pm → 3 Feb 9am camp as running backwards.

Existing events are untouched: a stored event whose end time is earlier than its start time is still read the way it was always meant — as finishing the next morning.

Classes can run past midnight too

Some clubs run a late session. You can now save one — a class from 11pm to 12:30am, on the timetable, in onboarding, or as an ad-hoc lesson on the register.

  • The register knows a late class is live. "Present" lights up at 11:30pm, and

stays lit at 12:15am while you're still on that class's register. Marking someone present at 12:30am records it against the night the class *started*, which is where it belongs.

  • The club-wide attendance count includes it. Just after midnight it still

counts the people in a class that began last night.

  • A late class shows properly everywhere it's drawn. On the calendar's day view

it's a real block rather than a sliver, and it no longer overlaps the class before it. On the printed timetable it sits inside the grid instead of over the footer, and it keeps its own lane. The trial-booking page shows its length again.

  • A parent's calendar subscription gets it right. The iCal feed was putting the

finish time *before* the start for any late class, so phones dropped the entry. Fixed — along with the same fault for any class with no finish time recorded.

  • Editing a late class no longer resets its length. Opening one for an unrelated

change (renaming it, say) used to quietly reset its length to 60 minutes, and saving made that permanent.

A class that finishes *earlier the same day* than it starts is still what it always was — and now it just means "it runs past midnight", the same reading events use.

No club owns a mat

"On the mat" only makes sense if you teach on one. Allsorted is used by swimming, football, dance and rugby clubs, so the phrase has gone — replaced by wording that says what the number actually is.

Three different things were sharing the phrase, so each got its own word:

  • The register's live count is now "Present" (and "Attended" once the class has

finished), matching the marks you actually make — Present, Late, Absent.

  • The club-wide sidebar count is now "Current attendance", with the same

per-venue breakdown underneath.

  • The Assessments filter is now "Present today", which is exactly what it does:

show only members marked Present or Late on today's register, whatever class.

  • In grading, a line is now "Scoring" rather than "on the mat", and the lead's

button reads Score rather than On mat. Being scored and being present are different things, so they no longer share a word.

Behind the scenes the example wording offered when you write a waitlist-promotion email lost its "See you on the mat!" sign-off too, and the printed features guide no longer assumes you coach on one. No email anyone has already written has changed.

The accident form still asks whether an incident happened "on the mats or playing surface" — there it means a real floor, and it already covers both.

Trials: read what the family actually told you

When someone books a trial they answer up to four questions. Until now only the register showed them — the person triaging trials in the calendar never saw that a parent had asked something, or declared an injury.

  • Every trial row has an "Answers" button. It opens a popup with how they heard

about you, why they want to try, and anything they wanted to ask before coming. It's there for cancelled and past trials too — those are often the ones you want to read back.

  • The medical answer is on the same popup, and it's protected. Coaches, admins

and owners see it. A read-only account sees the panel but not the answer. The wording is identical whether or not the family declared anything, so a locked panel gives nothing away.

  • If the answer can't be loaded, it says so. It will never quietly show an empty

medical box that reads like "nothing declared" when the truth is "we couldn't ask".

Also fixed — a real safeguarding gap

The register's Health quick-view was fetching every rostered child's medical information without checking who was asking. Any staff account in the club could read it, including read-only accounts. It now needs the same permission as the trials popup: coach and above. Coaches keep it, because they need it mid-class. If you have read-only staff who relied on this, they'll now see nothing there.

Households: the search now tells you why a family matched

Searching a member's name already found their family — it just never said *which* member you'd hit. On a family of five you scanned. In compact view, which draws no member names at all, you couldn't scan.

  • Every result now shows what matched, highlighted, right on the card — in both

compact and expanded view. Search "Sam", and the Okafor family's card says *"Sam Okafor · member"*.

  • Search by email or phone number too. Paste a parent's email from an enquiry, or

type the last six digits of a mobile, and you'll land on the family. A number stored as "+44 7123 456789" is found by typing "07123" — those are the same number, and the search now knows it.

  • Surname first works. "Okafor Sam" finds Sam Okafor, as does "sam ok".
  • The guardian's name is searchable — often the only name you were given.
  • An ex-member still finds the family, and says so. The child you remember is

frequently the one who left, so a leaver match is shown with their name struck through and a LEAVER tag, and the family's own status pill tells you the rest.

The matched field is always named — "email", "mobile", "guardian" — so a hit on a phone number never looks like a mystery.

Behind the scenes — the safeguarding-lead permission now works

Four permissions are meant to open only to admins, owners, and a coach who is the club's designated safeguarding lead (full medical detail, accident detail, safeguarding notes, DBS credentials). The "safeguarding lead" half was never wired up: the check always assumed *not* a lead, so the modifier could only ever *restrict* — a lead coach would have been refused the very records the role exists to see.

That path is now plumbed end to end and covered by tests. No visible change yet: nothing in the app grants these four to a coach today, and turning it on for a real club still needs a small database change to be applied first. This is the groundwork so that, when it is, a safeguarding lead is let through rather than locked out.

Update — 2026-07-07

7 July 2026

7 July 2026

Mobile: read your sent emails without fighting the layout

A round of mobile fixes so the Communications and student screens work properly on a phone — no more sideways scrolling to reach things that were off-screen.

  • Sent and scheduled email history now reads as cards on a phone. In

Communications → History, the Sent and Scheduled lists used to be wide tables that ran off the side of the screen on mobile — so the "View" link and the status/actions were out of reach. They now stack into tap-friendly cards on a phone (and stay as full tables on a larger screen), so you can open any historic email straight away.

  • Sent emails open properly from a student's timeline. Opening a sent email

from a student's activity timeline on a phone would clip the message so you couldn't read it. The preview now sizes itself to the email and scrolls, so the whole message is readable on any screen.

  • Automations filters sit still. The filter and category controls at the top

of the Automations screens no longer jump around as you type or toggle them on a phone — they line up in a single, tidy row you can swipe across.

  • A student's sections are now a bottom bar on your phone. Instead of a

horizontal-scrolling strip of tab labels, a student's record shows a fixed bottom bar with the four you reach for most — Profile, Billing, Attendance, Timeline — and a "More" button for Achievements, Credentials, Pathways and the SMS conversation. It works like the member portal's bottom bar. On a larger screen the familiar top tabs are unchanged.

  • Register: an "Add ad-hoc" button instead of a second search box. On a

phone the register no longer shows two search boxes stacked up. The ad-hoc / catch-up search is now a compact + Add ad-hoc button; tap it and it slides open into the search field (tap again to close). It resets to a button each time you open the register, so the screen stays tidy. On a larger screen the full search box shows as before. An event register's walk-in search works the same way.

Register polish

  • Class times read as 6–7pm. The class and event pickers now show times the

way you'd say them — "6–7pm" rather than "18:00–19:00" — which frees up room for the class name on a phone.

  • More of the class name fits. The class rows are tighter, the fixed time

column is gone, and the decorative "›" arrow at the end of each row has been removed (the whole row was always tappable). Venue and the signed-up count still show whenever there's room.

  • The rank colour on the register is now the same swatch used elsewhere.

Marking members present/absent/late shows the wide horizontal progression swatch — the same chip the grading screens use — instead of a thin vertical bar. (It's a belt in martial arts, a level, stage or grade elsewhere.)

Class times: one control everywhere, and four bugs fixed

Every screen that asks when a session runs — the register's ad-hoc lesson, the calendar's event form and reschedule, both timetable pages, the onboarding timetable, coach availability and quiet hours — now uses the same control.

  • A class can no longer end before it starts. Four of those screens would

happily save a class running "7pm to 6pm". A class like that never counts as live, so the register never showed it in session. Where a length makes sense, you now set a start and a length and the finish is worked out for you — so an impossible time simply can't be entered. The others check as you type. Every one is checked again on the server.

  • Say when it starts and how long it runs. Timetable classes, events and

reschedules take a start plus a length (30/45/60/90 minutes, or your own), and show you the result: *"Runs 6:30–7:30pm."*

  • Quiet hours can still cross midnight (10pm–8am), and a coach's

availability window still takes an explicit finish — those genuinely need one.

Adding an ad-hoc lesson is quicker to fill in

The + button on the register opens a friendlier form for a one-off lesson.

  • Say when it starts and how long it runs, rather than filling in two

separate time boxes. The start is prefilled to the current time (rounded to five minutes), the length is a tap — 30, 45, 60 or 90 minutes, or a custom number — and the form tells you when it'll finish: *"Runs 6:30–7:30pm."*

  • You can't create a lesson that ends before it starts. Previously nothing

stopped you saving one, and the register would then never think the class was live. A lesson that would run past midnight is refused too, with an explanation — a register covers a single day.

  • A lesson always has a real time now. Leaving the times blank used to store

it as midnight-to-midnight behind the scenes, which showed up as "12am–11:59pm" on the class list. The form now always sets a proper time.

  • A member with no rank set no longer shows as a dark blob in light mode.

Several screens — the student record, the timeline, promotions, grading lists, the assess rail and the rank settings — were drawing an un-ranked member with a hardcoded dark navy instead of following your theme. They now all use the same swatch, which picks up light or dark mode properly.

  • Ranks with three or more colours now show every colour. A rank can carry up

to six colours, but most screens only ever drew the first two — the third onward were silently dropped. Multi-colour ranks now render as equal horizontal bands everywhere on screen, matching how they already printed on grading sheets. Single and two-colour ranks look exactly as before.

  • "Select a class or event to begin" has breathing room. The panel no longer

runs edge-to-edge on a phone.

  • The Lesson Plan button looks selected when it is. Opening the lesson plan

now fills the button in, so it's obvious at a glance which state you're in.

Update — 2026-07-06

6 July 2026

6 July 2026

Courses builder: reorder by dragging, and a live Preview

The staff Courses area has had a round of polish so building a course feels quick and predictable.

  • Drag to reorder. You can now drag sections into the order you want, and

drag lessons within a section — grab the grip handle on the left and drop it where it should go. Previously new sections and lessons could only ever sit in the order they were added.

  • Preview what members see. A Preview button on the course builder opens

the member's view of the course in a new tab, so you can check how it reads before you publish.

  • Tidier course list. The Courses list now uses the same edit-pencil and

"…" menu as the rest of the app — Edit opens the builder, and the menu holds Publish / Unpublish and Archive / Restore — with a clear status badge (Draft · Published · Archived) on every course.

  • Clearer confirmations. Removing a section or a lesson now asks first with a

proper confirmation dialog (and keeps member progress history), instead of removing on a single click.

Courses for members: work through lessons in order

Members now move through a course step by step, so nobody skips ahead.

  • Lessons unlock in order. A lesson opens only once the earlier required

lessons are finished — and a required quiz has to be passed before the next lesson unlocks. Optional lessons never hold anyone up. Upcoming lessons show a small lock until they're reachable.

  • Always know what's next. After you mark a lesson complete or pass a quiz,

a Continue to next lesson button takes you straight to the next one — or tells you the course is complete when there's nothing left.

  • Pick up where you left off. The Continue button on a course jumps to

the right place: the lesson you were last on, or the first one you haven't finished.

  • Clear quiz results. After submitting a quiz you see your score and whether

you passed the pass mark, with the option to try again if you have attempts left. Correct answers are never shown.

  • A clearer course screen. Lessons now sit in an outline down the side (a

tap-through list on a phone) with type icons, a progress bar and ticks against what you've finished, so it's always clear where you are and what's left.

Courses: choose who each course is for

Courses now have the same audience control as Pathways.

  • "Who can see this?" Each course has an audience setting — **All

programmes, or Specific programmes** with a tick-list of your programmes. Clubs with a single programme stay on "all" automatically, and the Courses list shows each course's audience at a glance (flagging any set to specific programmes with none chosen).

  • Members only see courses for their programme. A member sees a course they've

been given only when it's offered to everyone or to a programme they're currently in — nothing that doesn't apply to them.

  • Publish check. A course set to specific programmes can't be published until

at least one programme is chosen, so it can never go live invisible to everyone.

Courses: see how members are getting on

The staff course view now shows real progress, not just who's enrolled.

  • Progress at a glance. For each enrolled member you can see how far through

they are, when they were last active, how long they've spent, and — for a course with a quiz — their latest score, whether they passed and how many attempts they've had.

  • Activity is tracked automatically. Opening a lesson marks it started, and

time spent on a lesson is recorded as members work (capped sensibly so the figures stay honest) to feed the progress above.

Pathways: a clearer, Courses-style builder and member view

Training Pathways now works like Courses — a list of stages on the left, the detail on the right.

  • Two-pane layout. Building a pathway (and following one in the member

portal) now shows the stages down the left and the selected stage's tasks and content on the right, with the current step highlighted and finished steps ticked. On a phone the outline collapses into a simple stage picker.

  • Drag to reorder. Stages and tasks can be dragged into order (with up/down

buttons as a fallback) — previously they only sat in the order they were added.

  • Clearer progress. A progress bar and per-step badges show exactly where a

member is up to; staff sign-off still works the same way.

Pathways: choose who each pathway is for

You can now target a pathway at specific programmes, the same way Courses work.

  • "Who can see this?" Each pathway has an audience setting — **All

programmes, or Specific programmes** with a tick-list of your programmes. Clubs with a single programme stay on "all" automatically. The pathways list shows each pathway's audience at a glance (and flags any set to specific programmes with none chosen).

  • Members only see pathways for their programme. In the member portal, a

member sees a pathway only when it's offered to everyone or to a programme they're currently in — so nothing shows up that doesn't apply to them.

  • Publish check. A pathway set to specific programmes can't be published

until at least one programme is chosen, so it can never go live invisible to everyone.

Pathways: a task that completes when a course is done

A pathway task can now be "Complete a course."

  • Pick a course. When building a task, choose *Complete a course* and select

one of your published courses. The member sees the course name and a link straight to it.

  • Completes itself. The task ticks off automatically once the member finishes

the linked course — they can't mark it done themselves, and there's nothing extra for a coach to sign.

Sell a course as a one-off purchase

Courses can now be sold, not just assigned.

  • Choose how a course is obtained. Each course has an access setting — free

(open to whoever the audience allows), staff-assigned (grant or comp it yourself, as before), or purchase (members buy it themselves). A purchasable course carries a price, and you can attach a certificate template to it.

  • Members buy and unlock instantly. When a member opens a paid course they

haven't got yet, they see the price and a Buy button. Payment goes straight to your club's connected Stripe account (no platform cut), and access unlocks the moment the payment is confirmed — never before. A refund made in Stripe removes the purchased access automatically (any access you granted separately stays put).

  • No double-charging. A member who already has a course — bought, assigned or

comped — is never asked to pay for it again.

Courses: target a course by level or stage

Alongside programme/lens targeting, a course can now be aimed at specific levels or stages too.

  • Level/stage audience. In a course's audience settings you can limit it to

chosen levels/stages (belts, grades — whatever your club uses), on top of the programme rule. A member sees or buys the course only when they match both the programme rule and the level rule — so, e.g., an "advanced" course can be aimed at your senior grades only.

  • Enforced everywhere. The rule is applied on the server, so a member who

doesn't match simply never sees the course (and can't reach it by link).

Courses: upload videos and files

Course lessons now take real uploads instead of pasted links.

  • Upload a video or file. A video or file lesson has an upload control with

progress, the file name, and replace/remove — no more copy-pasting a URL.

  • Kept private. Uploaded course media lives in private storage and is only

served to a member through a short-lived link once they have access to the course — never a public URL.

Courses: award a completion certificate

A course can now hand out a certificate when a member finishes it.

  • Attach a template. Pick one of your existing certificate templates (the

same ones under Settings → Certificates) on the course. When a member completes the course, their certificate is generated automatically and they can download it from the course page.

  • Reuses your designs. It uses the same certificate designer and merge tags

(name, course, completion date, club, certificate number) as grading certificates — nothing new to learn.

Courses: a dashboard and better filtering

The staff Courses page is now a proper dashboard, not just a list.

  • At-a-glance tiles. Totals for published / draft / archived, enrolled

learners, average completion, and a "needs attention" count (courses with no audience, no lessons, or a draft that already has learners) — each tile is a one-click filter.

  • Filter and search. Filter by status, programme/lens (defaulting to your

current lens, with an "All programmes" escape), audience, and access type (free / staff-assigned / purchase), or search by title.

  • Richer rows. Each course shows its status, audience, price/access model,

learner count, completion % and last-updated, with the same "…" actions menu as the rest of the app. (Revoking a member's access now asks for confirmation first — it used to remove on a single click.)

Team Sports now opens when it's set up

Fixed a bug where the Team Sports page said the module "isn't available" even though it was switched on for a programme and included on the plan. It now opens whenever it's set up for at least one programme — the same fix also covers Competitions, Timed Events and the other programme-level features.

Courses: hardening pass ahead of wider testing

A round of smaller fixes and polish on top of everything above, found while preparing Courses for a wider test — nothing here changes how the features work, just makes them more reliable.

  • A course can't go live with nobody able to see it. Publishing now checks

that the course's audience actually resolves to someone — a course restricted to "specific programmes" with none chosen, for example, can no longer be published invisible to everyone.

  • Staff can now see which of their own paid courses are still up for grabs.

The library shows a purchasable course's price and access type clearly, so it's obvious at a glance which courses are free, staff-assigned, or for sale — and how much they cost.

  • A failed certificate is never a mystery. If a completion certificate

can't be generated (for example, a template with no design attached yet), the member's completion still goes through — staff now see a clear "failed" status with a reason, and can retry generating it once the template is fixed, rather than a certificate that quietly never appears.

  • Fixed uploaded course videos not playing for some members. A video

lesson using an uploaded file (rather than a pasted link) now plays correctly every time.

  • The dashboard's price and level filters now actually work. The Courses

dashboard's paid/free filter and level-or-stage filter were previously wired to fields the page didn't have — both now filter correctly.

Courses: monthly course packages, billed on your existing Direct Debit

Alongside buying a single course outright, members can now subscribe to a course package — a bundle of courses for one monthly price, collected on the same Direct Debit you already pay your fees on. No new payment method to set up, no card details to re-enter.

  • Subscribe from the Courses page. A package shows its name, the courses

it includes, and its monthly price. If your household has Direct Debit set up, you can subscribe with one tap — if not, you're told clearly ("This package is billed by monthly Direct Debit — set up Direct Debit or buy courses individually") rather than being offered a payment method that won't work.

  • Access starts once the first payment is confirmed. Subscribing adds the

package to your next Direct Debit collection; your course access unlocks the moment that first payment is confirmed — never before, and never on a promise.

  • Cancel any time, no early cut-off. Cancelling stops future monthly

charges straight away, but you keep access to every included course until the period you've already paid for ends — nothing is removed early.

  • Buying individually is always available too. A course package never

gets in the way of buying a course as a one-off — and if a course is already included in your active package, the one-off purchase screen tells you so instead of asking you to pay again.

  • For staff: course packages are a separate, optional product from

programme membership — you define which courses go in a package and its monthly price, and members' subscriptions ride your existing GoCardless Direct Debit collection (this is deliberately not a new Stripe subscription product).

Update — 2026-07-05

5 July 2026

5 July 2026

The Parent Portal is now the Member Portal

The Parent Portal is now the Member Portal — same features, a name that fits every member, not just parents. Nothing changes about how it works or who can sign in; adult members and parents alike get the same portal, now with a name that suits everyone.

The marketing site now lists the newer modules

Our public site was still describing only the original six areas. It now also reflects the modules added since — Courses & Learning, Training Pathways, Team Sports & Fixtures, Pro Shop, Referrals, Automations, Email Deliverability, Video Review, Permissions & Roles, the any-sport terminology system, and Event Booking & Requirements — so what people see before they sign up matches what they get.

Older message content is tidied after 2 years

To keep things lean and privacy-friendly, the actual content of older messages — the body of emails, texts and Telegram messages — is now automatically cleared after 2 years. Your delivery history is kept: you'll still see who a message went to, when, on what channel, its subject, and whether it delivered, bounced or was opened. When you open a message whose content has been cleared, it now says clearly *"Message content removed per retention policy (delivery record retained)"* rather than showing a blank. Nothing changes for recent messages, and the 2-year window can be adjusted later.

Roles & Permissions — a place to fine-tune who can do what

Settings gains a new Roles & Permissions section under People & Access. Start with ready-made responsibility presets — Billing Manager, Refund Manager, Event Manager, Safeguarding Lead and more — and assign them to a staff member in one click, with an optional expiry date. For finer control you can adjust what each base role (Owner, Admin, Coach, Read-only) can do, grouped tidily by area so you're never scrolling a wall of switches. High-risk or safeguarding changes ask for a short reason, which is recorded in the audit log, and settings the platform protects show a clear lock.

Every staff member now has a Permissions action and, for support, a View effective permissions panel that lists exactly what they can and can't do right now — and *why* (their role, a preset, an individual grant, a switched- off module, an expired grant, and so on). Their assigned presets also show as chips right on the staff list. Where this isn't yet switched on for your platform, a banner makes clear that any setup you do here is prepared and simply waits until it's activated.

Starter automation templates — one click to a useful setup

New clubs (and existing ones) no longer start with an empty Automations area. A "Starter templates available" card now offers a one-click install of ready-made draft automations for the moments that matter — trial bookings and reminders, event changes, expiring requirements, failed payments, membership changes, shop orders, and match-day updates — 34 in all, each with sensibly written email and text message templates. Everything installs as a draft: nothing sends until you've reviewed the wording and published it yourself. Drafts you haven't published yet can be reset back to the original starter content at any time; anything you've published, and any templates you've written yourself, are never touched. A few starters wait politely until their module (like Team Sports or Video Review) is switched on.

Automations now live in one place

Automations are now created and managed only in the dedicated Automations area. The old builder that lived under Settings has been retired: that screen now shows a short notice pointing you to the new home, with a link to the migration console. Nothing has been turned off — any rules you set up previously keep running exactly as before, and all your history is intact. This is purely a tidy-up so there's a single, clear place to build and review communications triggers.

Team Sports: matchday messages

For clubs using the Team Sports module, three matchday moments can now drive automations from the Automations builder: when a fixture is published, when the selection (team sheet) is published, and when a result is recorded. Pick one of these as a trigger and the message goes to the right families — everyone rostered for a published fixture or result, and just the selected players for a team sheet. Merge tags let you drop the opponent, kick-off time, venue, the player's role (starter or bench) and the final score straight into the message. As with the rest of Team Sports, this stays completely hidden until the module is enabled per program in Settings → Modules, and it works for any team sport.

Data export is now admin-only and audited

Downloading a member's full data export (the GDPR subject-access bundle, including any accident-report attachments) now requires admin access and is recorded in the club audit trail. Previously any signed-in staff member could download it. Day-to-day member screens are unchanged — this only affects the full export.

More accurate dashboard for large clubs

Clubs with very large member lists could previously see slightly under-counted dashboard KPIs (active members, retention, attendance rate) because a background query capped out silently. The dashboard now reads the full list, so the numbers are exact at any club size.

Penny-accurate membership revenue

The Membership report's Total Monthly Revenue and per-plan revenue now calculate in exact pence, in line with the rest of your money reports. For monthly plans nothing changes. If you have weekly, quarterly or annual plans, you may notice the total shift by a penny or two versus before — this corrects a tiny rounding drift in the old calculation, so the figure is now exact.

Deleting a member now protects safeguarding and accounting records

When you permanently delete a member's data (a GDPR erasure request), the app now does the right thing automatically instead of removing everything.

  • Accident and incident reports are kept. Safeguarding records must be

retained under club policy and statutory guidance, so they're no longer deleted — they're moved to a restricted, retained state with a recorded retention reason and review date. Their attached PDFs are kept too. From then on, only staff with safeguarding accident-detail access (admins and your safeguarding lead) can see or open them; they no longer appear in the ordinary accident-report list — nor in the Accidents report — for other staff. (The review date is exactly that: a reminder to review, never an automatic deletion.)

  • Financial records are kept, but personal details are removed. Invoices and

shop orders stay on file for your accounts — invoice numbers, amounts, dates and payment references are all preserved exactly — but the person's name, email and other contact details are stripped (the name shows as *"Removed (data request)"*). This also fixes a case where a member's shop orders could be removed along with their household; those accounting records are now retained.

  • You're told exactly what happened. The delete confirmation now reports how

many records were retained or anonymised, not just what was removed — nothing is retained silently.

The retention review window (currently defaulting to six years) is a club-policy setting your club should confirm.

Event documents, competition music and syllabus videos now use secure links

Files you upload — organiser entry-document PDFs, competitors' freestyle music tracks, and syllabus/technique videos — are now served through secure, expiring links instead of permanent public web addresses. Nothing changes in how you use them: you upload the same way, and coaches, parents and event organisers open and download them exactly as before (including from a parent's competition-entry link and in the student portal). The difference is behind the scenes — these files can no longer be reached by anyone who happens to guess or share a raw file address, so a child's video or an event PDF is only opened by someone actually signed in (or holding the specific entry link). YouTube and Vimeo links you've pasted are unaffected.

Separately, the demo club no longer accepts real video uploads — the sample videos in the tour still play, but visitors can't add or remove media, keeping the demo clean for the next person.

Subscription billing, paid upgrades and payment-provider setup are now owner-only

The highest-risk financial controls now sit with the club owner only, not every admin:

  • Your Allsorted subscription — starting or managing the club's (or group's)

subscription, and opening the Stripe billing portal — is now owner-only.

  • Paid upgrades — subscribing to a paid add-on module or upgrading your plan

tier is owner-only. Admins can still start free trials as before.

  • Connecting or disconnecting a payment provider (GoCardless Direct Debit) is

owner-only, and locked so it can never be delegated to another role.

Admins keep running the club day-to-day; these specific pay-provider and subscription actions are reserved for owners. Where an admin previously saw one of these buttons, they now see a short note explaining it's owner-only, so there's no confusing error.

Communications config is now admin-only

Creating, editing, or deleting communication configuration — automation flows, email templates, email skins and snippets, telegram recipients, and suppression entries — now requires admin access. Coaches and read-only staff can still view these, and everyday sending is unchanged. This closes a gap where a read-only staff member could alter club comms setup.

Safer data erasure and complete data exports

Two behind-the-scenes improvements to data protection. First, a member data export (the GDPR subject-access bundle) now includes the full set of records held about a member — attendance, assessments, communications, orders, course progress and more — so an export is genuinely complete. Second, the erase-member action now refuses to run unless the safeguarding-retention safeguards are active on the database, preventing any possibility of accidentally deleting records that must be retained.

Early-bird event pricing fix

Fixed an issue where an event booking paid at the early-bird price could be left unconfirmed if the payment settled after the early-bird deadline. Bookings are now always reconciled against the price that applied when the payment was made.

Event manage page works properly on phones

The Bookings and Invites lists on an event's manage page now switch to a stacked card layout on small screens, so every control — attendance (Present/Late/Absent), Cancel, Re-invite, Promote, status and payment info — is reachable on a phone instead of being cut off at the edge. Attendance buttons are now a comfortable tap size on mobile. The desktop layout is unchanged.

Safer buttons and clearer confirmations

A round of consistency work across settings and event tools: buttons that create charges, save automation categories, cancel-and-notify a closure, or save club details can no longer fire twice from a fast double-tap (no duplicate rows or double notifications). And a few important actions — renewing a member's annual requirement, deleting a booking requirement, and archiving a requirement — now show a proper confirmation dialog with clear success and error messages instead of a plain browser prompt.

The same treatment now covers the busiest day-to-day screens. Taking the register (sealing a register, cancelling a booking, and knowingly marking an expired member present), grading days (publishing certificates for an event or a whole session, and cancelling an unpaid grading booking), and external competitions (confirming or rejecting an entry, with a clear refund warning when a paid entry is rejected, and deleting a division) all now use the same tidy confirmation dialogs and slide-in success/error messages, in place of the old browser pop-ups. The actions themselves are unchanged.

A refreshed marketing site

The public marketing pages have had a visual refresh and now show the full product: Courses, Training Pathways, Team Sports, Pro Shop, Referrals, the Automations builder, email deliverability, video review, permissions and more — alongside the "one platform, any sport" story. Every page (home, features, pricing, who-it's-for and each sport page) now shares one polished, consistent layout with subtle motion, so the site feels of a piece.

Privacy & Terms tidy-up

The Privacy Policy and Terms pages now show a clean header with just the logo (back to the homepage) and a login link — they no longer accidentally display the logged-in staff navigation.

Settings: clearer, less martial-arts-specific (phase 1)

Settings has had a first round of clarity fixes so it reads correctly for every kind of club, not just martial-arts ones.

  • Programs no longer all say "Martial arts." The Modules & Programs screen

used to label every program "Martial arts"; it now shows what the program actually does (e.g. "Team sports", "Timed events", "Progression") or a plain "Program" when there's nothing distinctive to show.

  • Add-ons show status, not a misleading price. The old "£20/month" tag on

add-on modules has been replaced with plain status (Included / on trial / available / not entitled). Nothing about billing has changed.

  • Team Sports and other add-ons explain themselves. When an add-on is

switched on for a program but your club isn't entitled to it yet, Settings now says so clearly, instead of the toggle silently having no effect.

  • "Your subscription & add-ons" is now clearly separate from the module

on/off switches, so "plan" no longer means two different things on one screen.

  • Less belt/Kup/Dan/"your art" wording across grading, certificates,

imports, waiting lists and the member portal — labels now follow each club's own terminology, and members are called "members" rather than "parents". Existing martial-arts clubs see the same wording as before.

  • Comms, Templates, Deliverability and Automations in Settings now point to

the Comms Centre, which is their proper home.

Settings: smoother module toggles + clearer program access

  • Module switches animate smoothly instead of flashing "Saving…". The

switch slides to its new position the instant you click; the change still saves safely in the background (and reverts if the save fails).

  • Tidier module rows. Each module now shows a short name with an "i" you can

hover for the detail — so the rows line up neatly and the switches don't jump around. Where a module is switched on but not included on your plan, a small "Not active" tag explains why its screens don't appear yet.

  • Programs "Belts" button follows your wording. In Settings → Programs the

per-program shortcut now uses your club's own term (Belts, Levels, Grades…), not "Belts" for every club.

Settings: clearer navigation (phase 2)

The Settings menu has been reorganised so it's quicker to find things.

  • Clearer groups. Sections are now grouped as Club & Schedule, Programmes &

Grading, Money, Enrolment, Communications, People & Access, and Advanced — with vertical-agnostic names (no more "Curriculum").

  • Enrolment split out of Money. Annual Requirements, Waiting Lists and Forms

now sit together under Enrolment, instead of being mixed in with billing.

  • Comms live in the Comms Centre. Email Templates and Deliverability have

moved to the Comms Centre (their proper home); opening the old Settings links now takes you straight there. The multi-step Comms Flows editor stays in Settings. The retired Automations settings link now goes straight to the Automations area.

Settings: add-on clarity + safer nav (phase 2.5)

  • Add-ons are shown by status, not sold in Settings. The "Your subscription &

add-ons" list is now read-only: no prices, and no "Subscribe"/"Upgrade" buttons (there's no self-serve checkout). You can still start a free module trial; subscription changes live in Your Plan, and support can add a module on request.

  • Clearer "not available" screens. Team Sports, Courses and Pathways now

explain that a module you've switched on may still need to be included on your plan (rather than telling you to switch on something that's already on).

  • Tidier menu for non-owners. The Roles & Permissions section is only shown

to owners (it was always owner-only — the link just used to error for others).

Settings: reliability & mobile polish (backlog wave)

  • No accidental duplicates. A batch of save/add buttons across Settings —

message templates, email skins & snippets, comms flows, the SMS test-send, belt/level ranks, grading checklists, charges, closed-dates, 2FA and forms — are now click-safe, so a fast double-click can't create duplicate rows (or a duplicate SMS).

  • Failures no longer look like successes. In Club Group, a failed rename or

action now shows a clear red error instead of the green "done" banner.

  • Audit log paging fixed. "Next" now correctly stops at the last page, and

the footer no longer implies the page size is the total.

  • Waiting-list edits give feedback. Changing a list's capacity now shows a

Saving / Saved / Couldn't-save state and reverts if the save fails.

  • Small-screen fixes. The Memberships "Terms" table, the Staff inline-edit

row, and the Deliverability suppression list no longer clip their controls on narrow phones. Email templates now show the correct SMS channel badge.

Settings: simpler features model + clearer navigation (phase 3)

  • Courses and Training Pathways now work end-to-end for clubs they're

granted to — they were built but couldn't be switched on because they were never registered in the platform's module catalogue.

  • Modules & Programs is now about access, not sales. The old commercial

block is a read-only "Your enabled features" summary using plain states — Included, Granted, Active, Available, or Not available (contact support). No prices, no trials, no subscribe/upgrade buttons; your subscription lives in Your Plan.

  • Set up once, then settings. A program's setup wizard now shows

"Set up progression" only until you've completed it — after that the action reads "Progression settings".

  • Tidier program rows. The Programs list now uses the same edit-pencil and

"…" menu as the rest of the app (Edit program / Manage stages / Archive), and no longer says "Belts" for every club — wording follows your club's own terminology, with a neutral "Stages" default.

  • Clearer Settings menu. Groups are now Club Setup · Programs & Activities ·

Payments · Members & Enrolment · Communications · People & Permissions · Advanced, with Member Portal settings under Members & Enrolment. All existing links keep working.

Settings: a calmer, card-based navigation (phase 4)

  • Settings now opens on a home screen of clear areas — Club Setup, Programs

& Activities, Members & Enrolment, Payments, Communications, People & Permissions and Advanced — each with a plain-English description and its most common tasks one click away. No more wall of 30+ options.

  • Pick an area, see just that area. Opening a group shows only its settings;

opening a setting shows a simple breadcrumb and a side list of its siblings — so you always know where you are, and rare/technical tools sit under Advanced rather than crowding everything else.

  • Mobile is card-based — the cramped dropdown and grid overlay are gone;

tap through areas and use "Back" to step out. No sideways scrolling.

  • Memberships is now a scannable table — name, status, price/billing model,

linked programme and member count at a glance — with the full plan editor tucked behind "New membership" / Edit instead of always on screen.

  • Annual Requirements is now a matrix: each requirement as a row with its

cover, renewal, cost and what happens once it expires, shown at a glance.

  • Every existing Settings link keeps working.

Grading scoring: mat lines that switch, and tidier grade groups

  • Click a mat line to bring it on — on the scoring page the lead can now tap

any line in the left rail to put it on the mat (the same as its "On the mat" button), so running down the lines is one click each.

  • Hover a line to see who's on it — on a computer, hovering a line in the

rail slides out a preview of the whole line in mat order before you switch to it. (Tablets keep the always-visible rail.)

  • Smoother arranging — in Arrange mode you can now drag a student to an exact

spot in a line (a marker shows where they'll land) and reorder within a line, instead of always dropping to the end.

  • Neater grade groups — a grade group with only a couple of students no

longer stretches its coloured band across the whole row; each group now sizes to the students standing in it.

Grading scoring: lines on top, clearer marks, faster notes

  • Mat lines moved to the top. The lines now run left→right in a strip across

the top of the scoring area instead of down the left side, so a big line (6-across) keeps the full width for scoring. The strip stays stuck to the top as you scroll, so you can switch lines without scrolling back up. Hovering a line still previews who's on it; clicking still brings it on.

  • RAG buttons match the assessments screen — Red, Amber, Green, in that

order, everywhere marks are set.

  • See who's been marked. In a line with more than one student, a card that's

been scored for the item on screen gets a green tick and tint — so a mark landing just before the line auto-advances is unmistakable.

  • Tidier student cards. Narrower cards showing the first name (full name on

hover), reclaiming space when several students are up.

  • Faster notes. Long-pressing a Red/Amber/Green now opens the note with that

mark already selected and the cursor in the note box, ready to type; the mark buttons sit just above Save.

  • Removed the "Needs a chat / Fine" key from the scoring screen (it's on the

live scores page).

Member portal: Courses now reachable

  • Fixed a gap where a course assigned to a student never appeared in their

member portal — the Courses page existed but nothing linked to it. A Courses tab now shows in the portal (desktop sidebar + mobile More menu) whenever the selected child has a course, so assigned learning is one tap away.