Skip to content

Instantly share code, notes, and snippets.

@gasi
Last active May 29, 2025 00:39
Show Gist options
  • Save gasi/e104a0015a9f10e4595d9d95caa6fa1a to your computer and use it in GitHub Desktop.
Save gasi/e104a0015a9f10e4595d9d95caa6fa1a to your computer and use it in GitHub Desktop.
GPA Configuration Documentation
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CollegeVine GPA Configurations</title>
<style>
/* CollegeVine-inspired styling */
:root {
--primary-color: #8B5CF6;
--secondary-color: #A78BFA;
--background: #FAFAFA;
--text-dark: #1F2937;
--text-medium: #4B5563;
--text-light: #6B7280;
--border-color: #E5E7EB;
--white: #FFFFFF;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
line-height: 1.6;
color: var(--text-dark);
background: var(--background);
}
/* Content spacing - only apply to main content areas */
main p {
margin-bottom: 1rem;
}
main ul, main ol {
margin-bottom: 1rem;
padding-left: 1.25rem;
}
main li {
margin-bottom: 0.25rem;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Header */
header {
background: var(--white);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
position: sticky;
top: 0;
z-index: 100;
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem 0;
}
.logo {
height: 40px;
}
h1 {
color: var(--primary-color);
font-size: 1.8rem;
font-weight: 600;
}
/* Navigation */
nav {
background: var(--white);
border-bottom: 1px solid var(--border-color);
}
.nav-content {
padding: 1rem 0;
}
.nav-menu {
list-style: none;
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.nav-menu a {
color: var(--text-medium);
text-decoration: none;
padding: 0.5rem 1rem;
border-radius: 6px;
transition: all 0.2s;
}
.nav-menu a:hover {
background: var(--secondary-color);
color: var(--white);
}
/* Main content */
main {
padding: 2rem 0;
}
.intro {
background: var(--white);
padding: 2rem;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
margin-bottom: 2rem;
}
.intro h2 {
color: var(--primary-color);
margin-bottom: 1rem;
}
/* GPA configurations */
.gpa-config {
background: var(--white);
margin: 2rem 0;
padding: 2rem;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.gpa-config h3 {
color: var(--primary-color);
border-bottom: 2px solid var(--secondary-color);
padding-bottom: 0.5rem;
margin-bottom: 1rem;
}
.gpa-details {
margin-top: 1rem;
}
.description {
font-style: italic;
color: var(--text-medium);
margin-bottom: 1rem;
}
.component-doc {
background: #F9FAFB;
padding: 1rem;
border-radius: 6px;
border-left: 4px solid var(--secondary-color);
margin: 1rem 0;
}
.component-link {
color: var(--primary-color);
text-decoration: none;
font-weight: 500;
}
.component-link:hover {
text-decoration: underline;
}
.component-links {
background: #F9FAFB;
padding: 1rem;
border-radius: 6px;
border-left: 4px solid var(--secondary-color);
margin: 1rem 0;
}
.component-links ul {
margin: 0.5rem 0 0 0;
padding-left: 1.5rem;
}
.component-links li {
margin: 0.5rem 0;
}
/* Tooltip styles */
.tooltip-container {
position: relative;
display: inline-block;
margin: 0 0.25rem; /* Add space between tooltip containers */
}
.tooltip {
visibility: hidden;
min-width: 350px;
max-width: 500px;
background-color: var(--text-dark);
color: var(--white);
text-align: left;
border-radius: 6px;
padding: 1rem;
position: absolute;
z-index: 1000;
bottom: 125%;
left: 50%;
transform: translateX(-50%);
opacity: 0;
transition: opacity 0.3s, visibility 0.3s;
font-size: 0.85em;
line-height: 1.4;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
max-height: 400px;
overflow-y: auto;
pointer-events: none; /* Prevent tooltip from interfering with hover */
}
.tooltip::after {
content: "";
position: absolute;
top: 100%;
left: 50%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: var(--text-dark) transparent transparent transparent;
}
.tooltip-container:hover .tooltip {
visibility: visible;
opacity: 1;
z-index: 1001; /* Increase z-index on hover to appear above other tooltips */
pointer-events: auto; /* Allow interaction when visible */
}
/* Tooltip table styling */
.tooltip-table {
margin: 0;
}
.tooltip-table h4 {
margin: 0 0 0.5rem 0;
color: var(--white);
font-size: 0.9em;
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
padding-bottom: 0.25rem;
}
.tooltip-table table {
width: 100%;
border-collapse: collapse;
font-size: 0.85em;
}
.tooltip-table th,
.tooltip-table td {
padding: 0.4rem 0.6rem;
text-align: left;
border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.tooltip-table th {
background-color: rgba(255, 255, 255, 0.1);
font-weight: 600;
font-size: 0.8em;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.tooltip-table tr:last-child td {
border-bottom: none;
}
.tooltip p,
.tooltip div {
margin: 0 0 0.5rem 0;
}
.tooltip p:last-child,
.tooltip div:last-child {
margin-bottom: 0;
}
/* Responsive tooltip positioning */
@media (max-width: 768px) {
.tooltip {
min-width: 280px;
max-width: 320px;
font-size: 0.8em;
max-height: 300px;
}
.tooltip-table th,
.tooltip-table td {
padding: 0.3rem 0.4rem;
font-size: 0.8em;
}
}
/* Component reference */
#component-reference {
background: var(--white);
padding: 2rem;
border-radius: 8px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
margin: 2rem 0;
}
.component-table {
border-bottom: 2px solid var(--border-color);
margin: 2rem 0;
padding-bottom: 1.5rem;
}
.component-table h4 {
color: var(--text-dark);
margin-bottom: 1rem;
}
/* Tables */
.mapping-table {
width: 100%;
border-collapse: collapse;
border-radius: 6px;
overflow: hidden;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.mapping-table th {
background: var(--primary-color);
color: var(--white);
padding: 1rem;
text-align: left;
font-weight: 600;
}
.mapping-table td {
padding: 1rem;
border-bottom: 1px solid var(--border-color);
}
.mapping-table tr:nth-child(even) {
background: #F9FAFB;
}
.mapping-table tr:hover {
background: #F3F4F6;
}
/* Code styling */
code {
background: #F3F4F6;
padding: 0.2rem 0.4rem;
border-radius: 3px;
font-family: 'JetBrains Mono', 'Fira Code', 'Source Code Pro', 'Consolas', 'Monaco', monospace;
font-size: 0.9em;
font-weight: 500;
}
/* Go to top links */
.go-to-top {
margin-top: 1rem;
text-align: right;
}
.go-to-top a {
color: var(--text-light);
text-decoration: none;
font-size: 0.9em;
}
.go-to-top a:hover {
color: var(--primary-color);
}
/* Table of contents */
.toc-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 2rem;
margin-top: 1rem;
}
.toc-column {
background: #F9FAFB;
padding: 1.5rem;
border-radius: 6px;
border-left: 4px solid var(--secondary-color);
}
.toc-column h3 {
color: var(--primary-color);
margin-bottom: 1rem;
font-size: 1.1rem;
}
.toc-list {
list-style: none;
margin: 0;
padding: 0;
}
.toc-list li {
margin: 0.5rem 0;
line-height: 1.4;
}
.toc-link {
color: var(--text-dark);
text-decoration: none;
font-weight: 500;
}
.toc-link:hover {
color: var(--primary-color);
}
/* Footer */
footer {
background: var(--white);
border-top: 1px solid var(--border-color);
padding: 2rem 0;
text-align: center;
color: var(--text-light);
}
/* Responsive design */
@media (max-width: 768px) {
.header-content {
flex-direction: column;
gap: 1rem;
}
.nav-menu {
justify-content: center;
}
.container {
padding: 0 15px;
}
}
</style>
</head>
<body>
<header>
<div class="container">
<div class="header-content">
<img src="https://d28hdetl1q8yl2.cloudfront.net/img/cv-logo-green.svg" alt="CollegeVine" class="logo">
<h1>Transcript Reader: GPAs</h1>
</div>
</div>
</header>
<nav>
<div class="container">
<div class="nav-content">
<ul class="nav-menu">
<li><a href="#overview">Overview</a></li>
<li><a href="#table-of-contents">Table of contents</a></li>
<li><a href="#gpa-configurations">GPA configurations</a></li>
<li><a href="#component-reference">GPA component reference</a></li>
</ul>
</div>
</div>
</nav>
<main>
<div class="container">
<section id="overview" class="intro">
<h2>GPA configuration overview</h2>
<p>This documentation provides comprehensive information about CollegeVine's GPA calculation configurations for university admissions staff. Each GPA configuration represents a different methodology for calculating student academic performance based on transcripts.</p>
<h3>How GPA calculation works</h3>
<p>Every GPA calculation follows a consistent 4-step process that can be customized for different institutional needs:</p>
<ol>
<li><strong>Select courses</strong> - The <em>course selector</em> determines which courses from a student's transcript are included in the GPA calculation (e.g., all courses, academic courses only, or academic plus AP/IB courses)</li>
<li><strong>Pick calculator</strong> - Choose between different GPA scales:
<ul>
<li><strong>4-point scale:</strong> Traditional 0-4.0 GPAs</li>
<li><strong>Percentage scale:</strong> 0-100 percentage-based GPA system</li>
<li><strong>Specialized calculators:</strong> Custom systems like <em>Grassfield</em> (percentage with credit bonuses) or <em>Peachleaf</em> (unweighted course averaging)</li>
</ul>
</li>
<li><strong>Configure calculator</strong> - Apply specific mapping configurations:
<ul>
<li><strong>Letter grade mapping:</strong> Convert letter grades (A, B, C, etc.) to numerical values</li>
<li><strong>Percentage grade floor mapping:</strong> Convert percentage grades to scale points using floor thresholds</li>
<li><strong>Difficulty modifiers:</strong> Add bonus points for advanced courses (AP, IB, Honors, etc.)</li>
</ul>
</li>
<li><strong>Calculate GPA</strong> - Process all selected courses according to the calculator's methodology (hover over calculator names in each configuration to see detailed calculation steps)</li>
</ol>
<h3>Key features</h3>
<ul>
<li><strong>Course selection:</strong> Different methods for choosing which courses count toward GPA</li>
<li><strong>Grade conversion:</strong> Standardized mapping from letter grades to numerical values</li>
<li><strong>Difficulty weighting:</strong> Bonus points for advanced courses (AP, IB, Honors)</li>
<li><strong>Credit weighting:</strong> Courses weighted by credit hours for accurate averages</li>
</ul>
</section>
<section id="table-of-contents" class="intro">
<h2>Table of contents</h2>
<div class="toc-container">
<div class="toc-column">
<h3>GPA configurations</h3>
<ul class="toc-list">
<li><a href="#gpa-chestnut" class="toc-link"><code>cv_chestnut_gpa_4</code></a></li><li><a href="#gpa-grassfield" class="toc-link"><code>cv_grassfield_gpa_100</code></a></li><li><a href="#gpa-lychee" class="toc-link"><code>cv_lychee_gpa_100</code></a></li><li><a href="#gpa-orangetree" class="toc-link"><code>cv_orangetree_gpa_4</code></a></li><li><a href="#gpa-peachleaf" class="toc-link"><code>cv_peachleaf_gpa_4</code></a></li><li><a href="#gpa-raspberrybush" class="toc-link"><code>cv_raspberrybush_gpa_4</code></a></li>
</ul>
</div>
<div class="toc-column">
<h3>Course selectors</h3>
<ul class="toc-list">
<li><a href="#course-selector-academic" class="toc-link"><code>academic</code></a></li><li><a href="#course-selector-cumulative" class="toc-link"><code>cumulative</code></a></li><li><a href="#course-selector-peachleaf" class="toc-link"><code>peachleaf</code></a></li>
</ul>
<h3>Calculators</h3>
<ul class="toc-list">
<li><a href="#calculator-grassfield" class="toc-link"><code>grassfield</code></a></li><li><a href="#calculator-peachleaf" class="toc-link"><code>peachleaf</code></a></li><li><a href="#calculator-percent" class="toc-link"><code>percent</code></a></li><li><a href="#calculator-points" class="toc-link"><code>points</code></a></li>
</ul>
</div>
<div class="toc-column">
<h3>Difficulty modifier mappings</h3>
<ul class="toc-list">
<li><a href="#difficulty_modifier_points_mapping_1" class="toc-link"><code>difficulty_modifier_points_mapping_1</code></a></li><li><a href="#difficulty_modifier_points_mapping_2" class="toc-link"><code>difficulty_modifier_points_mapping_2</code></a></li><li><a href="#difficulty_modifier_points_mapping_unweighted_1" class="toc-link"><code>difficulty_modifier_points_mapping_unweighted_1</code></a></li><li><a href="#difficulty_modifier_percent_mapping_unweighted_1" class="toc-link"><code>difficulty_modifier_percent_mapping_unweighted_1</code></a></li>
</ul>
<h3>Letter grade mappings</h3>
<ul class="toc-list">
<li><a href="#letter_grade_points_mapping_1" class="toc-link"><code>letter_grade_points_mapping_1</code></a></li><li><a href="#letter_grade_percent_mapping_1" class="toc-link"><code>letter_grade_percent_mapping_1</code></a></li>
</ul>
<h3>Percentage grade floor mappings</h3>
<ul class="toc-list">
<li><a href="#percent_grade_floor_points_mapping_1" class="toc-link"><code>percent_grade_floor_points_mapping_1</code></a></li><li><a href="#percent_grade_floor_points_mapping_2" class="toc-link"><code>percent_grade_floor_points_mapping_2</code></a></li>
</ul>
</div>
</div>
</section>
<section id="gpa-configurations" class="intro">
<h2>GPA configurations</h2>
<section class="gpa-config" id="gpa-chestnut">
<h3>Chestnut GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_chestnut_gpa_4</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-cumulative" class="component-link"><code>cumulative</code></a><div class="tooltip"><div><strong>Cumulative Course Selection</strong>: Includes all completed courses that have gradeable scores for GPA calculation.</div><div>This selector identifies courses that can contribute to a numerical GPA by filtering for courses with measurable academic performance. It serves as the foundation for other more specific course selection methods.</div><div>1. <strong>Include courses with letter grades</strong> (A+, A, A-, B+, B, etc.) that can be converted to numerical values<br>2. <strong>Include courses with percentage grades</strong> (0-100%) that represent quantitative performance<br>3. <strong>Include courses with scaled point grades</strong> that provide numerical assessment<br>4. <strong>Exclude courses with pass/fail grades only</strong>, as these cannot be converted to numerical GPA values</div><div><strong>Result</strong>: The broadest selection of academically assessable courses, representing the student's complete gradeable academic record.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-points" class="component-link"><code>points</code></a><div class="tooltip"><div><strong>Points-Based GPA Calculator</strong>: Calculates GPA on a traditional 0-4.0 scale following College Board standards.</div><div>This calculator follows the standard College Board methodology for converting grades to a 4.0 scale, with configurable difficulty bonuses for advanced courses.</div><div>1. <strong>Convert all grades to 4.0 scale</strong>: Letter grades use configured point mappings (e.g., A = 4.0, B = 3.0), percentage grades use floor mappings (e.g., 90-100% = 4.0)<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +1.0 for AP, +0.5 for Honors) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted point value by its credit hours<br>4. <strong>Calculate weighted average</strong>: Sum all weighted points and divide by total credits</div><div><strong>Result</strong>: A GPA on the standard 4.0 scale, with potential for values above 4.0 due to weighted courses.</div></div></div><br><div><strong>Referenced mappings:</strong></div><ul><li><div class="tooltip-container"><a href="#letter_grade_points_mapping_1" class="component-link"><code>letter_grade_points_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Letter grade to points</h4><table><thead><tr><th>Letter grade</th><th>Points</th></tr></thead><tbody><tr><td>A+</td><td>4</td></tr><tr><td>A</td><td>4</td></tr><tr><td>A-</td><td>4</td></tr><tr><td>AB</td><td>3.5</td></tr><tr><td>B+</td><td>3</td></tr><tr><td>B</td><td>3</td></tr><tr><td>B-</td><td>3</td></tr><tr><td>BC</td><td>2.5</td></tr><tr><td>C+</td><td>2</td></tr><tr><td>C</td><td>2</td></tr><tr><td>C-</td><td>2</td></tr><tr><td>CD</td><td>1.5</td></tr><tr><td>D+</td><td>1</td></tr><tr><td>D</td><td>1</td></tr><tr><td>D-</td><td>1</td></tr><tr><td>F</td><td>0</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#difficulty_modifier_points_mapping_2" class="component-link"><code>difficulty_modifier_points_mapping_2</code></a><div class="tooltip"><div class="tooltip-table"><h4>Difficulty modifier (points)</h4><table><thead><tr><th>Difficulty level</th><th>Modifier</th></tr></thead><tbody><tr><td>normal</td><td>0.0</td></tr><tr><td>accelerated or gifted</td><td>0.5</td></tr><tr><td>Honors</td><td>0.5</td></tr><tr><td>AP</td><td>0.5</td></tr><tr><td>college-level</td><td>0.5</td></tr><tr><td>IB</td><td>0.5</td></tr><tr><td>IB (standard level)</td><td>0.5</td></tr><tr><td>IB (higher level)</td><td>0.5</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#percent_grade_floor_points_mapping_2" class="component-link"><code>percent_grade_floor_points_mapping_2</code></a><div class="tooltip"><div class="tooltip-table"><h4>Percentage floor to points</h4><table><thead><tr><th>Percentage floor</th><th>Points</th></tr></thead><tbody><tr><td>90</td><td>4.0</td></tr><tr><td>80</td><td>3.0</td></tr><tr><td>70</td><td>2.0</td></tr><tr><td>65</td><td>1.0</td></tr><tr><td>0</td><td>0.0</td></tr></tbody></table></div></div></div></li></ul></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
<section class="gpa-config" id="gpa-grassfield">
<h3>Grassfield GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_grassfield_gpa_100</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-cumulative" class="component-link"><code>cumulative</code></a><div class="tooltip"><div><strong>Cumulative Course Selection</strong>: Includes all completed courses that have gradeable scores for GPA calculation.</div><div>This selector identifies courses that can contribute to a numerical GPA by filtering for courses with measurable academic performance. It serves as the foundation for other more specific course selection methods.</div><div>1. <strong>Include courses with letter grades</strong> (A+, A, A-, B+, B, etc.) that can be converted to numerical values<br>2. <strong>Include courses with percentage grades</strong> (0-100%) that represent quantitative performance<br>3. <strong>Include courses with scaled point grades</strong> that provide numerical assessment<br>4. <strong>Exclude courses with pass/fail grades only</strong>, as these cannot be converted to numerical GPA values</div><div><strong>Result</strong>: The broadest selection of academically assessable courses, representing the student's complete gradeable academic record.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-grassfield" class="component-link"><code>grassfield</code></a><div class="tooltip"><div><strong>Grassfield GPA Calculator</strong>: A specialized percentage-based calculator with unique Honors/AP credit bonuses.</div><div>This calculator uses a percentage-based approach but adds a unique bonus system that awards additional credits for Honors and AP courses rather than grade point bonuses.</div><div>1. <strong>Convert grades to percentages</strong>: Letter grades use specific mappings (A+ = 100%, A = 97%, etc.), scaled points converted using formula (55.9 + points × 11)<br>2. <strong>Calculate weighted percentage average</strong>: Multiply each course percentage by credit hours, sum all values, divide by total credits<br>3. <strong>Count Honors/AP courses</strong>: Identify courses marked as Honors or Advanced Placement difficulty<br>4. <strong>Apply Honors/AP bonus</strong>: Add 0.333 credits per Honors/AP course to the base percentage average</div><div><strong>Result</strong>: A percentage-based GPA (typically 60-100+) that rewards both academic performance and advanced course participation.</div></div></div></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
<section class="gpa-config" id="gpa-lychee">
<h3>Lychee GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_lychee_gpa_100</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-academic" class="component-link"><code>academic</code></a><div class="tooltip"><div><strong>Academic Course Selection</strong>: Includes only core academic courses that count toward cumulative GPA calculation.</div><div>This selector focuses on traditional academic subjects that form the foundation of college preparatory education, excluding non-academic electives and practical courses.</div><div>1. <strong>Start with cumulative courses</strong> (all courses with gradeable scores)<br>2. <strong>Filter to academic subjects only</strong>: English/Language Arts, Mathematics, Science, Social Studies, World Languages, and other core academic disciplines<br>3. <strong>Exclude non-academic courses</strong>: Physical Education, Health, Study Hall, Driver's Education, and practical electives<br>4. <strong>Include academic-level electives</strong>: Advanced academic courses in subjects like Psychology, Philosophy, or Computer Science when classified as academic</div><div><strong>Result</strong>: A focused selection representing the student's performance in traditional college-preparatory academic coursework.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-percent" class="component-link"><code>percent</code></a><div class="tooltip"><div><strong>Percentage-Based GPA Calculator</strong>: Calculates GPA on a 0-100 percentage scale using weighted averages.</div><div>This calculator converts all grades to percentages and applies difficulty modifiers to account for advanced coursework, then calculates a weighted average based on credit hours.</div><div>1. <strong>Convert all grades to percentages</strong>: Letter grades use a configured mapping (e.g., A = 95%, B = 85%), percentage grades remain as-is<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +5 points for AP courses) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted percentage by its credit value<br>4. <strong>Calculate weighted average</strong>: Sum all weighted percentages and divide by total credits</div><div><strong>Result</strong>: A GPA expressed as a percentage (0-100), where higher percentages indicate better academic performance.</div></div></div><br><div><strong>Referenced mappings:</strong></div><ul><li><div class="tooltip-container"><a href="#letter_grade_percent_mapping_1" class="component-link"><code>letter_grade_percent_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Letter grade to percent</h4><table><thead><tr><th>Letter grade</th><th>Percentage</th></tr></thead><tbody><tr><td>A+</td><td>98</td></tr><tr><td>A</td><td>95</td></tr><tr><td>A-</td><td>92</td></tr><tr><td>AB</td><td>90</td></tr><tr><td>B+</td><td>88</td></tr><tr><td>B</td><td>85</td></tr><tr><td>B-</td><td>82</td></tr><tr><td>BC</td><td>80</td></tr><tr><td>C+</td><td>78</td></tr><tr><td>C</td><td>75</td></tr><tr><td>C-</td><td>72</td></tr><tr><td>CD</td><td>70</td></tr><tr><td>D+</td><td>68</td></tr><tr><td>D</td><td>65</td></tr><tr><td>D-</td><td>62</td></tr><tr><td>F</td><td>60</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#difficulty_modifier_percent_mapping_unweighted_1" class="component-link"><code>difficulty_modifier_percent_mapping_unweighted_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Difficulty modifier (percent)</h4><table><thead><tr><th>Difficulty level</th><th>Modifier</th></tr></thead><tbody><tr><td>normal</td><td>0</td></tr><tr><td>accelerated or gifted</td><td>0</td></tr><tr><td>Honors</td><td>0</td></tr><tr><td>AP</td><td>0</td></tr><tr><td>college-level</td><td>0</td></tr><tr><td>IB</td><td>0</td></tr><tr><td>IB (standard level)</td><td>0</td></tr><tr><td>IB (higher level)</td><td>0</td></tr></tbody></table></div></div></div></li></ul></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
<section class="gpa-config" id="gpa-orangetree">
<h3>Orangetree GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_orangetree_gpa_4</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-cumulative" class="component-link"><code>cumulative</code></a><div class="tooltip"><div><strong>Cumulative Course Selection</strong>: Includes all completed courses that have gradeable scores for GPA calculation.</div><div>This selector identifies courses that can contribute to a numerical GPA by filtering for courses with measurable academic performance. It serves as the foundation for other more specific course selection methods.</div><div>1. <strong>Include courses with letter grades</strong> (A+, A, A-, B+, B, etc.) that can be converted to numerical values<br>2. <strong>Include courses with percentage grades</strong> (0-100%) that represent quantitative performance<br>3. <strong>Include courses with scaled point grades</strong> that provide numerical assessment<br>4. <strong>Exclude courses with pass/fail grades only</strong>, as these cannot be converted to numerical GPA values</div><div><strong>Result</strong>: The broadest selection of academically assessable courses, representing the student's complete gradeable academic record.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-points" class="component-link"><code>points</code></a><div class="tooltip"><div><strong>Points-Based GPA Calculator</strong>: Calculates GPA on a traditional 0-4.0 scale following College Board standards.</div><div>This calculator follows the standard College Board methodology for converting grades to a 4.0 scale, with configurable difficulty bonuses for advanced courses.</div><div>1. <strong>Convert all grades to 4.0 scale</strong>: Letter grades use configured point mappings (e.g., A = 4.0, B = 3.0), percentage grades use floor mappings (e.g., 90-100% = 4.0)<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +1.0 for AP, +0.5 for Honors) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted point value by its credit hours<br>4. <strong>Calculate weighted average</strong>: Sum all weighted points and divide by total credits</div><div><strong>Result</strong>: A GPA on the standard 4.0 scale, with potential for values above 4.0 due to weighted courses.</div></div></div><br><div><strong>Referenced mappings:</strong></div><ul><li><div class="tooltip-container"><a href="#letter_grade_points_mapping_1" class="component-link"><code>letter_grade_points_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Letter grade to points</h4><table><thead><tr><th>Letter grade</th><th>Points</th></tr></thead><tbody><tr><td>A+</td><td>4</td></tr><tr><td>A</td><td>4</td></tr><tr><td>A-</td><td>4</td></tr><tr><td>AB</td><td>3.5</td></tr><tr><td>B+</td><td>3</td></tr><tr><td>B</td><td>3</td></tr><tr><td>B-</td><td>3</td></tr><tr><td>BC</td><td>2.5</td></tr><tr><td>C+</td><td>2</td></tr><tr><td>C</td><td>2</td></tr><tr><td>C-</td><td>2</td></tr><tr><td>CD</td><td>1.5</td></tr><tr><td>D+</td><td>1</td></tr><tr><td>D</td><td>1</td></tr><tr><td>D-</td><td>1</td></tr><tr><td>F</td><td>0</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#difficulty_modifier_points_mapping_unweighted_1" class="component-link"><code>difficulty_modifier_points_mapping_unweighted_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Difficulty modifier (points)</h4><table><thead><tr><th>Difficulty level</th><th>Modifier</th></tr></thead><tbody><tr><td>normal</td><td>0.0</td></tr><tr><td>accelerated or gifted</td><td>0.0</td></tr><tr><td>Honors</td><td>0.0</td></tr><tr><td>AP</td><td>0.0</td></tr><tr><td>college-level</td><td>0.0</td></tr><tr><td>IB</td><td>0.0</td></tr><tr><td>IB (standard level)</td><td>0.0</td></tr><tr><td>IB (higher level)</td><td>0.0</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#percent_grade_floor_points_mapping_2" class="component-link"><code>percent_grade_floor_points_mapping_2</code></a><div class="tooltip"><div class="tooltip-table"><h4>Percentage floor to points</h4><table><thead><tr><th>Percentage floor</th><th>Points</th></tr></thead><tbody><tr><td>90</td><td>4.0</td></tr><tr><td>80</td><td>3.0</td></tr><tr><td>70</td><td>2.0</td></tr><tr><td>65</td><td>1.0</td></tr><tr><td>0</td><td>0.0</td></tr></tbody></table></div></div></div></li></ul></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
<section class="gpa-config" id="gpa-peachleaf">
<h3>Peachleaf GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_peachleaf_gpa_4</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-peachleaf" class="component-link"><code>peachleaf</code></a><div class="tooltip"><div><strong>Peachleaf Course Selection</strong>: A hybrid approach that includes academic courses plus all AP/IB courses regardless of subject classification.</div><div>This selector recognizes that Advanced Placement and International Baccalaureate courses represent college-level rigor and should be included in GPA calculations even when they fall outside traditional academic categories.</div><div>1. <strong>Start with cumulative courses</strong> (all courses with gradeable scores)<br>2. <strong>Include all academic courses</strong> (core subjects like English, Mathematics, Science, Social Studies, World Languages)<br>3. <strong>Also include AP courses</strong> regardless of subject area (including AP Art, AP Music Theory, etc.)<br>4. <strong>Also include all IB courses</strong> at any level (Standard Level, Higher Level, or Unknown Level)<br>5. <strong>Exclude other non-academic courses</strong> that are not AP or IB designated</div><div><strong>Result</strong>: Academic courses plus any Advanced Placement or International Baccalaureate coursework, providing recognition for advanced course rigor across all subject areas.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-peachleaf" class="component-link"><code>peachleaf</code></a><div class="tooltip"><div><strong>Peachleaf GPA Calculator</strong>: A specialized calculator using course-based averaging with AP/IB bonuses and a unique grading scale.</div><div>This calculator treats each course equally (no credit weighting) and uses a specialized 13-level grading scale with bonuses only for AP and IB courses.</div><div>1. <strong>Convert grades to percentages</strong>: Letter grades mapped to specific values (A+ = 98%, A = 95%, F = 55%), with floor rounding applied<br>2. <strong>Convert percentages to quality points</strong>: Use specialized scale (94+ = 4.0, 90-93 = 3.7, 87-89 = 3.3, etc.) with 13 grade levels<br>3. <strong>Apply AP/IB bonuses</strong>: Add +1.0 quality point for Advanced Placement and International Baccalaureate courses only<br>4. <strong>Calculate simple average</strong>: Sum all quality points and divide by number of courses (not credit-weighted)</div><div><strong>Result</strong>: A 4.0+ scale GPA that treats each course equally while rewarding AP/IB participation with bonus points.</div></div></div></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
<section class="gpa-config" id="gpa-raspberrybush">
<h3>Raspberrybush GPA</h3>
<div class="gpa-details">
<p><strong>CSV column name:</strong> <code>cv_raspberrybush_gpa_4</code></p>
<h4>Components</h4>
<div class="component-links">
<p><strong>Course selector:</strong> <div class="tooltip-container"><a href="#course-selector-cumulative" class="component-link"><code>cumulative</code></a><div class="tooltip"><div><strong>Cumulative Course Selection</strong>: Includes all completed courses that have gradeable scores for GPA calculation.</div><div>This selector identifies courses that can contribute to a numerical GPA by filtering for courses with measurable academic performance. It serves as the foundation for other more specific course selection methods.</div><div>1. <strong>Include courses with letter grades</strong> (A+, A, A-, B+, B, etc.) that can be converted to numerical values<br>2. <strong>Include courses with percentage grades</strong> (0-100%) that represent quantitative performance<br>3. <strong>Include courses with scaled point grades</strong> that provide numerical assessment<br>4. <strong>Exclude courses with pass/fail grades only</strong>, as these cannot be converted to numerical GPA values</div><div><strong>Result</strong>: The broadest selection of academically assessable courses, representing the student's complete gradeable academic record.</div></div></div><br><strong>Calculator:</strong> <div class="tooltip-container"><a href="#calculator-points" class="component-link"><code>points</code></a><div class="tooltip"><div><strong>Points-Based GPA Calculator</strong>: Calculates GPA on a traditional 0-4.0 scale following College Board standards.</div><div>This calculator follows the standard College Board methodology for converting grades to a 4.0 scale, with configurable difficulty bonuses for advanced courses.</div><div>1. <strong>Convert all grades to 4.0 scale</strong>: Letter grades use configured point mappings (e.g., A = 4.0, B = 3.0), percentage grades use floor mappings (e.g., 90-100% = 4.0)<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +1.0 for AP, +0.5 for Honors) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted point value by its credit hours<br>4. <strong>Calculate weighted average</strong>: Sum all weighted points and divide by total credits</div><div><strong>Result</strong>: A GPA on the standard 4.0 scale, with potential for values above 4.0 due to weighted courses.</div></div></div><br><div><strong>Referenced mappings:</strong></div><ul><li><div class="tooltip-container"><a href="#letter_grade_points_mapping_1" class="component-link"><code>letter_grade_points_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Letter grade to points</h4><table><thead><tr><th>Letter grade</th><th>Points</th></tr></thead><tbody><tr><td>A+</td><td>4</td></tr><tr><td>A</td><td>4</td></tr><tr><td>A-</td><td>4</td></tr><tr><td>AB</td><td>3.5</td></tr><tr><td>B+</td><td>3</td></tr><tr><td>B</td><td>3</td></tr><tr><td>B-</td><td>3</td></tr><tr><td>BC</td><td>2.5</td></tr><tr><td>C+</td><td>2</td></tr><tr><td>C</td><td>2</td></tr><tr><td>C-</td><td>2</td></tr><tr><td>CD</td><td>1.5</td></tr><tr><td>D+</td><td>1</td></tr><tr><td>D</td><td>1</td></tr><tr><td>D-</td><td>1</td></tr><tr><td>F</td><td>0</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#difficulty_modifier_points_mapping_1" class="component-link"><code>difficulty_modifier_points_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Difficulty modifier (points)</h4><table><thead><tr><th>Difficulty level</th><th>Modifier</th></tr></thead><tbody><tr><td>normal</td><td>0.0</td></tr><tr><td>accelerated or gifted</td><td>0.5</td></tr><tr><td>Honors</td><td>0.5</td></tr><tr><td>AP</td><td>1.0</td></tr><tr><td>college-level</td><td>1.0</td></tr><tr><td>IB</td><td>1.0</td></tr><tr><td>IB (standard level)</td><td>1.0</td></tr><tr><td>IB (higher level)</td><td>1.0</td></tr></tbody></table></div></div></div></li><li><div class="tooltip-container"><a href="#percent_grade_floor_points_mapping_1" class="component-link"><code>percent_grade_floor_points_mapping_1</code></a><div class="tooltip"><div class="tooltip-table"><h4>Percentage floor to points</h4><table><thead><tr><th>Percentage floor</th><th>Points</th></tr></thead><tbody><tr><td>90</td><td>4.0</td></tr><tr><td>80</td><td>3.0</td></tr><tr><td>70</td><td>2.0</td></tr><tr><td>60</td><td>1.0</td></tr><tr><td>0</td><td>0.0</td></tr></tbody></table></div></div></div></li></ul></p>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
</section>
<section id="component-reference">
<h2>GPA component reference</h2>
<p>This section provides detailed tables for all the components used in GPA calculations.</p>
<h3>Course selectors</h3>
<div class="component-table" id="course-selector-cumulative">
<h4>Course selector: <code>cumulative</code></h4>
<div class="component-doc">
<div><strong>Cumulative Course Selection</strong>: Includes all completed courses that have gradeable scores for GPA calculation.</div><div>This selector identifies courses that can contribute to a numerical GPA by filtering for courses with measurable academic performance. It serves as the foundation for other more specific course selection methods.</div><div>1. <strong>Include courses with letter grades</strong> (A+, A, A-, B+, B, etc.) that can be converted to numerical values<br>2. <strong>Include courses with percentage grades</strong> (0-100%) that represent quantitative performance<br>3. <strong>Include courses with scaled point grades</strong> that provide numerical assessment<br>4. <strong>Exclude courses with pass/fail grades only</strong>, as these cannot be converted to numerical GPA values</div><div><strong>Result</strong>: The broadest selection of academically assessable courses, representing the student's complete gradeable academic record.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="course-selector-academic">
<h4>Course selector: <code>academic</code></h4>
<div class="component-doc">
<div><strong>Academic Course Selection</strong>: Includes only core academic courses that count toward cumulative GPA calculation.</div><div>This selector focuses on traditional academic subjects that form the foundation of college preparatory education, excluding non-academic electives and practical courses.</div><div>1. <strong>Start with cumulative courses</strong> (all courses with gradeable scores)<br>2. <strong>Filter to academic subjects only</strong>: English/Language Arts, Mathematics, Science, Social Studies, World Languages, and other core academic disciplines<br>3. <strong>Exclude non-academic courses</strong>: Physical Education, Health, Study Hall, Driver's Education, and practical electives<br>4. <strong>Include academic-level electives</strong>: Advanced academic courses in subjects like Psychology, Philosophy, or Computer Science when classified as academic</div><div><strong>Result</strong>: A focused selection representing the student's performance in traditional college-preparatory academic coursework.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="course-selector-peachleaf">
<h4>Course selector: <code>peachleaf</code></h4>
<div class="component-doc">
<div><strong>Peachleaf Course Selection</strong>: A hybrid approach that includes academic courses plus all AP/IB courses regardless of subject classification.</div><div>This selector recognizes that Advanced Placement and International Baccalaureate courses represent college-level rigor and should be included in GPA calculations even when they fall outside traditional academic categories.</div><div>1. <strong>Start with cumulative courses</strong> (all courses with gradeable scores)<br>2. <strong>Include all academic courses</strong> (core subjects like English, Mathematics, Science, Social Studies, World Languages)<br>3. <strong>Also include AP courses</strong> regardless of subject area (including AP Art, AP Music Theory, etc.)<br>4. <strong>Also include all IB courses</strong> at any level (Standard Level, Higher Level, or Unknown Level)<br>5. <strong>Exclude other non-academic courses</strong> that are not AP or IB designated</div><div><strong>Result</strong>: Academic courses plus any Advanced Placement or International Baccalaureate coursework, providing recognition for advanced course rigor across all subject areas.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<h3>Calculators</h3>
<div class="component-table" id="calculator-percent">
<h4>Calculator:<code>percent</code></h4>
<div class="component-doc">
<div><strong>Percentage-Based GPA Calculator</strong>: Calculates GPA on a 0-100 percentage scale using weighted averages.</div><div>This calculator converts all grades to percentages and applies difficulty modifiers to account for advanced coursework, then calculates a weighted average based on credit hours.</div><div>1. <strong>Convert all grades to percentages</strong>: Letter grades use a configured mapping (e.g., A = 95%, B = 85%), percentage grades remain as-is<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +5 points for AP courses) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted percentage by its credit value<br>4. <strong>Calculate weighted average</strong>: Sum all weighted percentages and divide by total credits</div><div><strong>Result</strong>: A GPA expressed as a percentage (0-100), where higher percentages indicate better academic performance.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="calculator-points">
<h4>Calculator:<code>points</code></h4>
<div class="component-doc">
<div><strong>Points-Based GPA Calculator</strong>: Calculates GPA on a traditional 0-4.0 scale following College Board standards.</div><div>This calculator follows the standard College Board methodology for converting grades to a 4.0 scale, with configurable difficulty bonuses for advanced courses.</div><div>1. <strong>Convert all grades to 4.0 scale</strong>: Letter grades use configured point mappings (e.g., A = 4.0, B = 3.0), percentage grades use floor mappings (e.g., 90-100% = 4.0)<br>2. <strong>Apply difficulty modifiers</strong>: Add bonus points for advanced courses (e.g., +1.0 for AP, +0.5 for Honors) based on configuration<br>3. <strong>Weight by credit hours</strong>: Multiply each course's adjusted point value by its credit hours<br>4. <strong>Calculate weighted average</strong>: Sum all weighted points and divide by total credits</div><div><strong>Result</strong>: A GPA on the standard 4.0 scale, with potential for values above 4.0 due to weighted courses.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="calculator-grassfield">
<h4>Calculator:<code>grassfield</code></h4>
<div class="component-doc">
<div><strong>Grassfield GPA Calculator</strong>: A specialized percentage-based calculator with unique Honors/AP credit bonuses.</div><div>This calculator uses a percentage-based approach but adds a unique bonus system that awards additional credits for Honors and AP courses rather than grade point bonuses.</div><div>1. <strong>Convert grades to percentages</strong>: Letter grades use specific mappings (A+ = 100%, A = 97%, etc.), scaled points converted using formula (55.9 + points × 11)<br>2. <strong>Calculate weighted percentage average</strong>: Multiply each course percentage by credit hours, sum all values, divide by total credits<br>3. <strong>Count Honors/AP courses</strong>: Identify courses marked as Honors or Advanced Placement difficulty<br>4. <strong>Apply Honors/AP bonus</strong>: Add 0.333 credits per Honors/AP course to the base percentage average</div><div><strong>Result</strong>: A percentage-based GPA (typically 60-100+) that rewards both academic performance and advanced course participation.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="calculator-peachleaf">
<h4>Calculator:<code>peachleaf</code></h4>
<div class="component-doc">
<div><strong>Peachleaf GPA Calculator</strong>: A specialized calculator using course-based averaging with AP/IB bonuses and a unique grading scale.</div><div>This calculator treats each course equally (no credit weighting) and uses a specialized 13-level grading scale with bonuses only for AP and IB courses.</div><div>1. <strong>Convert grades to percentages</strong>: Letter grades mapped to specific values (A+ = 98%, A = 95%, F = 55%), with floor rounding applied<br>2. <strong>Convert percentages to quality points</strong>: Use specialized scale (94+ = 4.0, 90-93 = 3.7, 87-89 = 3.3, etc.) with 13 grade levels<br>3. <strong>Apply AP/IB bonuses</strong>: Add +1.0 quality point for Advanced Placement and International Baccalaureate courses only<br>4. <strong>Calculate simple average</strong>: Sum all quality points and divide by number of courses (not credit-weighted)</div><div><strong>Result</strong>: A 4.0+ scale GPA that treats each course equally while rewarding AP/IB participation with bonus points.</div>
</div>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<h3>Difficulty modifier mappings</h3>
<div class="component-table" id="difficulty_modifier_percent_mapping_unweighted_1">
<h4><code>difficulty_modifier_percent_mapping_unweighted_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Difficulty level</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
<tr><td>Normal</td><td>0</td></tr><tr><td>Accelerated</td><td>0</td></tr><tr><td>Honors</td><td>0</td></tr><tr><td>AP</td><td>0</td></tr><tr><td>College</td><td>0</td></tr><tr><td>IB</td><td>0</td></tr><tr><td>IB SL</td><td>0</td></tr><tr><td>IB HL</td><td>0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="difficulty_modifier_points_mapping_1">
<h4><code>difficulty_modifier_points_mapping_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Difficulty level</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
<tr><td>Normal</td><td>0.0</td></tr><tr><td>Accelerated</td><td>0.5</td></tr><tr><td>Honors</td><td>0.5</td></tr><tr><td>AP</td><td>1.0</td></tr><tr><td>College</td><td>1.0</td></tr><tr><td>IB</td><td>1.0</td></tr><tr><td>IB SL</td><td>1.0</td></tr><tr><td>IB HL</td><td>1.0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="difficulty_modifier_points_mapping_2">
<h4><code>difficulty_modifier_points_mapping_2</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Difficulty level</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
<tr><td>Normal</td><td>0.0</td></tr><tr><td>Accelerated</td><td>0.5</td></tr><tr><td>Honors</td><td>0.5</td></tr><tr><td>AP</td><td>0.5</td></tr><tr><td>College</td><td>0.5</td></tr><tr><td>IB</td><td>0.5</td></tr><tr><td>IB SL</td><td>0.5</td></tr><tr><td>IB HL</td><td>0.5</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="difficulty_modifier_points_mapping_unweighted_1">
<h4><code>difficulty_modifier_points_mapping_unweighted_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Difficulty level</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
<tr><td>Normal</td><td>0.0</td></tr><tr><td>Accelerated</td><td>0.0</td></tr><tr><td>Honors</td><td>0.0</td></tr><tr><td>AP</td><td>0.0</td></tr><tr><td>College</td><td>0.0</td></tr><tr><td>IB</td><td>0.0</td></tr><tr><td>IB SL</td><td>0.0</td></tr><tr><td>IB HL</td><td>0.0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<h3>Letter grade mappings</h3>
<div class="component-table" id="letter_grade_percent_mapping_1">
<h4><code>letter_grade_percent_mapping_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Letter grade</th>
<th>Percentage</th>
</tr>
</thead>
<tbody>
<tr><td>A+</td><td>98</td></tr><tr><td>A</td><td>95</td></tr><tr><td>A-</td><td>92</td></tr><tr><td>AB</td><td>90</td></tr><tr><td>B+</td><td>88</td></tr><tr><td>B</td><td>85</td></tr><tr><td>B-</td><td>82</td></tr><tr><td>BC</td><td>80</td></tr><tr><td>C+</td><td>78</td></tr><tr><td>C</td><td>75</td></tr><tr><td>C-</td><td>72</td></tr><tr><td>CD</td><td>70</td></tr><tr><td>D+</td><td>68</td></tr><tr><td>D</td><td>65</td></tr><tr><td>D-</td><td>62</td></tr><tr><td>F</td><td>60</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="letter_grade_points_mapping_1">
<h4><code>letter_grade_points_mapping_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Letter grade</th>
<th>Points</th>
</tr>
</thead>
<tbody>
<tr><td>A+</td><td>4</td></tr><tr><td>A</td><td>4</td></tr><tr><td>A-</td><td>4</td></tr><tr><td>AB</td><td>3.5</td></tr><tr><td>B+</td><td>3</td></tr><tr><td>B</td><td>3</td></tr><tr><td>B-</td><td>3</td></tr><tr><td>BC</td><td>2.5</td></tr><tr><td>C+</td><td>2</td></tr><tr><td>C</td><td>2</td></tr><tr><td>C-</td><td>2</td></tr><tr><td>CD</td><td>1.5</td></tr><tr><td>D+</td><td>1</td></tr><tr><td>D</td><td>1</td></tr><tr><td>D-</td><td>1</td></tr><tr><td>F</td><td>0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<h3>Percentage grade floor mappings</h3>
<div class="component-table" id="percent_grade_floor_points_mapping_1">
<h4><code>percent_grade_floor_points_mapping_1</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Percentage floor</th>
<th>Points</th>
</tr>
</thead>
<tbody>
<tr><td>90</td><td>4.0</td></tr><tr><td>80</td><td>3.0</td></tr><tr><td>70</td><td>2.0</td></tr><tr><td>60</td><td>1.0</td></tr><tr><td>0</td><td>0.0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
<div class="component-table" id="percent_grade_floor_points_mapping_2">
<h4><code>percent_grade_floor_points_mapping_2</code></h4>
<table class="mapping-table">
<thead>
<tr>
<th>Percentage floor</th>
<th>Points</th>
</tr>
</thead>
<tbody>
<tr><td>90</td><td>4.0</td></tr><tr><td>80</td><td>3.0</td></tr><tr><td>70</td><td>2.0</td></tr><tr><td>65</td><td>1.0</td></tr><tr><td>0</td><td>0.0</td></tr>
</tbody>
</table>
<p class="go-to-top"><a href="#overview">↑ Go to top</a></p>
</div>
</section>
</div>
</main>
<footer>
<div class="container">
<p>Generated on 2025-05-29 02:38:45</p>
</div>
</footer>
<script>
// Smooth scrolling for navigation links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
}
});
});
// Highlight current section in navigation
window.addEventListener('scroll', () => {
const sections = document.querySelectorAll('section[id]');
const navLinks = document.querySelectorAll('.nav-menu a');
let current = '';
sections.forEach(section => {
const sectionTop = section.getBoundingClientRect().top;
if (sectionTop <= 100) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href') === '#' + current) {
link.classList.add('active');
}
});
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment