> ## Documentation Index
> Fetch the complete documentation index at: https://educontroldoc.pixelspectivetech.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The fee matrix

> Pricing every fee item for every class in a term, in one grid.

The fee matrix is the grid where your [fee items](/docs/fees/fee-items) meet your [classes](/docs/before-the-term/classes-and-subjects). Each cell is what that class pays for that item, this term.

|              | Creche | KG 1   | Basic 1 | … | JHS 3  |
| ------------ | ------ | ------ | ------- | - | ------ |
| **Tuition**  | 250.00 | 280.00 | 320.00  | … | 450.00 |
| **PTA dues** | 20.00  | 20.00  | 20.00   | … | 20.00  |
| **ICT levy** | —      | —      | 35.00   | … | 50.00  |

A blank cell means that class is not charged that item at all. In the example above, Creche and KG pay no ICT levy — that is a blank, not a zero.

<Tip>
  A zero and a blank are different, and the difference shows on the invoice. Zero prints a line at GH₵ 0.00, which is how you show a family that something is included at no cost. Blank prints nothing at all.
</Tip>

## Filling it in

The grid is built for keyboard entry — set a whole row across the classes without reaching for the mouse. Prices are entered in cedis and stored in pesewas.

Every class you run needs a price for every compulsory item it is charged, before you bill. A missing price is the most common reason a billing preview comes out lower than expected.

## Each term is priced separately

The matrix belongs to a term. Term 2's grid starts empty rather than inheriting Term 1's, which is deliberate: fees change between terms, and a grid that silently carried forward would bill last term's prices without anyone noticing.

## Check the preview, not the grid

The grid is what you charge a class. What a *pupil* is billed is the grid price adjusted by their fee category and their enrolment. The only reliable check is the billing preview, which shows the real totals before anything is issued — see [Running term billing](/docs/billing/running-term-billing).

<Warning>
  Changing a price after invoices are issued does not change those invoices. An issued invoice is fixed. Correcting an over-charge that has already gone out is a [credit note](/docs/payments/corrections), not a grid edit.
</Warning>

## Who can edit it

The `edit_finances` permission. Schools that want a second pair of eyes on price changes can require `approve_fee_changes` as well.
