Instructor Reports
Pro featureInstructor Reports gives each instructor a front-end page at /instructor/reports/ showing how their own courses are performing -- enrollments, completion, average score, and revenue -- over a period they choose.
What you can do
- See per-course performance for the courses you teach: new enrollments, completion rate, average quiz score, and revenue.
- Switch the reporting window between the last 7 days, 30 days, 90 days, and all time.
- Read the numbers from your own instructor dashboard on the front end, without needing wp-admin access.
- Trust that the scope is your courses only -- an instructor sees their own courses and nothing else, with no course selector to tamper with.
- Page through a large course list without the report slowing down, because metrics are computed only for the page you are viewing.

How to use it
Step 1 -- open your reports
Sign in as an instructor and go to /instructor/reports/, or open Reports from your instructor dashboard navigation. The page sits in the same teaching shell as the rest of your instructor pages.
Step 2 -- pick a period
Use the period selector to choose Last 7 days, Last 30 days, Last 90 days, or All time. The default is the last 30 days. Changing the period reloads the table for that window.
Step 3 -- read the table
Each row is one of your courses, with five columns:
- Course -- the course title.
- New enrollments -- students who enrolled during the selected period.
- Completion -- completion rate for the period, as a percentage.
- Avg score -- average quiz score for the period, as a percentage.
- Revenue -- revenue for the period, shown in your site currency.
Step 4 -- page through your courses
If you teach more courses than fit on one page, use the pagination below the table. Each page shows up to 20 courses.
Settings and options
- Who can see it -- instructors (for their own courses) and administrators. Administrators see published courses across the site so the page is meaningful for them too. Anyone else is shown an "Instructor access required" message.
- Period -- 7 days, 30 days, 90 days, or all time. Any other value falls back to 30 days.
- Page size -- 20 courses per page, fixed.
- Currency -- the revenue column uses the same currency setting and symbol as the earnings pages.
- Empty state -- an instructor with no courses (or no activity yet) sees a "No courses to report on yet" message instead of an empty table.
For developers
View-data Learnomy_Pro\Extensions\Analytics\Instructor_Reports_View_Data:
resolve( array $data ): array-- gates access (instructor or admin), readsperiod/pagedfrom the query, resolves the instructor's own course ids via the freeCourseInstructormodel (admins useAnalytics_Aggregate::published_course_ids()), then computes metrics only for the visible page of up to 20 courses.
Per-course metrics come from the shared Pro reporting engine Analytics_Aggregate: course_new_enrollments(), course_completion_rate(), course_avg_score(), and course_revenue(), each taking the course id and the period. Course titles for the visible page are batch-loaded with the free Course::find_in().
Template views/instructor-reports.php renders inside the shared .lrn-account-layout teaching shell and reuses the free table, badge, and pagination partials -- no forked report logic and no new CSS. The route is instructor-reports (route_url('instructor-reports')), auth-gated through the free protected-routes list.