Skip to content

Reports & Analytics

The Reports page is where you find out which subjects are selling, which teachers are filling rooms, and which groups have a sustainability problem. It’s organized into four tabs.

Filtering by semester

Top of the page: a Semester dropdown defaults to the active semester, but you can switch to any past semester to compare. Every tab respects this filter — the metrics you see are scoped to that window.

To compare two semesters at once, open Reports in two browser tabs or two windows of the desktop app, set each to a different semester, and look at them side by side.

Tab 1 — Overview

The dashboard-of-the-dashboard: at-a-glance numbers across the whole center.

Totals row:

  • Students, teachers, subjects, groups — current counts.
  • Active subscriptions — how many students are in active enrollments right now.

Attendance block:

  • Sessions held in the filtered semester.
  • Total check-ins across all sessions.
  • Average check-ins per session — fast quality signal. A group of 20 with average 18 is healthy; average 8 means dropouts you should follow up on.

Bookings block:

  • Total booking requests received.
  • Breakdown: pending / approved / rejected / cancelled. The pending count is your daily action item — review them.

Trend chart:

  • Subscriptions over time, monthly buckets. Tells you if the center is growing, flat, or shrinking. Look for seasonality (back-to-school spikes, exam-period dips).

Tab 2 — By Subject

One row per subject. Columns:

  • Groups — how many groups exist for this subject.
  • Teachers — distinct teachers assigned to those groups.
  • Students — distinct students enrolled across all groups of this subject.

Click a row to drill into that subject’s groups.

Use it for: spotting subjects with too few students (consider combining groups) or too many (open another group).

Tab 3 — By Teacher

One row per teacher. Columns:

  • Specialization — from the teacher’s profile.
  • Subjects — distinct subjects they teach.
  • Groups — how many groups they run.
  • Students — distinct students across all their groups.

Use it for: workload balancing (one teacher with 12 groups while another has 2 is a recruitment signal) and revenue contribution (teachers who bring in more students earn more under commission schemes — set commissions per teacher in Teachers → Edit → Commission).

Tab 4 — By Group

The most detailed view. One row per group with:

  • Subject + teacher — context.
  • Status — active / inactive.
  • Capacity — max students the group accepts.
  • Enrolled — current active enrollments.
  • UtilizationEnrolled ÷ Capacity. Anything above 90% is effectively full — open a parallel group. Anything below 40% is underbooked — consider merging or marketing.
  • Sessions — attendance sessions held this semester.
  • Check-ins — total check-ins across those sessions.
  • Attendance rateCheck-ins ÷ (Enrolled × Sessions). The KPI that tells you if students are actually showing up. Below 70% is concerning; below 50% means most enrolled students are ghosting and you should follow up with parents.

Exporting to CSV

Each tab has an Export CSV button at the top right. The download is the exact rows you see in the table, with the same filter applied.

Opening Arabic CSVs without garbled text

Excel on Windows often misreads UTF-8 as Windows-1252, turning Arabic into nonsense. Two ways around it:

  1. Use Google Sheets — File → Import → Upload. It auto-detects UTF-8 correctly.
  2. Excel with import wizard — Don’t double-click the file. Instead: open Excel, Data → From Text/CSV → pick the file → set File Origin to 65001: Unicode (UTF-8) → Load.

EduBook always exports as UTF-8. The garbled-text problem is Excel’s default-encoding misconfiguration, not the export.

Common questions

Reports show 0 even though I have data. Check the semester filter. By default it’s the active semester. If your students are enrolled in a different semester, switch the filter at the top of the page.

Attendance rate looks too low. Confirm sessions are being closed at the end of class, not left open. An open session keeps accepting check-ins, so the “Sessions” count is correct, but if students don’t realize they need to check in, the rate drops. The fix is process, not the report.

A teacher with active groups shows 0 students. Their groups might all have inactive enrollments (ended / cancelled). Check Groups → [the group] → Roster — only active enrollments count toward the teacher’s student count.