Where Tutor LMS keeps the numbers
Know where the data lives
Enrollments are posts of type tutor_enrolled, linked to the course as parent and the student as author. Lesson completion is stored per student as user meta whose key starts with _tutor_completed_lesson_id_; course completion is a comment of type course_completed. Quiz attempts live in tutor_quiz_attempts with marks and result, and individual answers in tutor_quiz_attempt_answers. Native orders are in tutor_orders and tutor_order_items; instructor earnings in tutor_earnings. See our database guides.
Make it fast
Aggregating user meta and comments for thousands of students can be slow. We write targeted queries, add indexes where they help, and for heavy dashboards build summary tables refreshed on Tutor LMS events or on a schedule. See also database optimization.
Keep numbers consistent
Reports must agree with what students see. We use the same definitions Tutor LMS uses, for example a completed enrollment rather than a pending one, and document every metric.