Skip to content
← All guides
For management / admins

Staff time & attendance

Staff time is an optional module that gives a madrassa one record of the hours its teachers taught and the occasions somebody was late or absent. Teachers log the sessions they delivered; management review those hours, optionally apply an hourly rate, and mark each one under review, due or paid. Separately, management record a lateness or an absence when one happens.

What this module does not do

Makatib.App records hours and marks them. It does not pay anybody, hold money on your behalf, calculate tax, or send anything to a payroll provider. Marking a session as paid is your own bookkeeping note that you have settled it outside the app, in the same way you would tick it off on a sheet.

This is a different thing from the fees module, which is about money families pay you. The two never meet: a staff rate is not a fee, and nothing recorded here appears on any invoice. See the fees guide for that side.

There is also no daily teacher register. You cannot mark a teacher present, and there is no list to work through each evening. The module records exceptions only.

Before you begin

Have these ready before you switch the module on:

  • an admin who will review hours and decide what is marked paid;
  • your teachers added, with classes assigned if you want sessions attributed to one;
  • an agreed hourly rate for each teacher you pay by the hour, or a decision that you record hours without pricing them; and
  • a clear message to staff about what logging their hours means, so nobody reads “Due” on their screen as a promise you have not made.

Turn staff time on

The module is off until an admin switches it on. Until then it appears nowhere, for anybody.

  1. Open Admin → Settings → Staff time.
  2. Tick Use staff time & attendance.
  3. Choose which halves you want. Teacher timesheets lets teachers log hours; Teacher attendance exceptions lets you record lateness and absence. You can run either on its own.
  4. Set the currency you record rates in.
  5. Choose Save settings.

Once it is on, admins see Staff time in the admin navigation, and if timesheets are enabled teachers see My hours in the teaching sidebar. Switching a half off hides its tab immediately; nothing already recorded is deleted.

Set hourly rates

A rate is optional. Without one, a teacher's hours are still recorded and can still be marked due or paid; they simply carry no amount.

  1. Open Admin → Staff time → Hourly rates.
  2. Type the rate for each teacher you pay by the hour, and choose Save on that row.
  3. Leave a rate blank if you do not price that teacher's hours.

A blank rate and a rate of 0.00 mean different things. Blank means you do not price those hours at all. Zero prices them at nothing, which is what you want for a volunteer whose time you still want counted.

Changing a rate never rewrites an amount already recorded against a session. Once you have priced a session, that figure is fixed. A rate you agree in January cannot silently re-price what you settled in November.

Log a teaching session

  1. The teacher opens Teaching → My hours and chooses Log hours.
  2. They set the date, the time they started and the time they finished.
  3. They choose a class if the session was one, or leave it blank for cover, preparation, a trip or anything outside their usual classes.
  4. They can add a short note for management: “covered for Ustadh Faruq”, “stayed back for parents”.
  5. They choose Log session.

A session cannot finish before it started, and it cannot be dated in the future. An overnight session is not something the module models; a class that runs past midnight is logged as two sessions.

A teacher can edit or remove their own session until you have reviewed it. After that their copy is locked, and a correction is a conversation with you rather than a silent edit.

Teachers never see a rate or an amount. Their screen shows what they logged, how long it was, and the status you gave it. Nothing on that screen tells them what their hours are worth, because that is a matter between your madrassa and them.

Review and mark the hours

  1. Open Admin → Staff time → Timesheets. It opens on Awaiting review, which is the work waiting on you.
  2. Narrow by dates, teacher or class if you need to.
  3. Tick the sessions you are dealing with, or use Select page.
  4. Choose Set status, pick the status, and choose Apply.

The statuses mean:

  • Logged: the teacher has recorded it and you have not looked yet.
  • Under review: you are checking something before you accept it.
  • Due: you accept the hours and they are outstanding.
  • Paid: you have settled them, outside the app.
  • Not approved: you are not accepting these hours.

When a session first leaves Logged it is priced from that teacher's rate, and the figure is fixed at that point. If you type an hourly rate in the dialog it is used instead for the sessions you selected, which is how you handle a one-off different rate. Leaving the rate blank never re-prices a session that already carries an amount.

The footer under the table totals every session your filters match, not just the page you are looking at, and it says how many are not yet priced so a total is never mistaken for a complete one.

Record lateness and absence

  1. Open Admin → Staff time → Teacher attendance.
  2. Choose Record exception.
  3. Choose the teacher, the date, and whether it was late, absent or excused.
  4. For a lateness you can record how many minutes.
  5. Add a class and a note if either helps.
  6. Choose Record.

Nothing needs doing on the days when everyone arrives on time. An empty screen is the normal state.

Teachers do not see what you record here. It is a management record, like the notes kept when a member of staff joins or leaves, and the note you write is for your own team.

If you record something in error, choose Remove and give a reason. The record is kept with your reason against it rather than disappearing, so a correction is visible instead of silent.

Export and review

Both tabs offer Export CSV, which exports exactly what your current filters cover: the same rows and the same dates. The file opens in any spreadsheet and carries a short summary of the filters at the top, so a forwarded copy still says what it covers.

The timesheet export includes rates and amounts because its audience is the person who set them. Treat it the way you would any staff record: it is not a file to circulate.

Troubleshooting

A teacher cannot see “My hours”

Check that the module is on and that Teacher timesheets is ticked in Admin → Settings → Staff time. If only teacher attendance is enabled, teachers see nothing at all, which is intended.

A teacher says they cannot correct a session

You have already reviewed it. Move it back to Logged if you want them to fix it themselves, or correct the record with them and re-apply the status.

Sessions show “Not priced”

That teacher has no hourly rate. Set one under Hourly rates and re-apply the status, or enter a rate in the Set status dialog. If you do not price hours at all, this is the expected state and nothing is wrong.

An amount looks wrong after a rate change

Amounts are fixed when a session is priced, so an old session keeps the rate it was given. To re-price it, select it and enter the new rate in the Set status dialog.