<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 300" role="img" aria-labelledby="t d" width="760" height="300">
  <title id="t">How Percentiles Map to Curved Letter Grades</title><desc id="d">A horizontal bar segmented by percentile into letter grades: F below the 10th, D to the 30th, C to the 70th, B to the 90th, and A above, with matching z-scores.</desc>
  <style>
    svg { --s:#fffdf7; --cv:#f2ecdd; --ink:#171d1a; --mut:#52645e; --ln:#ded4c2; --lns:#c8b99e;
          --br:#125c4f; --br2:#2f9e88; --ac:#b68a3b; --acs:#e9d3a0; --tr:#e4dccb; --dg:#b23a2f;
          font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
    @media (prefers-color-scheme: dark){
      svg { --s:#1c1a15; --cv:#13120e; --ink:#f2eee4; --mut:#b7b0a1; --ln:#35322a; --lns:#4b4638;
            --br:#2f9e88; --br2:#57c6ae; --ac:#d4a24e; --acs:#5a4a28; --tr:#211e18; --dg:#e0796d; }
    }
    .card{fill:var(--s);stroke:var(--ln);stroke-width:1;}
    .ttl{fill:var(--ink);font-size:21px;font-weight:700;}
    .sub{fill:var(--mut);font-size:13.5px;}
    .lbl{fill:var(--ink);font-size:13px;font-weight:600;}
    .lblb{fill:var(--ink);font-size:15px;font-weight:700;}
    .mut{fill:var(--mut);font-size:12.5px;}
    .muts{fill:var(--mut);font-size:11.5px;}
    .axis{stroke:var(--lns);stroke-width:1.5;}
    .grid{stroke:var(--ln);stroke-width:1;stroke-dasharray:3 4;}
    .curve{fill:none;stroke:var(--br);stroke-width:3;stroke-linejoin:round;}
    .curve2{fill:none;stroke:var(--ac);stroke-width:3;stroke-linejoin:round;stroke-dasharray:7 5;}
    .f1{fill:var(--br2);opacity:.30;}
    .f2{fill:var(--br2);opacity:.19;}
    .f3{fill:var(--br2);opacity:.10;}
    .fillc{fill:var(--br2);opacity:.24;}
    .vline{stroke:var(--br);stroke-width:2;}
    .accbar{fill:var(--ac);}
  </style>
  <rect class="card" x="0.5" y="0.5" width="759" height="299" rx="16"/>
  <text class="ttl" x="32" y="42">How Percentiles Map to Curved Letter Grades</text>
  <text class="sub" x="32" y="64">The classic 10–20–40–20–10 bell-curve distribution</text>
  <rect x="60" y="150" width="66" height="58" fill="var(--dg)" stroke="var(--s)" stroke-width="2"/><text x="93" y="180" text-anchor="middle" font-size="20" font-weight="700" fill="#fff">F</text><text x="93" y="198" text-anchor="middle" font-size="10.5" fill="#fff">10%</text><rect x="126" y="150" width="132" height="58" fill="var(--acs)" stroke="var(--s)" stroke-width="2"/><text x="192" y="180" text-anchor="middle" font-size="20" font-weight="700" fill="var(--ink)">D</text><text x="192" y="198" text-anchor="middle" font-size="10.5" fill="var(--ink)">20%</text><rect x="258" y="150" width="264" height="58" fill="var(--tr)" stroke="var(--s)" stroke-width="2"/><text x="390" y="180" text-anchor="middle" font-size="20" font-weight="700" fill="var(--ink)">C</text><text x="390" y="198" text-anchor="middle" font-size="10.5" fill="var(--ink)">40%</text><rect x="522" y="150" width="132" height="58" fill="var(--br2)" stroke="var(--s)" stroke-width="2"/><text x="588" y="180" text-anchor="middle" font-size="20" font-weight="700" fill="#fff">B</text><text x="588" y="198" text-anchor="middle" font-size="10.5" fill="#fff">20%</text><rect x="654" y="150" width="66" height="58" fill="var(--br)" stroke="var(--s)" stroke-width="2"/><text x="687" y="180" text-anchor="middle" font-size="20" font-weight="700" fill="#fff">A</text><text x="687" y="198" text-anchor="middle" font-size="10.5" fill="#fff">10%</text><line class="axis" x1="60" y1="212" x2="720" y2="212"/><line class="axis" x1="60" y1="212" x2="60" y2="218"/><text class="mut" x="60" y="234" text-anchor="middle">0</text><line class="axis" x1="126" y1="212" x2="126" y2="218"/><text class="mut" x="126" y="234" text-anchor="middle">10</text><line class="axis" x1="258" y1="212" x2="258" y2="218"/><text class="mut" x="258" y="234" text-anchor="middle">30</text><line class="axis" x1="390" y1="212" x2="390" y2="218"/><text class="mut" x="390" y="234" text-anchor="middle">50</text><line class="axis" x1="522" y1="212" x2="522" y2="218"/><text class="mut" x="522" y="234" text-anchor="middle">70</text><line class="axis" x1="654" y1="212" x2="654" y2="218"/><text class="mut" x="654" y="234" text-anchor="middle">90</text><line class="axis" x1="720" y1="212" x2="720" y2="218"/><text class="mut" x="720" y="234" text-anchor="middle">100</text><text class="muts" x="720" y="252" text-anchor="end">Percentile rank →</text><line class="grid" x1="126" y1="132" x2="126" y2="150"/><text class="muts" x="126" y="128" text-anchor="middle">z=−1.28</text><line class="grid" x1="258" y1="132" x2="258" y2="150"/><text class="muts" x="258" y="128" text-anchor="middle">z=−0.52</text><line class="grid" x1="522" y1="132" x2="522" y2="150"/><text class="muts" x="522" y="128" text-anchor="middle">z=+0.52</text><line class="grid" x1="654" y1="132" x2="654" y2="150"/><text class="muts" x="654" y="128" text-anchor="middle">z=+1.28</text>
</svg>
