GPA & Report Cards
IC Insight provides two separate GPA calculations: a Current Year GPA based entirely on cached courses, and a Cumulative GPA that combines current-year courses with manually entered past report cards.
Grade Scale
All GPA calculations start by mapping a percentage to a letter grade using the configured grade scale. The default scale is:
| Grade | Min % | GPA Points |
|---|---|---|
| A+ | 97 | 4.4 |
| A | 93 | 4.0 |
| A- | 90 | 3.7 |
| B+ | 87 | 3.4 |
| B | 83 | 3.0 |
| B- | 80 | 2.7 |
| C+ | 77 | 2.4 |
| C | 73 | 2.0 |
| C- | 70 | 1.7 |
| D+ | 67 | 1.4 |
| D | 65 | 1.0 |
| F | 0 | 0.0 |
The scale is fully editable in Options → Grade Scale. A small epsilon tolerance (0.005) prevents floating-point precision issues when a grade falls exactly on a boundary.
Current Year GPA
Displayed at the top of the Dashboard. Computed by looping through all cached courses:
- Load the course's overall grade percentage.
- Apply permanent score overrides (
PE_/PA_keys) before computing the grade. - Look up the letter grade using the scale.
- Look up the GPA point value for that letter.
- Multiply by the course's credit weight (default: 1.0, configured per-course in Options → Course Weights).
- Accumulate:
sum(weight × gpaPoints)andsum(weights). currentYearGPA = sum(weight × gpaPoints) / sum(weights).
Courses with a weight of 0 (or negative/invalid) are excluded from both numerator and denominator.
Note: This is a simple credit-weighted average of GPA points, not the full quality-points model used for cumulative GPA.
Cumulative GPA
Displayed alongside the Current Year GPA. Uses GPAEngine.calculateCumulativeGPA() which processes a combined list of current-year courses and past report card courses.
Quality Points Model
For each course:
- Convert the final mark (percent or letter) to base GPA points using the scale.
- Apply a weighting bump based on course type:
- AP: +1.0 (default)
- IB: +1.0 (default)
- Honors: +0.5 (default)
- Regular: +0.0
- Bumps are configurable in Options → GPA Settings. Additive mode (default):
weightedGPA = baseGPA + bump. Multiplicative mode:weightedGPA = baseGPA × (1 + bump).
- Compute
qualityPoints = weightedGPA × credits. - Sum quality points and credits across all courses.
cumulativeGPA = totalQualityPoints / totalCredits, rounded to the configured number of decimal places (default: nearest 3).
A+ Special Case
By default, A+ maps to 4.4 GPA points. In Options → GPA Settings, you can switch A+ to map to 4.33 instead.
Course Weights (Credits)
In Options → Course Weights, each cached course has a numeric weight field (default: 1.0). This represents the course's credit value:
- Set to 0.5 for half-credit courses.
- Set to 1.5 for weighted/double-credit courses.
- Set to 0 to exclude a course from GPA entirely.
For current-year GPA, the weight is used directly as a credit multiplier. For cumulative GPA, the same weight is used as the credits value passed to GPAEngine.
Past Report Cards
Report cards let you include previous years' grades in the cumulative GPA.
Adding a Report Card
Click Add Report Card on the Dashboard. A form asks for:
- Title (e.g. "2023-24 Final")
- School year (e.g. "2023-2024")
- Marking period (e.g. "Full Year")
- Issued date
- Courses - each with: name, teacher (optional), final mark (percent or letter), credits, and weight type (Regular / Honors / AP / IB)
Storage
Report cards are stored in ICI_PAST_REPORT_CARDS (an array in chrome.storage.local). Each card has a unique ID generated as rc_${year}_mp${mp}_${timestamp}_${random}.
Editing and Deleting
Expand a report card card to view its courses. Click Edit to modify any field. Click Delete to permanently remove it.
Data Export and Import
The full GPA data (grade scale, GPA settings, past report cards, course weights) can be exported as a JSON file from Options → Data Management. The same file can be imported (merge or replace mode) on any device to restore the full configuration.