A Google Sheets spreadsheet with the right columns gives you a clear, student-by-student view of who's keeping up, who's falling behind, and who might need a nudge. It's manual but free — and the real question is: at what point does the manual work cost more than a platform that tracks automatically? For courses up to about 50 students, the answer is usually "not yet."
What you’ll walk away with:
- A student-by-student progress tracker with module completion checkboxes
- Conditional formatting that highlights at-risk students in red automatically
- Summary formulas showing cohort-wide completion rates and averages
- A shareable tracker that co-instructors or TAs can update in real time
Why Google Sheets works for student tracking
Three qualities make Google Sheets a practical choice for tracking student progress in a small course.
First, it's free. You don't need a paid LMS add-on or a separate analytics dashboard. A Google account is enough.
Second, it's shareable. If you co-teach with someone or have a teaching assistant, you click Share and they see the same live data. No emailing spreadsheets back and forth, no version conflicts.
Third, formulas do work that you'd otherwise do by hand. A COUNTIF formula can tell you how many students have completed Module 3 in under a second. Conditional formatting can highlight every student who's missed two or more sessions — without you scanning each row yourself.
The tradeoff is that you enter the data manually. Unlike a course platform that logs activity automatically, a spreadsheet only knows what you type into it. For a course with 15 to 50 students, that manual step is manageable. Beyond that range, you start spending more time on data entry than on teaching.
Step-by-step: Building your student progress tracker
Create the spreadsheet and set up columns
Open a new Google Sheet and type these headers across row 1: Student Name, Email, Enrollment Date, Module 1, Module 2, Module 3, Module 4, Assignment 1, Assignment 2, Attendance, Overall Status, and Notes. Bold the header row and freeze it (View > Freeze > 1 row) so it stays visible as you scroll through student rows.
Adjust the module and assignment columns to match your course structure. If you have six modules and three graded assignments, add those columns accordingly. The principle is one column per trackable milestone.
Use checkboxes for module completion
Select all the cells under your module columns (Module 1 through Module 4, or however many you have). Go to Insert > Checkbox. Each cell now shows a clickable checkbox. When a student completes a module, you check the box.
Checkboxes are better than typing "done" or "yes" because they're faster to update, visually scannable, and they store TRUE/FALSE values that formulas can count. A quick glance down the column shows you which modules have the most unchecked boxes — and therefore where students are getting stuck.
Add grade columns for assignments
For each graded assignment, use a number column. Enter scores as percentages or points — whichever system you use. If an assignment hasn't been submitted, leave the cell blank rather than entering zero. A blank cell is different from a zero in your formulas: AVERAGE will skip blanks but include zeros, so leaving unsubmitted work blank keeps your averages accurate.
Add an "Assignment Average" column at the end of your assignment block with the formula =AVERAGE(H2:I2) (adjusting the column letters to match your sheet). This gives you each student's running average without manual calculation.
Track attendance
If your course has live sessions, the Attendance column can be a simple count: how many sessions out of the total has this student attended? Enter it as a fraction like "4/6" or as a number you update after each session.
For self-paced courses without live sessions, replace this column with "Last Active Date" — the date you last saw evidence of the student doing coursework. This gives you a simple recency signal. Anyone whose last active date is more than two weeks old is probably disengaging.
Add conditional formatting for at-risk students
This is the step that turns a plain data table into something useful. Select your entire data range (all student rows). Go to Format > Conditional formatting and create these rules:
- Red background when fewer than half the module checkboxes are checked and the enrollment date is more than halfway through your course. Use a custom formula like
=AND(COUNTIF($D2:$G2, TRUE) < 2, DATEDIF($C2, TODAY(), "D") > 30)(adjust columns and day count to fit your course). Red rows are your at-risk students — the ones who enrolled but aren't keeping up. - Green background when all module checkboxes are checked. These students are on track or finished.
- Yellow background for everyone in between — progressing but not yet complete.
The color coding lets you open the sheet and immediately see who needs attention. You don't have to read every row. Red means reach out. Green means celebrate. Yellow means keep an eye on it.
Create summary formulas for completion rates
Add a summary section above or below your student rows. A few formulas give you a dashboard-level view of the whole course:
=COUNTIF(D:D, TRUE) / COUNTA(A2:A100)— percentage of students who completed Module 1=COUNTIFS(D2:D100, TRUE, E2:E100, TRUE, F2:F100, TRUE, G2:G100, TRUE) / COUNTA(A2:A100)— percentage who completed all modules=AVERAGE(J2:J100)— average assignment score across all students
These numbers update every time you check a box or enter a grade. When someone asks you "how's the course going?" you have a real, current answer.
Share with your co-instructor or TA
Click Share in the top right and add your collaborator. Give "Editor" access if they need to update progress data, or "Viewer" access if they only need to see the current state.
A shared tracker means your TA can check off module completions during office hours, and you see the updates immediately. It also means you can divide the follow-up work: you reach out to the red-flagged students, your TA contacts the yellow ones.
Course creator tips
Update the sheet on a fixed schedule
The most common failure mode for manual tracking is inconsistency. You update diligently for three weeks, then skip a week, and suddenly the data is unreliable. Pick a specific time — after each live session, or every Friday morning — and treat it as a non-negotiable appointment with your spreadsheet. Ten minutes of regular updates is worth more than an hour of catch-up.
Use the Notes column generously
A checkbox tells you whether a student completed a module. It doesn't tell you anything about how they engaged with it. Use the Notes column to capture qualitative observations: "asked a great question in Module 2 discussion," "mentioned struggling with the assignment format," "requested extension due to family emergency." These notes become valuable when you revise the course for the next cohort.
Export a copy before each new cohort
When a cohort finishes, duplicate the sheet (right-click the tab > Duplicate) and rename it with the cohort date. Then clear the original for your next group of students. You keep a historical record of every cohort's progress, which helps you spot patterns across runs — like a module that consistently has low completion.
Limitations of the spreadsheet approach
Manual data entry is the bottleneck
Every checkbox you tick and every grade you type is time you could spend on teaching or feedback. For a course with 15 to 30 students, the overhead is modest. At 50 students it becomes noticeable, and beyond that it becomes a real burden.
No automated follow-ups
A spreadsheet can't automate follow-ups. You can see that a student is at risk, but you still have to open your email and write the message yourself. A course platform with built-in progress tracking can trigger automated nudges when a student falls behind — something a spreadsheet will never do on its own.
No student-facing view
Your students can't log in and see their own progress bar or completion percentage. The tracker is an instructor tool. If you want students to see where they stand, you need to communicate it to them directly or use a platform that provides a learner dashboard.
Frequently Asked Questions
How many students can I realistically track in a single Google Sheet?
A single sheet works well for up to about 50 students. Beyond that, scrolling and manual data entry become time-consuming enough to slow you down. If you have 50 to 100 students, split each cohort or module into its own tab within the same spreadsheet. Above 100, consider a course platform with built-in progress tracking so the data captures itself.
Can I use this tracker for a self-paced course or only for cohort-based courses?
You can use it for both. For cohort courses, the attendance and due-date columns are straightforward because everyone follows the same schedule. For self-paced courses, replace the attendance column with a last-active-date column and track module completions instead of session attendance. The conditional formatting for at-risk students still works — flag anyone who hasn't logged progress in more than two weeks.
Is there a way to have students update their own progress in the sheet?
Yes, but it introduces complications. You can share the sheet with edit access and assign each student their own row. The risk is that students accidentally edit someone else's data or delete formulas. A safer approach is to create a linked Google Form where students submit their progress, and the responses feed into your tracking sheet automatically. That keeps the spreadsheet under your control while reducing your manual entry.
Related Guides
- How to Create a Course Production Schedule Using Google Sheets — track your own content creation progress with a similar spreadsheet approach
- How to Create Course Surveys Using Google Forms — collect structured student feedback that complements your progress data
- How to Write Assessment Questions with ChatGPT — create the assignments and quizzes you'll track in your spreadsheet
- Create Your First Online Course — the full guide to building a course from scratch
From Spreadsheet to Built-In Tracking
A Google Sheet is a solid starting point, and it costs nothing. If you're teaching your first course or running a small cohort, it gives you the visibility you need to support your students without adding software complexity.
When you outgrow the spreadsheet — when manual entry takes too long or you want students to see their own progress — Ruzuku tracks completion automatically as students work through your lessons, activities, and discussions. You get the same at-a-glance view of who's engaged and who needs a nudge, without entering a single data point yourself. Start building your course on Ruzuku for free.