chartlet 0.23.0

Compile structured data into deterministic, accessible static charts
Documentation
1
<figure class="chartlet-figure" data-viz="chart"><figcaption>Checkout API error rate</figcaption><svg xmlns="http://www.w3.org/2000/svg" width="800" height="450" viewBox="0 0 800 450" id="chartlet-ed24ebc8aeefb075" role="img" aria-labelledby="chartlet-ed24ebc8aeefb075-title chartlet-ed24ebc8aeefb075-description" class="chartlet-root"><title id="chartlet-ed24ebc8aeefb075-title">Checkout API error rate</title><desc id="chartlet-ed24ebc8aeefb075-description">Time chart with 42 points from 2026-02-02 to 2026-03-15. Highest: 2.14 (2026-02-24). Lowest: 0.23 (2026-02-06, 2026-02-15). 1 value is missing. Zones: Above the error budget, values 1.00 to 2.50; Maintenance, 2026-02-16 to 2026-02-19. Markers: Release 2.4 at 2026-02-24, 2.14; Rollback at 2026-02-26, 1.18; Hotfix at 2026-03-06, 0.36.</desc><style>.chartlet-root{--chartlet-text:#172033;--chartlet-muted:#344054;--chartlet-grid:#d9dee8;--chartlet-zero:#667085;--chartlet-accent:#2563eb;--chartlet-background:#fff;--chartlet-color-1:#2563eb;--chartlet-color-2:#c2410c;--chartlet-color-3:#475569;--chartlet-color-4:#111827;max-width:100%;height:auto;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--chartlet-text)}#chartlet-ed24ebc8aeefb075 .chartlet-title{font-size:22px;font-weight:650;fill:var(--chartlet-text)}#chartlet-ed24ebc8aeefb075 .chartlet-label,#chartlet-ed24ebc8aeefb075 .chartlet-tick,#chartlet-ed24ebc8aeefb075 .chartlet-value,#chartlet-ed24ebc8aeefb075 .chartlet-value-inverse,#chartlet-ed24ebc8aeefb075 .chartlet-axis-title{font-size:12px;fill:var(--chartlet-muted)}#chartlet-ed24ebc8aeefb075 .chartlet-value,#chartlet-ed24ebc8aeefb075 .chartlet-value-inverse{font-weight:600}#chartlet-ed24ebc8aeefb075 .chartlet-value{fill:var(--chartlet-text)}#chartlet-ed24ebc8aeefb075 .chartlet-value-inverse{fill:var(--chartlet-background)}#chartlet-ed24ebc8aeefb075 .chartlet-axis-title{font-weight:600}#chartlet-ed24ebc8aeefb075 .chartlet-grid{stroke:var(--chartlet-grid);stroke-width:1}#chartlet-ed24ebc8aeefb075 .chartlet-zero{stroke:var(--chartlet-zero);stroke-width:1.5}#chartlet-ed24ebc8aeefb075 .chartlet-bar,#chartlet-ed24ebc8aeefb075 .chartlet-point{fill:var(--chartlet-accent)}#chartlet-ed24ebc8aeefb075 .chartlet-line{fill:none;stroke:var(--chartlet-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}#chartlet-ed24ebc8aeefb075 .chartlet-background{fill:var(--chartlet-background)}#chartlet-ed24ebc8aeefb075 .chartlet-legend{font-size:12px;fill:var(--chartlet-muted)}#chartlet-ed24ebc8aeefb075 .chartlet-line-series-1{stroke:var(--chartlet-color-1)}#chartlet-ed24ebc8aeefb075 .chartlet-line-series-2{stroke:var(--chartlet-color-2)}#chartlet-ed24ebc8aeefb075 .chartlet-line-series-3{stroke:var(--chartlet-color-3)}#chartlet-ed24ebc8aeefb075 .chartlet-line-series-4{stroke:var(--chartlet-color-4)}#chartlet-ed24ebc8aeefb075 .chartlet-point-series-1{fill:var(--chartlet-color-1)}#chartlet-ed24ebc8aeefb075 .chartlet-hit{fill:transparent;stroke:none}#chartlet-ed24ebc8aeefb075 .chartlet-band{stroke:none;fill-opacity:.18}#chartlet-ed24ebc8aeefb075 .chartlet-band-series-1{fill:var(--chartlet-color-1)}#chartlet-ed24ebc8aeefb075 .chartlet-band-series-2{fill:var(--chartlet-color-2)}#chartlet-ed24ebc8aeefb075 .chartlet-band-series-3{fill:var(--chartlet-color-3)}#chartlet-ed24ebc8aeefb075 .chartlet-band-series-4{fill:var(--chartlet-color-4)}#chartlet-ed24ebc8aeefb075 .chartlet-hatch{stroke:none}#chartlet-ed24ebc8aeefb075 .chartlet-hatch-line{stroke-width:1.2;opacity:.75}#chartlet-ed24ebc8aeefb075 .chartlet-line-modeled{stroke-dasharray:7 5}#chartlet-ed24ebc8aeefb075 .chartlet-line-thin{stroke-width:1}#chartlet-ed24ebc8aeefb075 .chartlet-point-series-2{fill:var(--chartlet-color-2)}#chartlet-ed24ebc8aeefb075 .chartlet-point-series-3{fill:var(--chartlet-color-3)}#chartlet-ed24ebc8aeefb075 .chartlet-point-series-4{fill:var(--chartlet-color-4)}#chartlet-ed24ebc8aeefb075 .chartlet-rule{fill:none;stroke:var(--chartlet-zero);stroke-width:1.5;stroke-dasharray:5 4}#chartlet-ed24ebc8aeefb075 .chartlet-rule-label{font-size:12px;font-weight:600;fill:var(--chartlet-text);paint-order:stroke;stroke:var(--chartlet-background);stroke-width:3px;stroke-linejoin:round}#chartlet-ed24ebc8aeefb075 .chartlet-zone{fill:var(--chartlet-zero);fill-opacity:.14;stroke:none}#chartlet-ed24ebc8aeefb075 .chartlet-marker{fill:var(--chartlet-text);stroke:var(--chartlet-background);stroke-width:1.5;stroke-linejoin:round}</style><line x1="40.403" y1="394" x2="776" y2="394" class="chartlet-zero"/><text x="30.403" y="398" text-anchor="end" class="chartlet-tick">0.0</text><line x1="40.403" y1="334" x2="776" y2="334" class="chartlet-grid"/><text x="30.403" y="338" text-anchor="end" class="chartlet-tick">0.5</text><line x1="40.403" y1="274" x2="776" y2="274" class="chartlet-grid"/><text x="30.403" y="278" text-anchor="end" class="chartlet-tick">1.0</text><line x1="40.403" y1="214" x2="776" y2="214" class="chartlet-grid"/><text x="30.403" y="218" text-anchor="end" class="chartlet-tick">1.5</text><line x1="40.403" y1="154" x2="776" y2="154" class="chartlet-grid"/><text x="30.403" y="158" text-anchor="end" class="chartlet-tick">2.0</text><line x1="40.403" y1="94" x2="776" y2="94" class="chartlet-grid"/><text x="30.403" y="98" text-anchor="end" class="chartlet-tick">2.5</text><line x1="40.403" y1="34" x2="776" y2="34" class="chartlet-grid"/><text x="30.403" y="38" text-anchor="end" class="chartlet-tick">3.0</text><line x1="46.403" y1="34" x2="46.403" y2="394" class="chartlet-grid"/><text x="46.403" y="418" text-anchor="middle" class="chartlet-tick">2026-02-02</text><line x1="169.944" y1="34" x2="169.944" y2="394" class="chartlet-grid"/><text x="169.944" y="418" text-anchor="middle" class="chartlet-tick">2026-02-09</text><line x1="293.485" y1="34" x2="293.485" y2="394" class="chartlet-grid"/><text x="293.485" y="418" text-anchor="middle" class="chartlet-tick">2026-02-16</text><line x1="417.026" y1="34" x2="417.026" y2="394" class="chartlet-grid"/><text x="417.026" y="418" text-anchor="middle" class="chartlet-tick">2026-02-23</text><line x1="540.567" y1="34" x2="540.567" y2="394" class="chartlet-grid"/><text x="540.567" y="418" text-anchor="middle" class="chartlet-tick">2026-03-02</text><line x1="664.108" y1="34" x2="664.108" y2="394" class="chartlet-grid"/><text x="664.108" y="418" text-anchor="middle" class="chartlet-tick">2026-03-09</text><text x="40.403" y="14" text-anchor="start" class="chartlet-axis-title">Errors per 100 requests</text><rect x="40.403" y="94" width="735.597" height="180" class="chartlet-zone"><title>Above the error budget: values 1.00 to 2.50</title></rect><rect x="293.485" y="34" width="52.946" height="360" class="chartlet-zone"><title>Maintenance: 2026-02-16 to 2026-02-19</title></rect><polyline points="46.403,350.8 64.052,344.8 81.701,350.8 99.349,362.8 116.998,366.4 134.647,358 152.295,350.8 169.944,352 187.593,358 205.242,356.8 222.89,348.4 240.539,347.2 258.188,356.8 275.836,366.4 293.485,364" class="chartlet-line chartlet-line-series-1"/><polyline points="328.782,348.4 346.431,353.2 364.08,358 381.729,355.6 399.377,349.6 417.026,352 434.675,137.2 452.323,199.6 469.972,252.4 487.621,320.8 505.269,314.8 522.918,313.6 540.567,318.4 558.216,323.2 575.864,325.6 593.513,322 611.162,365.2 628.81,364 646.459,353.2 664.108,344.8 681.756,348.4 699.405,358 717.054,360.4 734.703,355.6 752.351,353.2 770,359.2" class="chartlet-line chartlet-line-series-1"/><circle cx="46.403" cy="350.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-02 – Error rate: 0.36</title></circle><circle cx="64.052" cy="344.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-03 – Error rate: 0.41</title></circle><circle cx="81.701" cy="350.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-04 – Error rate: 0.36</title></circle><circle cx="99.349" cy="362.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-05 – Error rate: 0.26</title></circle><circle cx="116.998" cy="366.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-06 – Error rate: 0.23</title></circle><circle cx="134.647" cy="358" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-07 – Error rate: 0.30</title></circle><circle cx="152.295" cy="350.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-08 – Error rate: 0.36</title></circle><circle cx="169.944" cy="352" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-09 – Error rate: 0.35</title></circle><circle cx="187.593" cy="358" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-10 – Error rate: 0.30</title></circle><circle cx="205.242" cy="356.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-11 – Error rate: 0.31</title></circle><circle cx="222.89" cy="348.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-12 – Error rate: 0.38</title></circle><circle cx="240.539" cy="347.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-13 – Error rate: 0.39</title></circle><circle cx="258.188" cy="356.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-14 – Error rate: 0.31</title></circle><circle cx="275.836" cy="366.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-15 – Error rate: 0.23</title></circle><circle cx="293.485" cy="364" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-16 – Error rate: 0.25</title></circle><circle cx="328.782" cy="348.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-18 – Error rate: 0.38</title></circle><circle cx="346.431" cy="353.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-19 – Error rate: 0.34</title></circle><circle cx="364.08" cy="358" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-20 – Error rate: 0.30</title></circle><circle cx="381.729" cy="355.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-21 – Error rate: 0.32</title></circle><circle cx="399.377" cy="349.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-22 – Error rate: 0.37</title></circle><circle cx="417.026" cy="352" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-23 – Error rate: 0.35</title></circle><circle cx="434.675" cy="137.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-24 – Error rate: 2.14</title></circle><circle cx="452.323" cy="199.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-25 – Error rate: 1.62</title></circle><circle cx="469.972" cy="252.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-26 – Error rate: 1.18</title></circle><circle cx="487.621" cy="320.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-27 – Error rate: 0.61</title></circle><circle cx="505.269" cy="314.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-02-28 – Error rate: 0.66</title></circle><circle cx="522.918" cy="313.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-01 – Error rate: 0.67</title></circle><circle cx="540.567" cy="318.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-02 – Error rate: 0.63</title></circle><circle cx="558.216" cy="323.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-03 – Error rate: 0.59</title></circle><circle cx="575.864" cy="325.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-04 – Error rate: 0.57</title></circle><circle cx="593.513" cy="322" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-05 – Error rate: 0.60</title></circle><circle cx="611.162" cy="365.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-06 – Error rate: 0.24</title></circle><circle cx="628.81" cy="364" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-07 – Error rate: 0.25</title></circle><circle cx="646.459" cy="353.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-08 – Error rate: 0.34</title></circle><circle cx="664.108" cy="344.8" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-09 – Error rate: 0.41</title></circle><circle cx="681.756" cy="348.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-10 – Error rate: 0.38</title></circle><circle cx="699.405" cy="358" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-11 – Error rate: 0.30</title></circle><circle cx="717.054" cy="360.4" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-12 – Error rate: 0.28</title></circle><circle cx="734.703" cy="355.6" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-13 – Error rate: 0.32</title></circle><circle cx="752.351" cy="353.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-14 – Error rate: 0.34</title></circle><circle cx="770" cy="359.2" r="4" class="chartlet-point chartlet-point-series-1"><title>2026-03-15 – Error rate: 0.29</title></circle><polyline points="434.675,129.7 441.575,142 427.775,142 434.675,129.7" class="chartlet-marker"><title>Release 2.4: 2026-02-24, 2.14</title></polyline><polyline points="469.972,259.9 476.872,247.6 463.072,247.6 469.972,259.9" class="chartlet-marker"><title>Rollback: 2026-02-26, 1.18</title></polyline><polyline points="611.162,343.3 618.662,350.8 611.162,358.3 603.662,350.8 611.162,343.3" class="chartlet-marker"><title>Hotfix: 2026-03-06, 0.36</title></polyline><text x="44.403" y="108" text-anchor="start" class="chartlet-rule-label">Above the error budget</text><text x="297.485" y="48" text-anchor="start" class="chartlet-rule-label">Maintenance</text><text x="446.175" y="141.2" text-anchor="start" class="chartlet-rule-label">Release 2.4</text><text x="481.472" y="256.4" text-anchor="start" class="chartlet-rule-label">Rollback</text><text x="599.662" y="354.8" text-anchor="end" class="chartlet-rule-label">Hotfix</text><text x="408.202" y="436" text-anchor="middle" class="chartlet-axis-title">Day</text></svg><p class="chartlet-source">Source: Illustrative values, chartlet</p><details class="chartlet-data" data-viz-text><summary>Show chart data</summary><table><caption>Data for Checkout API error rate</caption><thead><tr><th scope="col">Time</th><th scope="col">Error rate</th></tr></thead><tbody><tr><th scope="row">2026-02-02</th><td>0.36</td></tr><tr><th scope="row">2026-02-03</th><td>0.41</td></tr><tr><th scope="row">2026-02-04</th><td>0.36</td></tr><tr><th scope="row">2026-02-05</th><td>0.26</td></tr><tr><th scope="row">2026-02-06</th><td>0.23</td></tr><tr><th scope="row">2026-02-07</th><td>0.30</td></tr><tr><th scope="row">2026-02-08</th><td>0.36</td></tr><tr><th scope="row">2026-02-09</th><td>0.35</td></tr><tr><th scope="row">2026-02-10</th><td>0.30</td></tr><tr><th scope="row">2026-02-11</th><td>0.31</td></tr><tr><th scope="row">2026-02-12</th><td>0.38</td></tr><tr><th scope="row">2026-02-13</th><td>0.39</td></tr><tr><th scope="row">2026-02-14</th><td>0.31</td></tr><tr><th scope="row">2026-02-15</th><td>0.23</td></tr><tr><th scope="row">2026-02-16</th><td>0.25</td></tr><tr><th scope="row">2026-02-17</th><td>Missing</td></tr><tr><th scope="row">2026-02-18</th><td>0.38</td></tr><tr><th scope="row">2026-02-19</th><td>0.34</td></tr><tr><th scope="row">2026-02-20</th><td>0.30</td></tr><tr><th scope="row">2026-02-21</th><td>0.32</td></tr><tr><th scope="row">2026-02-22</th><td>0.37</td></tr><tr><th scope="row">2026-02-23</th><td>0.35</td></tr><tr><th scope="row">2026-02-24</th><td>2.14</td></tr><tr><th scope="row">2026-02-25</th><td>1.62</td></tr><tr><th scope="row">2026-02-26</th><td>1.18</td></tr><tr><th scope="row">2026-02-27</th><td>0.61</td></tr><tr><th scope="row">2026-02-28</th><td>0.66</td></tr><tr><th scope="row">2026-03-01</th><td>0.67</td></tr><tr><th scope="row">2026-03-02</th><td>0.63</td></tr><tr><th scope="row">2026-03-03</th><td>0.59</td></tr><tr><th scope="row">2026-03-04</th><td>0.57</td></tr><tr><th scope="row">2026-03-05</th><td>0.60</td></tr><tr><th scope="row">2026-03-06</th><td>0.24</td></tr><tr><th scope="row">2026-03-07</th><td>0.25</td></tr><tr><th scope="row">2026-03-08</th><td>0.34</td></tr><tr><th scope="row">2026-03-09</th><td>0.41</td></tr><tr><th scope="row">2026-03-10</th><td>0.38</td></tr><tr><th scope="row">2026-03-11</th><td>0.30</td></tr><tr><th scope="row">2026-03-12</th><td>0.28</td></tr><tr><th scope="row">2026-03-13</th><td>0.32</td></tr><tr><th scope="row">2026-03-14</th><td>0.34</td></tr><tr><th scope="row">2026-03-15</th><td>0.29</td></tr></tbody></table></details></figure>