UCLA Degree Planner

grade-aware course planning
Add a major and click Build my plan.

Prerequisite graph

Arrows point prereq → course · left = intro, right = end of chain · greener = more As · drag/scroll to explore
Loading…

✉ Contact Me & Updates

Please DM u/OnlyComfortable8695 on Reddit for any issues or feedback! I'll usually respond in 1–3 days.

Known Issues
None!!! 🐱

About the UCLA Degree Planner

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.

What it does

  • Builds a full plan from a major. It pulls a major's required courses, choice groups, General Education, and breadth requirements straight from UCLA's General Catalog, then schedules them across quarters in prerequisite order (you can't be put in a course before its prereqs).
  • It's grade-aware. Every course is colored and ranked by its % of A grades from UCLA's public grade-distribution records (Fall 2021 – Spring 2025). Pick optional courses by Easiest (highest %A), Hardest, or Random.
  • Double majors. Add two or more majors and it merges their requirements (shared courses are planned once) and warns when too many upper-division units overlap (see below).

The plan is an editable board

  • Drag a course card between quarters to reschedule it.
  • Add / remove courses and whole quarters (+ add course, + add quarter).
  • Mark completed with the ✓ on a card — it leaves the grid and stops counting as something to take.
  • Live prerequisite checks. Any edit that puts a course before its prereq (or drops a needed course) flags a ⚠ on the card; click the ! for the reason.
  • Click any card to see that course's grade-distribution charts and a ranked comparison of every professor who's taught it (by mean GPA / %A) — handy for picking a future quarter before sections are posted.
  • ⛓ Prerequisite chain. Click the chain icon on a card to highlight, across all quarters, the courses that are its prerequisites (green) and the ones it unlocks (purple), dimming everything else — so you can see a course's place in the dependency chain at a glance.

What each quarter and the summary show

  • Per-quarter units, flagged when a term is below 12 (not full-time) or above 19 (usually needs college approval).
  • A difficulty chip per quarter — the average %A of that term, plus a projected GPA (units-weighted mean of the term's historical course GPAs), so a brutal quarter stands out.
  • Plan totals at the top: courses, quarters, estimated years, total units, average %A, and a whole-plan projected GPA (a rough estimate from past grade distributions, not a prediction).
  • 🎯 GPA what-if — enter your current cumulative GPA (and completed graded units, auto-filled from your ✓ courses) plus a target, and it works out the GPA you'd need across the courses still on your board to hit it — flagging targets that aren't reachable. All client-side, saved with the plan.
  • Progress to graduation — a bar of your completed + planned units toward UCLA's 180-unit minimum, with how many units are left. Completed courses outside the plan are estimated at 4 units each (shown with a ~); your specific major may require more than 180. A ~ on units means some courses had no listed unit count and were estimated at 4.
  • Requirement coverage — a second bar shows how many of your major's requirement sections are complete (all required courses done), on track (satisfied once planned courses count), or remaining. Click it for the full breakdown in the requirements modal. (GE areas count as complete only when you've ticked IGETC / Cal-GETC, since approved-list courses can't be auto-verified.)
  • Double-major overlap warning. UCLA lets at most 20 upper-division units count toward both majors. The banner counts the UD courses actually on your board that belong to both majors and tells you whether you're within or over that cap.

Explore the data

  • Prerequisite graph — a visual map of how your plan's courses chain together (arrows point prereq → course, greener = more As).
  • Look up any course's grades from the sidebar, even one that isn't in your plan.

Saving & sharing

  • Auto-saves in this browser — your plan is there when you come back.
  • Export / Import a plan as a JSON file.
  • Copy share link packs the whole plan into a URL you can send to an advisor — no account, no server storage; the plan travels inside the link itself.
  • ▣ QR shows a QR code of that share link — scan it with a phone camera to open the exact plan on another device. (Very large plans can exceed a QR's capacity; use the link in that case.)
  • 🖨 Print / Save PDF opens a clean one-page version (quarter-by-quarter courses, units, %A, projected GPA, units toward graduation) for printing or saving as a PDF — handy for an advisor meeting. Use your browser's "Save as PDF" in the print dialog.

Good to know

  • “% A” counts A+ and A only (an A− is not an A), over letter grades A–F.
  • Grade data covers Fall 2021 – Spring 2025; a course with little or no recent data shows “no data.”
  • Some requirements are open electives or approved lists the catalog doesn't enumerate — those are listed under “Also required — pick these yourself.”
  • Build my plan re-optimizes from scratch and resets your manual edits, so export or share first if you want to keep a hand-tuned version.
This is a personal research tool, not official academic advising. Always confirm requirements with your department and a counselor before enrolling.

🎓 How to use the Degree Planner

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.

  1. Add your major(s)

    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.

  2. Set your options (optional)

    • Start term & year — sets the first quarter's label and the Fall→Winter→Spring cadence.
    • Courses per quarter — the target load.
    • Difficulty mode — when a requirement offers choices, pick Easiest (highest %A), Hardest, or Random.
    • GE distribution / IGETC — choose how General Education is added, or tick I've completed IGETC / Cal-GETC to skip GE entirely.
  3. Mark what you've already finished

    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.

  4. Build my plan

    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).

  5. Read the board

    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.

  6. Edit the board by hand

    • Move one course — drag its card to another quarter.
    • Move several at onceCtrl/-click cards (or tick their checkboxes) to select them, then drag any selected card; they all move together. A bar at the bottom shows the count — Clear or Esc deselects.
    • Reorder a whole quarter — drag a quarter by its header handle onto another quarter. Term names relabel automatically to match the new positions.
    • Add / remove+ add course, + add quarter, + add summer; ✓ marks a course completed, × removes it.
    • Delete a quarter — the × on its header. By default it asks to confirm; turn off Ask before deleting a quarter in the sidebar to delete instantly.
    • Undo / redo — the buttons above the board or Ctrl+Z / Ctrl+Y.
  7. Build around your current courses

    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.

  8. View requirements

    📋 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.

  9. Find the easiest classes

    🎯 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.

  10. Check live availability & seats

    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.

  11. See your week & catch time conflicts

    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.

  12. Auto-fill a quarter

    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.

  13. Explore & look things up

    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.

  14. Save, export & share

    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.

Tip: the ⓘ Info & About button explains the data and conventions behind the numbers. This is a personal research tool, not official advising — always confirm with your department.

Major requirements

Loading…

Catalog changes

Loading…

Easiest classes

Loading…

Weekly schedule

Loading live class times…

Scan to open this plan

🎯 GPA what-if

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.

Course

Loading grade distributions…

🎓 AP credit

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.

🧭 Placement exams

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.