Appearance
Setting up fees
Building your fee structure once, so collection is a two-click job all year. 30 minutes with the wizard, or an afternoon by hand.
Fees are built in three layers. Understanding them saves a great deal of rework.
| Layer | What it is | Where |
|---|---|---|
| Fee types | The names of things you charge for — Tuition, Transport, Exam | Finance & Fees → Fees Setup → Fee Types |
| Fee groups | A structure: which fee types, how much each, when each is due | Fees Setup → Fee Groups |
| Assignment | Which students are on which structure | Fees Setup → Assign Fees |
Nothing is owed by anybody until the third step. A fee group on its own charges no one.
The fastest way in: Quick Setup
Most schools charge tuition in equal installments. The Quick Setup wizard builds that whole structure from three answers.
| You choose | Example |
|---|---|
| Frequency | Monthly (12), Quarterly (4), Termly (3), Half-Yearly (2) or One-Time Annual |
| Total amount for the year | 24000 |
| Start date | Pre-filled with your academic session's start date |
You can also set how many days before each due date the installment becomes visible to parents, and whether a late fine applies.
Preview shows the exact schedule — every installment, its amount and its dates — before anything is created. What you see is what gets saved.
The installments always add up to exactly what you typed
₹24,000 over 7 installments does not divide cleanly. The rounding remainder goes onto the last installment, so the total is never a rupee off.
Put the year in the fee group's name
Call it Tuition 2026-27, not "Tuition".
Fee assignments are not filed by academic year. If you reuse the same fee group next year, every student already on it is silently skipped — you get "Skipped 340 already assigned" and nobody is charged for the new year.
A new group per year is the only structure that works. It also keeps last year's numbers readable.
Building a structure by hand
For anything the wizard does not cover — transport, exam fees, a class-specific structure — use Fee Groups → Add.
For each fee type you add to the group, you set:
| Field | What it means |
|---|---|
| Amount | What that installment costs |
| Due date | When it must be paid by |
| Demand date | When the parent first sees it |
| Fine type | None, a fixed amount, or a percentage |
| Fine amount | How much, if a fine applies |
Demand date is the quiet feature that keeps parents calm
Set demand dates through the year and a parent sees one installment at a time, as it becomes relevant. Leave them all at the start of the year and every parent opens the app in April to a full year's bill. Same money, very different phone calls.
Fines
A fine applies automatically once the due date has passed and the installment is not paid.
Fines are calculated when the item is looked at, not stored as a debt. So a fine figure changes if the rules change, and nothing is "owed" until it is actually collected at the counter.
Discounts
Fees Setup → Fees Discount holds reusable discounts — sibling concession, staff child, merit scholarship.
| Field | Notes |
|---|---|
| Name | What it is |
| Discount code | Your own short code |
| Type | Fixed amount, or a percentage |
| Amount | The value |
Discounts defined here are picked from a list when you collect, so the concession is recorded consistently rather than being typed differently by three people.
Assigning fees to students
Fees Setup → Assign Fees
- Choose the fee group
- Filter to a class and section, and select the students
- Assign
You should now see "Fees assigned successfully to N students."
Students who already have that group are skipped and counted separately, so re-running an assignment is safe within a year.
Assign to a class, not to the whole school, when structures differ
Different classes usually pay different amounts. That means one fee group per class band — "Tuition 2026-27 Primary", "Tuition 2026-27 Senior" — each assigned to its own students.
You can also assign a fee group while admitting a student, which saves coming back here for every new admission.
Removing an assignment
Unassigning removes the structure from the student. Do it for a student who was put on the wrong group before any money changed hands.
Do not unassign to "fix" a payment
If a payment has been collected against a fee, unassigning it is not the tool — reverting the payment is. Removing an assignment that has money against it makes the school's books wrong in a way that is tedious to trace back.
The order that works
- Fee types — the heads you charge for
- Fee groups — one per class band, per year, with the year in the name
- Discounts — the concessions you actually give
- Assign — class by class
- Then, and only then, collect
Real example
Apex Academy, for 2026-27:
- Quick Setup, Monthly, ₹24,000, starting 1 April, 7 days lead, ₹50 fixed fine → Tuition 2026-27 Primary, 12 installments
- Quick Setup again with a different total → Tuition 2026-27 Senior
- A manual group for Transport 2026-27, four quarterly installments
- Two discounts: Sibling 10%, Staff Child 50%
- Assigned class by class — about fifteen minutes
Their mistake in year one: naming the group "Tuition". In April 2027 they re-assigned it and 900 students were skipped. They caught it because the collection total that month was nearly zero.
Common problems
| What you see | Cause |
|---|---|
| "Skipped N already assigned" and nobody is charged | You reused last year's fee group. Create a new one with the year in its name |
| A parent sees the whole year's fees at once | All demand dates are set to the same early date |
| A parent cannot see a fee you assigned | Its demand date has not arrived yet |
| Fines are not appearing | The fee group's fine type is None, or the due date has not passed |
| The fee group total does not match what you typed | Check each installment amount — a hand-built group does not enforce a total |
| Students in one class are charged the wrong amount | They were assigned a fee group built for another class band |
| A new admission has no fees | Fee groups are not automatic. Assign at admission, or from Assign Fees afterwards |