Show price cadence on the front end and confirm the amount before booking #124

Closed
opened 2026-07-28 17:42:37 +00:00 by thatguygriff · 0 comments
Owner

Problem

Front-end prices are shown as a bare amount — the booking form's lesson-type
picker reads $50.00 CAD and a group-class card reads 120.00 CAD — with no
indication of when that money is due. The offering's billing_mode already
distinguishes four very different commitments, and a student cannot tell them
apart:

billing_mode What the student is actually agreeing to
one_time charged once, at booking
full_term charged once, up front, for the whole term
weekly charged per lesson, 24h before each lesson, indefinitely
monthly charged on the 1st of each month for that month's lessons

40.00 CAD on a card is a one-off to one reader and a recurring monthly charge
to another. On top of that, the amount shown is pre-tax while the amount billed
is Payment::total() (subtotal + HST), so the figure a student sees on the way
in is not the figure they are charged.

Nothing on either form asks the student to acknowledge the cost. The only
checkboxes are the studio policy acceptances; the price is passed silently and
the next thing that happens is a card charge or an e-transfer request.

Wanted

  1. Show the cadence beside every price on the front end — at booking, up
    front, weekly, or monthly — wherever a price is displayed to a student
    (booking form lesson-type picker, group-class cards).
  2. A second confirmation on the way in. Booking a lesson and enrolling in a
    group class should each require an explicit "I agree to pay this amount"
    acknowledgement, separate from and in addition to the policy acceptances,
    stating the amount actually billed.

Notes

  • A weekly reservation of a one_time lesson type is charged per lesson for
    every week it claims, and the claim can come up short when another student
    takes one of the times first — the quoted total needs to be a ceiling, not a
    promise.
  • Free offerings have nothing to agree to.
## Problem Front-end prices are shown as a bare amount — the booking form's lesson-type picker reads `$50.00 CAD` and a group-class card reads `120.00 CAD` — with no indication of **when** that money is due. The offering's `billing_mode` already distinguishes four very different commitments, and a student cannot tell them apart: | `billing_mode` | What the student is actually agreeing to | |---|---| | `one_time` | charged once, at booking | | `full_term` | charged once, up front, for the whole term | | `weekly` | charged per lesson, 24h before each lesson, indefinitely | | `monthly` | charged on the 1st of each month for that month's lessons | `40.00 CAD` on a card is a one-off to one reader and a recurring monthly charge to another. On top of that, the amount shown is pre-tax while the amount billed is `Payment::total()` (subtotal + HST), so the figure a student sees on the way in is not the figure they are charged. Nothing on either form asks the student to acknowledge the cost. The only checkboxes are the studio policy acceptances; the price is passed silently and the next thing that happens is a card charge or an e-transfer request. ## Wanted 1. **Show the cadence beside every price on the front end** — at booking, up front, weekly, or monthly — wherever a price is displayed to a student (booking form lesson-type picker, group-class cards). 2. **A second confirmation on the way in.** Booking a lesson and enrolling in a group class should each require an explicit "I agree to pay this amount" acknowledgement, separate from and in addition to the policy acceptances, stating the amount actually billed. ## Notes - A weekly reservation of a `one_time` lesson type is charged per lesson for every week it claims, and the claim can come up short when another student takes one of the times first — the quoted total needs to be a ceiling, not a promise. - Free offerings have nothing to agree to.
thatguygriff added the paymentsenhancement labels 2026-07-28 17:42:37 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Unsupervised/unsupervised-scheduler#124