Mockup · not live

Academy › Students, attendance against payment. One month at a time, the two ways a student and their money fall out of step: training that nothing paid for, and money that bought nothing. New versus today: today a manager compares the roster with the payments list by eye, and the Academy Health tab that does it recomputes on open; here the join is a stored monthly view, it survives the page, and the same chip appears on the student and on the roster. The one primary action is Issue requests (5) — one payment request per student in the first list. The “Unpaid” chip is the same component wherever the student appears, derived from this month’s join, so it clears itself when the request is paid.

Months before September are frozen: the join is stored once the month closes.

Training without paying (5)

Attended or holds a group seat in September with no package covering the date.

Costs THB 28,500.00
Student Group Attended Package status Last payment Action
Nattaya P. Unpaid · 3 sessions
Gold BMon + Wed
3 Past due
1 AugTHB 9,500.00
Ben K. Unpaid · 4 sessions
Silver ATue
4 No package never
Mika S. Unpaid · 2 sessions
Gold AThu
2 Expired 31 Aug
1 AugTHB 14,500.00
Tom W. Unpaid · 3 sessions
Silver BMon
3 No package
15 JulTHB 12,500.00
Priya R. Unpaid · 1 session
Bronze ASat
1 Past due
1 AugTHB 4,500.00

Paid, not training (3)

Paid for September and holds no seat for the rest of the month. Churn, not debt.

THB 33,500.00 at risk
Student Package Sessions reserved Last attended Action
Arisa T. Performance · THB 14,500.00 0 22 Aug
Kai L. Growth · THB 9,500.00 0 22 Aug
Ploy N. Growth · THB 9,500.00 0 22 Aug
Rules
How the two lists are built. Same words the setting screen uses.
A group session

A lesson whose class type is group, or whose name contains the word “Group”. Private lessons are never in these lists.


Covered

The student has an active package whose period includes the date of the lesson. A session bank counts while it has sessions left and has not expired.


Training without paying

At least one group session this month that no package covers — attended, missed as a no-show, or still reserved. Past due counts: the month was never paid.


Paid, not training

A paid package for this month and no reserved seat left in it. Nothing is owed; somebody should call.


A student in both

Cannot happen. A covered date is never unpaid, so each student appears at most once.