Student and education tools

GPA calculator

Calculate credit-weighted course GPA with editable course rows, numeric points or your own letter-grade mapping, explicit exclusions and exact downloadable workings.

Start with the illustrative courses below, then enter your own grade points and included credits.

Use your institution’s maximum, from 1 to 100. Changing this limit does not rescale grades.

Each mode keeps its own entries. Switching modes does not convert your grading system.

Calculate to review your current course entries.

Your courses

Up to 100 courses. Names: 80 characters, no | or control characters. Points: 0 to your scale, up to 4 decimals. Credits: greater than 0 to 1,000, up to 2 decimals. Use a decimal dot. Uncheck courses that your policy excludes; their entries remain editable.

    Import several courses from text

    One course per line: name | grade points | credits. Up to 100 rows / 20,000 UTF-16 units. Import replaces the rows only when every line is valid. All imported courses are included; review your policy before calculating. Unapplied text is not used.

    Calculate from your courses and credits

    1. Set your maximum grade-point scale. Start with numeric points, or enter the letter-to-point mapping used by your institution.
    2. Edit each course’s name, grade and credits. Add or remove courses as needed. Uncheck rows that your policy excludes.
    3. Calculate, review the included credits and course contributions, and download JSON or CSV.

    Formula and example

    GPA = sum of included grade points × credits ÷ included credits. The illustrative example uses 4 points over 3 credits and 3 points over 2 credits: (12 + 6) ÷ 5 = 3.6. Unequal credits matter; a simple average would give 3.5.

    Supported decimal inputs use exact integer arithmetic internally. JSON includes the reduced exact fraction before display rounding. Display choices use 2, 4 or 6 decimal places and nonnegative half-up rounding. Your institution may use a different policy.

    Your grade policy controls what counts

    The A=4, B=3 example is illustrative and is not an official or universal table. You can edit up to 20 mappings. Symbols are case-insensitive ASCII letters/digits/+/- with a letter first, up to 10 characters. Duplicate or undefined symbols are rejected. Every active mapping must fit your maximum scale, even if no course currently uses it.

    Numeric and letter modes retain separate drafts; switching modes does not transform your grades. Changing the maximum scale bounds entered points without rescaling them. There is no universal GPA-to-percentage conversion here. A zero-point course is included with its credits when checked. Apply your own rules for pass/fail, repeat, withdrawn or failed courses; the calculator does not infer those rules.

    This calculates course-level GPA. To combine supplied semester averages instead, use the CGPA calculator. A result based on rounded semester averages may differ from original course totals. Neither tool issues a transcript or certifies eligibility.

    Editing, imports and exports

    Add, remove, clear, import and Restore example actions offer one Undo step that restores the course draft, settings, view and previously calculated result. Uncalculated drafts stay uncalculated. Ordinary edits discard that action history and invalidate previous results and downloads. Optional bulk import replaces courses only after all rows validate. Use name | grade | credits, with numeric points or letters matching the selected mode. All imported rows start included; review your policy before calculating. Unapplied import text is ignored by the calculation. Editing that draft or rejecting an invalid import keeps the current courses and available downloads.

    JSON retains raw entered course fields, both mode drafts, selected mode, active letter mappings, included/excluded status, interpreted points and exact workings. Numeric mode omits the unused mapping table. CSV contains every course, marks inclusion and leaves computed contributions blank for excluded rows. Spreadsheet-sensitive text cells receive a protective apostrophe; raw text remains in JSON. Contributions are shown 20 at a time.

    Limits and privacy

    Up to 100 course rows, names up to 80 UTF-16 units, and other course fields up to 40 units without | or control characters. Included points are 0 to your chosen maximum, with up to 4 decimal places. Included credits are greater than zero and at most 1,000 per course, with up to 2 decimals. Maximum scale is 1–100. Use ordinary decimal digits and a dot, without grouping or exponent notation. Import allows 20,000 UTF-16 units and recognizes LF, CRLF and CR line endings.

    All processing stays in browser memory. There is no upload, account or saved-grade storage. Leaving the page loses the draft; download workings you want to keep. Your exported files include course details and excluded rows. Labels are rendered as literal text, and clipboard use is optional.