---
title: Billing Types
slug: billing-types
docTags: 
createdAt: 2026-03-06T19:27:17.314Z
---

REMMU supports six billing models. Each class is set to one or more billing types when created.

## 🏷️ Monthly

The student pays a fixed fee at the start of each calendar month.

- Fee is the same every month regardless of attendance
- Best for students with a consistent weekly schedule
- Payments are generated automatically at the start of each month
- Overdue if not paid within the grace window

**Example:** RM 150/month for two classes per week.

***

## 📦 Package

The student pre-purchases a block of sessions. Each attendance deducts one session.

- Student pays upfront (e.g. 10 sessions for RM 200)
- Sessions are tracked automatically via attendance check-in
- When sessions run low, student is notified to purchase another package
- Packages can have an expiry date

**Example:** Buy 10 yoga sessions for RM 180 — use them within 3 months.

***

## 💳 Per Session

The student pays each time they attend.

- No commitment — pay only when you show up
- Best for drop-in students
- Payment can be collected before or after the session
- Suits trial classes or irregular attendees

**Example:** RM 25 per session, paid at the door.

### How invoices are created

By default, marking a per-session student **Present** (or Late) automatically creates a pending invoice for that session.

You can also create the invoice **before the class starts** — useful for collecting payment at the door. On the attendance roster, each per-session student without an invoice shows a **Generate Invoice** button (admins and team members only). Click it to raise the session invoice on the spot; the roster then shows the invoice number and whether it's paid.

- Generating early never creates duplicates — marking the student Present later reuses the same invoice
- The button is only available for today's or past sessions, never future ones
- If the student ends up Absent, the invoice is **not** automatically cancelled — it stays exactly as it was (pending or paid). Refunding or reassigning it to a future session is a manual admin action

:::hint{type="info"}
Prefer to raise every per-session invoice yourself? In **Settings → Billing**, turn off **Auto-invoice on attendance** (shown when Per Session is enabled). Attendance marking then never creates invoices — only the Generate Invoice button does.
:::

***

## ⏱️ Per Hour

The student is billed for actual hours attended each month — rate × session duration × number of lessons.

- **Hourly rate** set on the student's enrolment (or a fallback rate on the class)
- **Duration per session** comes from the class schedule
- **Lesson count** comes from attendance records for the billing month
- Calendar holidays / off-days are excluded automatically

Each month, an invoice is generated showing the rate, duration, and lessons attended — fully itemised. Admins can review and tweak the lesson count from the **Review Drafts** page before invoices are sent.

**Example:** RM 80/hour × 1.5 hours/session × 8 lessons attended = RM 960 for the month.

Per-hour billing is ideal for one-to-one tutoring or coaching where attendance varies month to month.

***

## 📊 Frequency-Based

The student pays a fee that varies depending on how many sessions per week they attend and their chosen billing cycle. Each student is enrolled at a specific frequency tier.

- Admin defines fee tiers per class — combining sessions/week and billing cycle (e.g. 2x/week · Monthly = RM 140, 2x/week · Quarterly = RM 390)
- When enrolling a student, the admin selects their sessions/week and billing cycle
- Invoices are generated automatically at the selected tier rate and cycle
- Supports any sessions/week (1x, 2x, 3x, 4x, 5x, etc.)
- For students attending 2x or more per week, additional class slots are assigned (one per extra session)
- Ideal for academies where students choose their own weekly frequency

**Example:** A martial arts class offers 1x, 2x, or 3x per week, each payable monthly or quarterly. Each student pays the rate matching their frequency and payment cycle.

### Billing cycles per tier

Each tier (sessions/week combination) can have one or more billing cycles:

| Cycle           | Billing period                   |
| --------------- | -------------------------------- |
| **Monthly**     | Invoice generated each month     |
| **Quarterly**   | Invoice generated every 3 months |
| **Semi-Annual** | Invoice generated every 6 months |
| **Annual**      | Invoice generated once per year  |

This lets you offer upfront discounts — e.g. monthly rate RM 150, but quarterly prepay for RM 420 (saving RM 30).

### Additional class slots

For students attending 2+ sessions per week, admin selects a separate class slot for each extra session during enrollment. For example, a student enrolling at 3x/week on a Monday class would also be assigned two additional slots (e.g. Wednesday class and Friday class).

### Deposit per tier

Each tier can have an optional deposit amount. The deposit is collected as part of the enrollment invoice when the student first enrols.

### Tier suggestions

When creating a frequency-based class, REMMU can suggest fee tiers from other classes in the same category. Click **Copy from \[class name]** to pre-fill the tier table.

:::hint{type="info"}
Frequency-Based billing must be enabled in **Settings → Billing** before it appears as an option when creating classes.
:::

***

## 🧪 Trial Class

Allow students to try a class before committing to a paid plan.

- Students enrol with billing type **Trial** — a trial fee (or free) is generated
- Maximum trial sessions is configurable (default: 1 session) — can be overridden per class
- After the trial period, the student converts to a paid billing type (monthly, package, etc.)
- The trial fee can optionally be **credited towards the first paid payment** on conversion

**Example:** A student tries a dance class for RM 30 (1 session). When they convert to monthly billing, RM 30 is deducted from their first invoice.

### Trial settings

Configure trial class defaults in **Settings → Billing** (shown when Trial billing is enabled):

| Setting                                | What it does                                                                                                      |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Default max trial sessions**         | How many sessions a trial student can attend before converting (can be overridden per class)                      |
| **Trial fee redeemable on conversion** | When enabled, the trial fee paid is deducted from the student's first payment after converting                    |
| **Redeemable on**                      | Choose which billing types the trial credit can apply to (monthly, package, per session, frequency)               |
| **Credit expiry**                      | How many days the trial credit stays valid after payment — expired credits are excluded from automatic redemption |

### Trial confirmation notification

When admins enrol a student in a class with **Trial** billing, a **Send trial confirmation** toggle appears in the enrolment dialog. With it on, the student (and guardians) receive:

- A **push notification** with the trial class name and date/time
- A confirmation **email** with the same details and a link to view the class

The class time is formatted in 12-hour AM/PM. The toggle defaults on and is opt-in per enrolment — useful when an admin wants to add a trial quietly without alerting the student until later.

The same notification fires when a trial signup is created from the public landing-page form.

***

### Trial credit on conversion

When converting a trial student to a paid billing type (monthly, package, or frequency), the enrolment form shows the student's current trial credit:

- **Valid credit** — the unredeemed, non-expired trial fee is automatically deducted from the first payment
- **Expired credit** — shown as struck-through text with the number of days past expiry; not applied by default
- **Admin override** — check **Apply anyway (admin override)** to redeem expired credit as a courtesy

The resulting discount is shown in the enrolment summary before you confirm.

:::hint{type="info"}
Trial billing must be enabled in **Settings → Billing** before it appears as an option when enrolling students.
:::

### Opening a class to public trial signup

To let prospects self-book a trial from your landing page, edit the class and enable **Trial bookable**. The class will then appear in the dropdown on the [Trial Class Signup](docId\:UcimjEtV0vI1uLSuP_yQD) block.

***

## ⚙️ Choosing the Right Billing Type

| Scenario                                      | Recommended Type |
| --------------------------------------------- | ---------------- |
| Regular students, fixed weekly class          | Monthly          |
| Students who attend at different frequencies  | Frequency-Based  |
| Students who attend inconsistently            | Package          |
| Drop-in students                              | Per Session      |
| New students trying a class before committing | Trial            |
| Kids' academy with term-based fees            | Monthly          |
| Fitness bootcamp with session packs           | Package          |

***

## 🔧 Mixed Billing

A single class can accept more than one billing type — e.g. both Monthly and Package. Tick each type under **Billing Types for This Class** when editing the class, and choose which one applies when you enrol each student. See [Classes & Schedule](docId\:ToGhAc6Im0ghC9gpJXZJJ).

***

## 🔛 Turning Billing Types On or Off

Billing types are enabled academy-wide in **Settings → Billing**. Each switch saves the moment you flip it — there's no Save button.

Only types enabled here can be offered on a class.

### Bulk-editing billing types across classes

To change which billing types many classes offer at once, without opening each class:

1. Go to **Locations** and click **Bulk Billing**
2. **Select classes** — classes are grouped by location, with **Select all** / **Deselect all**
3. **Choose billing type changes** — click a type to cycle through **Enable → Disable → Leave as-is**
4. Under **Online sign-up**, do the same for **public enrolment** and **public trial sign-up** (see [Classes](docId\:ToGhAc6Im0ghC9gpJXZJJ))
5. Click **Update X classes**

:::hint{type="info"}
Bulk Billing only changes which billing types and online sign-up options each class offers. Fees and tiers already set on each class aren't changed — if you enable a type that has no fee set on a class yet, edit that class to add the fee.
:::
