Please DM u/OnlyComfortable8695 on Reddit for any issues or
feedback! I'll usually respond in 1–3 days.
Known Issues
None!!! 🐱
A grade-aware degree planner for UCLA. Pick a major (or two), and it lays out a quarter-by-quarter plan that respects prerequisites and uses real grade-distribution data to steer toward an easier — or harder — course load. Everything stays on your machine.
A quick walkthrough of every feature, in the order you'll use them. You can stop after step 4 for a full plan — the rest are power tools.
Type in the Major(s) box and pick from the list. Add two or more for a double major — shared courses are planned once, and you'll get an overlap warning if too many upper-division units count toward both.
Add completed courses under Completed courses (or the ✓ on any card). They drop off the board, stop counting as something to take, and satisfy prerequisites for everything else.
Click Build my plan to lay out the whole degree quarter-by-quarter in prerequisite order. Cards are colored by % of A grades (greener = easier). Note: Build re-optimizes from scratch and resets manual edits — export or share first to keep a hand-tuned version (one Undo also reverts a build).
The summary shows total courses, quarters, years, units and average %A. Each quarter shows its unit total (flagged under 12 / over 19) and a difficulty chip (avg %A). A ⚠ with a ! means a prerequisite problem — click it for the reason. Click any card for its grade charts.
After hand-placing some courses, click ➕ Build around my current courses to keep them and let the planner fill in the rest. Keep my courses in their quarters pins them where they are; Only add new courses to new quarters leaves your existing quarters untouched.
📋 View requirements opens the major's full requirement breakdown — take-all vs. choose-N vs. approved-list groups, with each course tagged completed or planned, and each section marked complete / on-track.
🎯 Easiest classes for this major ranks up to 100 of the major's courses by historical mean GPA (easiest first). Courses you've completed are removed, and a ⚠ flags any whose prerequisites you haven't finished. Click one for its grade charts.
Tick Show course availability and pick a term. A small spinner shows while it checks the live UCLA Schedule of Classes, then each course gets a ● term badge (offered) or — term (not scheduled). For offered courses a seats button opens live enrollment — each section also shows its listed instructor and how that professor historically grades this course (their %A and mean GPA from the grade data), so you can pick the easier section. The button turns green when spots are open, amber for waitlist-only, and red when full.
When the registrar is reachable, the quarter matching the selected availability term shows a 📅 Schedule week and check for time conflicts button. It pulls the live meeting times for that quarter's courses — lectures and their discussions/labs — and draws a Mon–Fri weekly grid, one color per course. Overlapping classes sit side by side (the day splits into columns, like a calendar) and are also outlined in red so clashes are obvious. Each course gets a dropdown to choose a specific lecture + discussion combination (each option shows its instructor and their historical %A), and ✨ Suggest non-conflicting auto-picks a set of sections that don't clash, preferring ones with open seats and easier-grading professors. 🔀 Rearrangements opens a menu of alternative whole-week arrangements (different section/lecture-time combinations, ranked by fewest conflicts then open seats & your preferences): hover one to preview it on the grid, and it's only applied when you click. A Preferences bar (no classes before / after a chosen time, keep Fridays free, keep a lunch hour free, avoid back-to-back classes, avoid long gaps, and prefer fewer days on campus) steers both ✨ Suggest here and the per-quarter ✨ recommend button. Final-exam times are listed below the grid (with their own conflict flags), and any course with no scheduled meeting time (online/TBA or not offered that term) is noted separately. Your chosen lecture + discussion per course is remembered — a 📌 appears on the board card and the choice is saved with your plan (and shared/exported with it). ⬇ Export .ics downloads the selected sections (and finals, when dated) as a calendar file you can import into Google or Apple Calendar. It's live data, so it appears on the dev server (and a live-enabled deployment), not on the fully-offline one.
Each quarter has a ✨ recommend button that fills it toward your courses-per-quarter target with courses that are still needed, have their prerequisites met, and the highest %A. When live times are available it also keeps only courses that fit without a time conflict (lecture + discussion), preferring open seats. Toggle Ignore time conflicts when recommending in the sidebar to fill purely by %A instead. One Ctrl+Z undoes the whole fill.
Prerequisite graph maps how your plan's courses chain together. The sidebar Look up any course's grades works for any course, even outside your plan.
Your plan auto-saves in this browser. Export / Import a JSON file, or Copy share link to pack the whole plan into a URL (no account, no server storage), or ▣ QR to show that link as a QR code you can scan to open the plan on your phone.
Enter what you've completed and a target — this works out the GPA you'd need across the courses still on your board. All client-side; saved with your plan.
Tick the AP exams you've taken (and your score where it matters). UCLA grants credit for some of them — those courses are added to your completed list, so they satisfy prerequisites and major requirements automatically. Exams that only give elective/GE units are noted too. Saved with your plan. Not official — confirm credit on your DARS / with an advisor.
Specify what you placed into on UCLA's placement exams — the Math Diagnostic Test and foreign-language placement. Placing into a course means the courses below it are satisfied, so they're added to your completed list and the planner won't make you take precalc or intro language you tested out of. Saved with your plan. Not official — confirm with your college / department.