Showcase
Each example shows real output produced by chartlet itself, from files in the project repository. Input on the left, output on the right.
Bar charts
Monthly revenue
examples/monthly-revenue.jsonDetail: Monthly revenue →{
"schemaVersion": 1,
"type": "bar",
"title": "Monthly revenue",
"description": "Revenue increased in February and remained above January in March.",
"source": "Example data",
"categoryAxis": {
"title": "Month"
},
"valueAxis": {
"title": "Revenue in thousands",
"format": "number"
},
"data": [
{
"label": "January",
"value": 120
},
{
"label": "February",
"value": 180
},
{
"label": "March",
"value": 150
}
]
}Source: Example data
Show chart data
| Category | Value |
|---|---|
| January | 120 |
| February | 180 |
| March | 150 |
Quarterly change
examples/quarterly-change.jsonDetail: Quarterly change →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"title": "Quarterly change",
"source": "Example data",
"categoryAxis": {
"title": "Quarter"
},
"valueAxis": {
"title": "Change",
"format": "percent"
},
"data": [
{
"label": "First quarter",
"value": 0.12
},
{
"label": "Second quarter",
"value": -0.04
},
{
"label": "Third quarter with a deliberately long label",
"value": 0.08
},
{
"label": "Fourth quarter",
"value": 0.15
}
]
}Source: Example data
Show chart data
| Category | Value |
|---|---|
| First quarter | 12% |
| Second quarter | −4% |
| Third quarter with a deliberately long label | 8% |
| Fourth quarter | 15% |
Open support tickets by region
examples/ticket-backlog.jsonDetail: Open support tickets by region →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"title": "Open support tickets by region",
"source": "Sample data",
"valueAxis": {
"title": "Open tickets",
"thousandsSeparator": true
},
"references": [
{
"value": 2500,
"label": "Target"
}
],
"data": [
{
"label": "North America",
"value": 4860
},
{
"label": "Europe",
"value": 3125
},
{
"label": "Latin America",
"value": 2210
},
{
"label": "Asia Pacific",
"value": 1875
},
{
"label": "Middle East & Africa",
"value": 1240
}
]
}Source: Sample data
Show chart data
| Category | Value |
|---|---|
| North America | 4,860 |
| Europe | 3,125 |
| Latin America | 2,210 |
| Asia Pacific | 1,875 |
| Middle East & Africa | 1,240 |
Electricity generation by source
examples/energy-mix.jsonDetail: Electricity generation by source →{
"schemaVersion": 1,
"type": "bar",
"stack": "normal",
"title": "Electricity generation by source",
"source": "Sample data",
"valueAxis": {
"title": "TWh"
},
"categories": [
"2019",
"2020",
"2021",
"2022",
"2023"
],
"series": [
{
"name": "Wind",
"values": [
126,
132,
114,
125,
139
]
},
{
"name": "Solar",
"values": [
46,
50,
49,
60,
62
]
},
{
"name": "Gas",
"values": [
90,
95,
89,
79,
76
]
},
{
"name": "Coal",
"values": [
171,
134,
163,
181,
130
]
}
]
}Source: Sample data
Show chart data
| Category | Wind | Solar | Gas | Coal |
|---|---|---|---|---|
| 2019 | 126 | 46 | 90 | 171 |
| 2020 | 132 | 50 | 95 | 134 |
| 2021 | 114 | 49 | 89 | 163 |
| 2022 | 125 | 60 | 79 | 181 |
| 2023 | 139 | 62 | 76 | 130 |
Accessibility checks by page
examples/audit-outcomes.jsonDetail: Accessibility checks by page →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"stack": "percent",
"title": "Accessibility checks by page",
"source": "Sample data",
"categories": [
"Home",
"Search",
"Checkout",
"Account",
"Help"
],
"series": [
{
"name": "Failed",
"values": [
4,
9,
12,
3,
1
]
},
{
"name": "Needs review",
"values": [
6,
7,
10,
5,
4
]
},
{
"name": "Passed",
"values": [
38,
30,
25,
40,
44
]
},
{
"name": "Not tested",
"values": [
2,
4,
3,
2,
1
]
}
]
}Source: Sample data
Show chart data
| Category | Failed | Needs review | Passed | Not tested |
|---|---|---|---|---|
| Home | 4 | 6 | 38 | 2 |
| Search | 9 | 7 | 30 | 4 |
| Checkout | 12 | 10 | 25 | 3 |
| Account | 3 | 5 | 40 | 2 |
| Help | 1 | 4 | 44 | 1 |
Budget and actual costs
examples/budget-vs-actual.jsonDetail: Budget and actual costs →{
"schemaVersion": 1,
"type": "bar",
"title": "Budget and actual costs",
"source": "Example data",
"categoryAxis": {
"title": "Month"
},
"valueAxis": {
"title": "Costs in thousands"
},
"categories": [
"January",
"February",
"March",
"April"
],
"series": [
{
"name": "Budget",
"values": [
120,
150,
140,
160
]
},
{
"name": "Actual",
"values": [
130,
145,
152,
null
]
}
]
}Source: Example data
Show chart data
| Category | Budget | Actual |
|---|---|---|
| January | 120 | 130 |
| February | 150 | 145 |
| March | 140 | 152 |
| April | 160 | Missing |
Share of world population and of CO₂ emissions
examples/population-and-emissions.jsonDetail: Share of world population and of CO₂ emissions →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"patterns": true,
"title": "Share of world population and of CO₂ emissions",
"source": "Sample data, rounded",
"valueAxis": {
"format": "percent"
},
"categories": [
"China",
"United States",
"European Union",
"India",
"Africa"
],
"series": [
{
"name": "Population",
"values": [
0.18,
0.04,
0.06,
0.18,
0.18
]
},
{
"name": "CO₂ emissions",
"values": [
0.31,
0.13,
0.07,
0.08,
0.04
]
}
]
}Source: Sample data, rounded
Show chart data
| Category | Population | CO₂ emissions |
|---|---|---|
| China | 18% | 31% |
| United States | 4% | 13% |
| European Union | 6% | 7% |
| India | 18% | 8% |
| Africa | 18% | 4% |
Effects of an evening without a phone
examples/benefit-and-harm.jsonDetail: Effects of an evening without a phone →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"title": "Effects of an evening without a phone",
"source": "Illustrative values",
"width": 720,
"height": 340,
"showValues": true,
"valueAxis": {
"title": "Effect on a scale of 0 to 5"
},
"data": [
{
"label": "Sleep quality",
"value": 4.5,
"group": "Benefit"
},
{
"label": "Concentration",
"value": 3.5,
"group": "Benefit"
},
{
"label": "Conversation",
"value": 3,
"group": "Benefit"
},
{
"label": "Missed messages",
"value": 2,
"group": "Harm"
},
{
"label": "Less access to news",
"value": 1.5,
"group": "Harm"
}
]
}Source: Illustrative values
Show chart data
| Category | Value | Group |
|---|---|---|
| Sleep quality | 4.5 | Benefit |
| Concentration | 3.5 | Benefit |
| Conversation | 3 | Benefit |
| Missed messages | 2 | Harm |
| Less access to news | 1.5 | Harm |
Satisfaction score by plan, with 95 % confidence interval
examples/satisfaction-scores.jsonDetail: Satisfaction score by plan, with 95 % confidence interval →{
"schemaVersion": 1,
"type": "bar",
"orientation": "horizontal",
"title": "Satisfaction score by plan, with 95 % confidence interval",
"source": "Illustrative survey",
"width": 720,
"height": 320,
"showValues": true,
"valueAxis": {
"title": "Score from 1 to 5",
"max": 5
},
"data": [
{
"label": "Free",
"value": 3.4,
"lower": 3.1,
"upper": 3.7
},
{
"label": "Team",
"value": 4.1,
"lower": 3.9,
"upper": 4.3
},
{
"label": "Business",
"value": 4.4,
"lower": 4,
"upper": 4.8
},
{
"label": "Enterprise",
"value": 4,
"lower": 3.3,
"upper": 4.7
}
]
}Source: Illustrative survey
Show chart data
| Category | Value | Interval |
|---|---|---|
| Free | 3.4 | 3.1 to 3.7 |
| Team | 4.1 | 3.9 to 4.3 |
| Business | 4.4 | 4 to 4.8 |
| Enterprise | 4 | 3.3 to 4.7 |
Satisfaction by quarter, with 95 % confidence intervals
examples/satisfaction-by-quarter.jsonDetail: Satisfaction by quarter, with 95 % confidence intervals →{
"schemaVersion": 1,
"type": "bar",
"title": "Satisfaction by quarter, with 95 % confidence intervals",
"source": "Illustrative survey",
"width": 760,
"height": 400,
"showValues": true,
"valueAxis": {
"title": "Score from 1 to 5",
"max": 5
},
"categories": [
"Q1",
"Q2",
"Q3",
"Q4"
],
"series": [
{
"name": "Free plan",
"values": [
3.2,
3.4,
3.5,
3.8
],
"lower": [
2.9,
3.1,
3.2,
3.5
],
"upper": [
3.5,
3.7,
3.8,
4.1
]
},
{
"name": "Team plan",
"values": [
3.9,
4,
4.3,
4.4
],
"lower": [
3.7,
3.8,
4.1,
4.2
],
"upper": [
4.1,
4.2,
4.5,
4.6
]
}
],
"mobile": {
"width": 400,
"height": 400
}
}Source: Illustrative survey
Show chart data
| Category | Free plan | Team plan | Free plan – Interval | Team plan – Interval |
|---|---|---|---|---|
| Q1 | 3.2 | 3.9 | 2.9 to 3.5 | 3.7 to 4.1 |
| Q2 | 3.4 | 4 | 3.1 to 3.7 | 3.8 to 4.2 |
| Q3 | 3.5 | 4.3 | 3.2 to 3.8 | 4.1 to 4.5 |
| Q4 | 3.8 | 4.4 | 3.5 to 4.1 | 4.2 to 4.6 |
Line charts
Monthly active users
examples/monthly-trend.jsonDetail: Monthly active users →{
"schemaVersion": 1,
"type": "line",
"title": "Monthly active users",
"description": "Usage grew through May. April has no reported value and is shown as a gap.",
"source": "Example data",
"categoryAxis": {
"title": "Month"
},
"valueAxis": {
"title": "Active users",
"format": "number"
},
"data": [
{
"label": "January",
"value": 1200
},
{
"label": "February",
"value": 1460
},
{
"label": "March",
"value": 1390
},
{
"label": "April",
"value": null
},
{
"label": "May",
"value": 1810
},
{
"label": "June",
"value": 2050
}
]
}Source: Example data
Show chart data
| Category | Value |
|---|---|
| January | 1200 |
| February | 1460 |
| March | 1390 |
| April | Missing |
| May | 1810 |
| June | 2050 |
Weekly visitors by channel
examples/visitors-by-channel.jsonDetail: Weekly visitors by channel →{
"schemaVersion": 1,
"type": "line",
"title": "Weekly visitors by channel",
"source": "Sample data",
"valueAxis": {
"title": "Visitors",
"thousandsSeparator": true
},
"categories": [
"Week 1",
"Week 2",
"Week 3",
"Week 4",
"Week 5",
"Week 6"
],
"series": [
{
"name": "Search",
"values": [
4200,
4650,
4400,
5100,
5350,
5600
]
},
{
"name": "Direct",
"values": [
2600,
2550,
2800,
2750,
null,
3050
]
},
{
"name": "Social",
"values": [
1300,
1900,
1650,
1500,
2100,
2400
]
}
]
}Source: Sample data
Show chart data
| Category | Search | Direct | Social |
|---|---|---|---|
| Week 1 | 4,200 | 2,600 | 1,300 |
| Week 2 | 4,650 | 2,550 | 1,900 |
| Week 3 | 4,400 | 2,800 | 1,650 |
| Week 4 | 5,100 | 2,750 | 1,500 |
| Week 5 | 5,350 | Missing | 2,100 |
| Week 6 | 5,600 | 3,050 | 2,400 |
Earthquakes per year by magnitude
examples/quake-frequency.jsonDetail: Earthquakes per year by magnitude →{
"schemaVersion": 1,
"type": "line",
"title": "Earthquakes per year by magnitude",
"source": "Sample data, rounded",
"categoryAxis": {
"title": "Magnitude"
},
"valueAxis": {
"title": "Earthquakes per year",
"scale": "log",
"thousandsSeparator": true
},
"data": [
{
"label": "4–4.9",
"value": 13000
},
{
"label": "5–5.9",
"value": 1300
},
{
"label": "6–6.9",
"value": 130
},
{
"label": "7–7.9",
"value": 15
},
{
"label": "8+",
"value": 1
}
]
}Source: Sample data, rounded
Show chart data
| Category | Value |
|---|---|
| 4–4.9 | 13,000 |
| 5–5.9 | 1,300 |
| 6–6.9 | 130 |
| 7–7.9 | 15 |
| 8+ | 1 |
Mean satisfaction by month, with 95 % confidence interval
examples/monthly-satisfaction.jsonDetail: Mean satisfaction by month, with 95 % confidence interval →{
"schemaVersion": 1,
"type": "line",
"title": "Mean satisfaction by month, with 95 % confidence interval",
"source": "Illustrative survey",
"width": 720,
"height": 380,
"showValues": true,
"valueAxis": {
"title": "Score from 1 to 5",
"max": 5
},
"data": [
{
"label": "Jan",
"value": 3.1,
"lower": 2.7,
"upper": 3.5
},
{
"label": "Feb",
"value": 3.4,
"lower": 3,
"upper": 3.9
},
{
"label": "Mar",
"value": 3.9,
"lower": 3.5,
"upper": 4.2
},
{
"label": "Apr",
"value": 3.7,
"lower": 3.2,
"upper": 4.1
},
{
"label": "May",
"value": 4,
"lower": 3.7,
"upper": 4.3
},
{
"label": "Jun",
"value": 4.2,
"lower": 3.8,
"upper": 4.6
}
],
"mobile": {
"width": 400,
"height": 380
}
}Source: Illustrative survey
Show chart data
| Category | Value | Interval |
|---|---|---|
| Jan | 3.1 | 2.7 to 3.5 |
| Feb | 3.4 | 3 to 3.9 |
| Mar | 3.9 | 3.5 to 4.2 |
| Apr | 3.7 | 3.2 to 4.1 |
| May | 4 | 3.7 to 4.3 |
| Jun | 4.2 | 3.8 to 4.6 |
Headcount
examples/headcount.jsonDetail: Headcount →{
"schemaVersion": 1,
"type": "line",
"title": "Headcount",
"description": "Headcount rose steadily from January to August.",
"source": "Example data",
"categoryAxis": {
"title": "Month"
},
"valueAxis": {
"title": "Employees",
"format": "number"
},
"data": [
{
"label": "January",
"value": 42
},
{
"label": "February",
"value": 44
},
{
"label": "March",
"value": 47
},
{
"label": "April",
"value": 50
},
{
"label": "May",
"value": 54
},
{
"label": "June",
"value": 58
},
{
"label": "July",
"value": 61
},
{
"label": "August",
"value": 66
}
],
"zoomSteps": [
{
"label": "All months",
"from": 0,
"to": 7
},
{
"label": "January to April",
"from": 0,
"to": 3
},
{
"label": "May to August",
"from": 4,
"to": 7
}
]
}Source: Example data
Show chart data
| Category | Value |
|---|---|
| January | 42 |
| February | 44 |
| March | 47 |
| April | 50 |
| May | 54 |
| June | 58 |
| July | 61 |
| August | 66 |
Revenue by region, 2024 and 2025
examples/regional-slope.jsonDetail: Revenue by region, 2024 and 2025 →{
"schemaVersion": 1,
"type": "line",
"slope": true,
"title": "Revenue by region, 2024 and 2025",
"source": "Illustrative figures, millions of euros",
"width": 640,
"height": 400,
"categories": [
"2024",
"2025"
],
"series": [
{
"name": "North",
"values": [
42,
55
]
},
{
"name": "South",
"values": [
38,
36
]
},
{
"name": "East",
"values": [
51,
49
]
},
{
"name": "West",
"values": [
29,
41
]
}
],
"valueAxis": {
"format": "number",
"decimals": 0
},
"mobile": {
"width": 380,
"height": 440
}
}Source: Illustrative figures, millions of euros
Show chart data
| Category | North | South | East | West |
|---|---|---|---|---|
| 2024 | 42 | 38 | 51 | 29 |
| 2025 | 55 | 36 | 49 | 41 |
Ticket volume by channel, ranked per quarter
examples/support-rank.jsonDetail: Ticket volume by channel, ranked per quarter →{
"schemaVersion": 1,
"type": "line",
"rank": true,
"title": "Ticket volume by channel, ranked per quarter",
"source": "Illustrative counts; rank 1 is the busiest channel",
"width": 720,
"height": 400,
"categories": [
"Q1",
"Q2",
"Q3",
"Q4"
],
"series": [
{
"name": "Email",
"values": [
820,
780,
700,
650
]
},
{
"name": "Chat",
"values": [
610,
700,
790,
860
]
},
{
"name": "Phone",
"values": [
540,
520,
560,
530
]
},
{
"name": "Forum",
"values": [
300,
340,
410,
590
]
}
],
"mobile": {
"width": 380,
"height": 460
}
}Source: Illustrative counts; rank 1 is the busiest channel
Show chart data
| Category | Chat | Phone | Forum | |
|---|---|---|---|---|
| Q1 | 820 | 610 | 540 | 300 |
| Q2 | 780 | 700 | 520 | 340 |
| Q3 | 700 | 790 | 560 | 410 |
| Q4 | 650 | 860 | 530 | 590 |
Time series
Daily orders
examples/daily-orders.jsonDetail: Daily orders →{
"schemaVersion": 1,
"type": "time",
"title": "Daily orders",
"description": "Orders per day over two weeks; the weekend dips are visible as local minima.",
"source": "Example data, chartlet",
"timeAxis": {
"timezone": "UTC",
"title": "Day"
},
"panes": [
{
"heightRatio": 1,
"valueAxis": {
"title": "Orders"
},
"layers": [
{
"mark": "line",
"name": "Orders",
"points": [
{
"time": "2026-02-02",
"value": 412
},
{
"time": "2026-02-03",
"value": 438
},
{
"time": "2026-02-04",
"value": 455
},
{
"time": "2026-02-05",
"value": 471
},
{
"time": "2026-02-06",
"value": 508
},
{
"time": "2026-02-07",
"value": 201
},
{
"time": "2026-02-08",
"value": 176
},
{
"time": "2026-02-09",
"value": 489
},
{
"time": "2026-02-10",
"value": 512
},
{
"time": "2026-02-11",
"value": 497
},
{
"time": "2026-02-12",
"value": 534
},
{
"time": "2026-02-13",
"value": 561
},
{
"time": "2026-02-14",
"value": 228
},
{
"time": "2026-02-15",
"value": 195
}
]
}
]
}
]
}Source: Example data, chartlet
Show chart data
| Time | Orders |
|---|---|
| 2026-02-02 | 412 |
| 2026-02-03 | 438 |
| 2026-02-04 | 455 |
| 2026-02-05 | 471 |
| 2026-02-06 | 508 |
| 2026-02-07 | 201 |
| 2026-02-08 | 176 |
| 2026-02-09 | 489 |
| 2026-02-10 | 512 |
| 2026-02-11 | 497 |
| 2026-02-12 | 534 |
| 2026-02-13 | 561 |
| 2026-02-14 | 228 |
| 2026-02-15 | 195 |
Revenue against forecast
examples/revenue-vs-forecast.jsonDetail: Revenue against forecast →{
"schemaVersion": 1,
"type": "time",
"title": "Revenue against forecast",
"description": "Weekly revenue in thousands next to the forecast band's centre line; both layers name their own color.",
"source": "Example data, chartlet",
"theme": "dark",
"showValues": false,
"timeAxis": {
"timezone": "UTC",
"title": "Week starting"
},
"panes": [
{
"valueAxis": {
"title": "Revenue in thousands"
},
"layers": [
{
"mark": "line",
"name": "Revenue",
"color": "#7ea6ff",
"points": [
{
"time": 1769990400,
"value": 96
},
{
"time": 1770595200,
"value": 104
},
{
"time": 1771200000,
"value": 99
},
{
"time": 1771804800,
"value": 118
},
{
"time": 1772409600,
"value": 131
},
{
"time": 1773014400,
"value": 127
},
{
"time": 1773619200,
"value": 140
},
{
"time": 1774224000,
"value": 152
}
]
},
{
"mark": "line",
"name": "Forecast",
"color": "var(--chart-forecast)",
"points": [
{
"time": 1769990400,
"value": 100
},
{
"time": 1770595200,
"value": 102
},
{
"time": 1771200000,
"value": 108
},
{
"time": 1771804800,
"value": 112
},
{
"time": 1772409600,
"value": 120
},
{
"time": 1773014400,
"value": 126
},
{
"time": 1773619200,
"value": 134
},
{
"time": 1774224000,
"value": 140
}
]
}
]
}
]
}Source: Example data, chartlet
Show chart data
| Time | Revenue | Forecast |
|---|---|---|
| 2026-02-02 | 96 | 100 |
| 2026-02-09 | 104 | 102 |
| 2026-02-16 | 99 | 108 |
| 2026-02-23 | 118 | 112 |
| 2026-03-02 | 131 | 120 |
| 2026-03-09 | 127 | 126 |
| 2026-03-16 | 140 | 134 |
| 2026-03-23 | 152 | 140 |
Warming to 2100 in two scenarios
examples/temperature-projection.jsonDetail: Warming to 2100 in two scenarios →{
"schemaVersion": 1,
"type": "time",
"title": "Warming to 2100 in two scenarios",
"source": "Illustrative values, chartlet",
"showValues": false,
"timeAxis": {
"title": "Year"
},
"panes": [
{
"valueAxis": {
"title": "Temperature anomaly in °C"
},
"layers": [
{
"mark": "line",
"name": "Measured",
"points": [
{
"time": "1950",
"value": -0.23
},
{
"time": "1951",
"value": -0.27
},
{
"time": "1952",
"value": -0.12
},
{
"time": "1953",
"value": -0.16
},
{
"time": "1954",
"value": -0.34
},
{
"time": "1955",
"value": -0.26
},
{
"time": "1956",
"value": -0.09
},
{
"time": "1957",
"value": -0.18
},
{
"time": "1958",
"value": -0.27
},
{
"time": "1959",
"value": -0.09
},
{
"time": "1960",
"value": 0.03
},
{
"time": "1961",
"value": -0.12
},
{
"time": "1962",
"value": -0.16
},
{
"time": "1963",
"value": 0.01
},
{
"time": "1964",
"value": 0
},
{
"time": "1965",
"value": -0.21
},
{
"time": "1966",
"value": -0.18
},
{
"time": "1967",
"value": -0.04
},
{
"time": "1968",
"value": -0.14
},
{
"time": "1969",
"value": -0.29
},
{
"time": "1970",
"value": -0.15
},
{
"time": "1971",
"value": -0.01
},
{
"time": "1972",
"value": -0.14
},
{
"time": "1973",
"value": -0.17
},
{
"time": "1974",
"value": 0.03
},
{
"time": "1975",
"value": 0.09
},
{
"time": "1976",
"value": -0.08
},
{
"time": "1977",
"value": -0.05
},
{
"time": "1978",
"value": 0.11
},
{
"time": "1979",
"value": 0.03
},
{
"time": "1980",
"value": -0.16
},
{
"time": "1981",
"value": -0.07
},
{
"time": "1982",
"value": 0.04
},
{
"time": "1983",
"value": -0.11
},
{
"time": "1984",
"value": -0.2
},
{
"time": "1985",
"value": -0.01
},
{
"time": "1986",
"value": 0.07
},
{
"time": "1987",
"value": -0.08
},
{
"time": "1988",
"value": -0.05
},
{
"time": "1989",
"value": 0.16
},
{
"time": "1990",
"value": 0.15
},
{
"time": "1991",
"value": -0.01
},
{
"time": "1992",
"value": 0.07
},
{
"time": "1993",
"value": 0.21
},
{
"time": "1994",
"value": 0.07
},
{
"time": "1995",
"value": -0.07
},
{
"time": "1996",
"value": 0.06
},
{
"time": "1997",
"value": 0.12
},
{
"time": "1998",
"value": -0.05
},
{
"time": "1999",
"value": -0.07
},
{
"time": "2000",
"value": 0.13
},
{
"time": "2001",
"value": 0.15
},
{
"time": "2002",
"value": 0.01
},
{
"time": "2003",
"value": 0.1
},
{
"time": "2004",
"value": 0.3
},
{
"time": "2005",
"value": 0.21
},
{
"time": "2006",
"value": 0.09
},
{
"time": "2007",
"value": 0.22
},
{
"time": "2008",
"value": 0.3
},
{
"time": "2009",
"value": 0.12
},
{
"time": "2010",
"value": 0.04
},
{
"time": "2011",
"value": 0.2
},
{
"time": "2012",
"value": 0.21
},
{
"time": "2013",
"value": 0.03
},
{
"time": "2014",
"value": 0.08
},
{
"time": "2015",
"value": 0.28
},
{
"time": "2016",
"value": 0.24
},
{
"time": "2017",
"value": 0.12
},
{
"time": "2018",
"value": 0.28
},
{
"time": "2019",
"value": 0.43
},
{
"time": "2020",
"value": 0.29
},
{
"time": "2021",
"value": 0.21
},
{
"time": "2022",
"value": 0.38
},
{
"time": "2023",
"value": 0.4
},
{
"time": "2024",
"value": 0.2
}
]
},
{
"mark": "line",
"name": "Low emissions",
"modeled": true,
"points": [
{
"time": "2025",
"value": 0.2,
"lower": 0.12,
"upper": 0.29
},
{
"time": "2030",
"value": 0.23,
"lower": 0.13,
"upper": 0.33
},
{
"time": "2035",
"value": 0.26,
"lower": 0.15,
"upper": 0.38
},
{
"time": "2040",
"value": 0.29,
"lower": 0.16,
"upper": 0.43
},
{
"time": "2045",
"value": 0.32,
"lower": 0.17,
"upper": 0.47
},
{
"time": "2050",
"value": 0.35,
"lower": 0.19,
"upper": 0.52
},
{
"time": "2055",
"value": 0.38,
"lower": 0.2,
"upper": 0.56
},
{
"time": "2060",
"value": 0.41,
"lower": 0.21,
"upper": 0.61
},
{
"time": "2065",
"value": 0.44,
"lower": 0.23,
"upper": 0.66
},
{
"time": "2070",
"value": 0.47,
"lower": 0.24,
"upper": 0.7
},
{
"time": "2075",
"value": 0.5,
"lower": 0.25,
"upper": 0.75
},
{
"time": "2080",
"value": 0.53,
"lower": 0.27,
"upper": 0.79
},
{
"time": "2085",
"value": 0.56,
"lower": 0.28,
"upper": 0.84
},
{
"time": "2090",
"value": 0.59,
"lower": 0.29,
"upper": 0.89
},
{
"time": "2095",
"value": 0.62,
"lower": 0.31,
"upper": 0.93
},
{
"time": "2100",
"value": 0.65,
"lower": 0.32,
"upper": 0.98
}
]
},
{
"mark": "line",
"name": "High emissions",
"modeled": true,
"points": [
{
"time": "2025",
"value": 0.24,
"lower": 0.15,
"upper": 0.33
},
{
"time": "2030",
"value": 0.43,
"lower": 0.29,
"upper": 0.56
},
{
"time": "2035",
"value": 0.62,
"lower": 0.44,
"upper": 0.8
},
{
"time": "2040",
"value": 0.81,
"lower": 0.58,
"upper": 1.04
},
{
"time": "2045",
"value": 1,
"lower": 0.73,
"upper": 1.27
},
{
"time": "2050",
"value": 1.19,
"lower": 0.87,
"upper": 1.51
},
{
"time": "2055",
"value": 1.38,
"lower": 1.02,
"upper": 1.75
},
{
"time": "2060",
"value": 1.57,
"lower": 1.16,
"upper": 1.98
},
{
"time": "2065",
"value": 1.76,
"lower": 1.31,
"upper": 2.22
},
{
"time": "2070",
"value": 1.95,
"lower": 1.45,
"upper": 2.46
},
{
"time": "2075",
"value": 2.15,
"lower": 1.6,
"upper": 2.69
},
{
"time": "2080",
"value": 2.34,
"lower": 1.74,
"upper": 2.93
},
{
"time": "2085",
"value": 2.53,
"lower": 1.88,
"upper": 3.17
},
{
"time": "2090",
"value": 2.72,
"lower": 2.03,
"upper": 3.41
},
{
"time": "2095",
"value": 2.91,
"lower": 2.17,
"upper": 3.64
},
{
"time": "2100",
"value": 3.1,
"lower": 2.32,
"upper": 3.88
}
]
}
]
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | Measured | Low emissions | Low emissions (lower) | Low emissions (upper) | High emissions | High emissions (lower) | High emissions (upper) |
|---|---|---|---|---|---|---|---|
| 1950 | −0.23 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1951 | −0.27 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1952 | −0.12 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1953 | −0.16 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1954 | −0.34 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1955 | −0.26 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1956 | −0.09 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1957 | −0.18 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1958 | −0.27 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1959 | −0.09 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1960 | 0.03 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1961 | −0.12 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1962 | −0.16 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1963 | 0.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1964 | 0 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1965 | −0.21 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1966 | −0.18 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1967 | −0.04 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1968 | −0.14 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1969 | −0.29 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1970 | −0.15 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1971 | −0.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1972 | −0.14 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1973 | −0.17 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1974 | 0.03 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1975 | 0.09 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1976 | −0.08 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1977 | −0.05 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1978 | 0.11 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1979 | 0.03 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1980 | −0.16 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1981 | −0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1982 | 0.04 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1983 | −0.11 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1984 | −0.2 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1985 | −0.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1986 | 0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1987 | −0.08 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1988 | −0.05 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1989 | 0.16 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1990 | 0.15 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1991 | −0.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1992 | 0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1993 | 0.21 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1994 | 0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1995 | −0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1996 | 0.06 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1997 | 0.12 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1998 | −0.05 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1999 | −0.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2000 | 0.13 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2001 | 0.15 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2002 | 0.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2003 | 0.1 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2004 | 0.3 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2005 | 0.21 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2006 | 0.09 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2007 | 0.22 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2008 | 0.3 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2009 | 0.12 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2010 | 0.04 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2011 | 0.2 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2012 | 0.21 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2013 | 0.03 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2014 | 0.08 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2015 | 0.28 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2016 | 0.24 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2017 | 0.12 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2018 | 0.28 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2019 | 0.43 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2020 | 0.29 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2021 | 0.21 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2022 | 0.38 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2023 | 0.4 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2024 | 0.2 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2025 | Missing | 0.2 | 0.12 | 0.29 | 0.24 | 0.15 | 0.33 |
| 2030 | Missing | 0.23 | 0.13 | 0.33 | 0.43 | 0.29 | 0.56 |
| 2035 | Missing | 0.26 | 0.15 | 0.38 | 0.62 | 0.44 | 0.8 |
| 2040 | Missing | 0.29 | 0.16 | 0.43 | 0.81 | 0.58 | 1.04 |
| 2045 | Missing | 0.32 | 0.17 | 0.47 | 1 | 0.73 | 1.27 |
| 2050 | Missing | 0.35 | 0.19 | 0.52 | 1.19 | 0.87 | 1.51 |
| 2055 | Missing | 0.38 | 0.2 | 0.56 | 1.38 | 1.02 | 1.75 |
| 2060 | Missing | 0.41 | 0.21 | 0.61 | 1.57 | 1.16 | 1.98 |
| 2065 | Missing | 0.44 | 0.23 | 0.66 | 1.76 | 1.31 | 2.22 |
| 2070 | Missing | 0.47 | 0.24 | 0.7 | 1.95 | 1.45 | 2.46 |
| 2075 | Missing | 0.5 | 0.25 | 0.75 | 2.15 | 1.6 | 2.69 |
| 2080 | Missing | 0.53 | 0.27 | 0.79 | 2.34 | 1.74 | 2.93 |
| 2085 | Missing | 0.56 | 0.28 | 0.84 | 2.53 | 1.88 | 3.17 |
| 2090 | Missing | 0.59 | 0.29 | 0.89 | 2.72 | 2.03 | 3.41 |
| 2095 | Missing | 0.62 | 0.31 | 0.93 | 2.91 | 2.17 | 3.64 |
| 2100 | Missing | 0.65 | 0.32 | 0.98 | 3.1 | 2.32 | 3.88 |
Single years and the 20-year mean
examples/annual-mean-threshold.jsonDetail: Single years and the 20-year mean →{
"schemaVersion": 1,
"type": "time",
"title": "Single years and the 20-year mean",
"source": "Illustrative values, chartlet",
"showValues": false,
"timeAxis": {
"title": "Year"
},
"panes": [
{
"valueAxis": {
"title": "Warming since pre-industrial in °C"
},
"layers": [
{
"mark": "line",
"name": "Single years",
"color": "#98a2b3",
"points": [
{
"time": "1940",
"value": -0.11
},
{
"time": "1941",
"value": 0.08
},
{
"time": "1942",
"value": 0.05
},
{
"time": "1943",
"value": -0.08
},
{
"time": "1944",
"value": 0.05
},
{
"time": "1945",
"value": 0.22
},
{
"time": "1946",
"value": 0.11
},
{
"time": "1947",
"value": 0.01
},
{
"time": "1948",
"value": 0.17
},
{
"time": "1949",
"value": 0.22
},
{
"time": "1950",
"value": 0.02
},
{
"time": "1951",
"value": -0.02
},
{
"time": "1952",
"value": 0.13
},
{
"time": "1953",
"value": 0.09
},
{
"time": "1954",
"value": -0.09
},
{
"time": "1955",
"value": -0.01
},
{
"time": "1956",
"value": 0.16
},
{
"time": "1957",
"value": 0.07
},
{
"time": "1958",
"value": -0.02
},
{
"time": "1959",
"value": 0.16
},
{
"time": "1960",
"value": 0.28
},
{
"time": "1961",
"value": 0.13
},
{
"time": "1962",
"value": 0.09
},
{
"time": "1963",
"value": 0.26
},
{
"time": "1964",
"value": 0.25
},
{
"time": "1965",
"value": 0.04
},
{
"time": "1966",
"value": 0.07
},
{
"time": "1967",
"value": 0.21
},
{
"time": "1968",
"value": 0.11
},
{
"time": "1969",
"value": -0.04
},
{
"time": "1970",
"value": 0.1
},
{
"time": "1971",
"value": 0.24
},
{
"time": "1972",
"value": 0.11
},
{
"time": "1973",
"value": 0.08
},
{
"time": "1974",
"value": 0.28
},
{
"time": "1975",
"value": 0.34
},
{
"time": "1976",
"value": 0.17
},
{
"time": "1977",
"value": 0.2
},
{
"time": "1978",
"value": 0.36
},
{
"time": "1979",
"value": 0.28
},
{
"time": "1980",
"value": 0.09
},
{
"time": "1981",
"value": 0.18
},
{
"time": "1982",
"value": 0.29
},
{
"time": "1983",
"value": 0.14
},
{
"time": "1984",
"value": 0.05
},
{
"time": "1985",
"value": 0.24
},
{
"time": "1986",
"value": 0.32
},
{
"time": "1987",
"value": 0.17
},
{
"time": "1988",
"value": 0.2
},
{
"time": "1989",
"value": 0.41
},
{
"time": "1990",
"value": 0.4
},
{
"time": "1991",
"value": 0.24
},
{
"time": "1992",
"value": 0.32
},
{
"time": "1993",
"value": 0.46
},
{
"time": "1994",
"value": 0.32
},
{
"time": "1995",
"value": 0.18
},
{
"time": "1996",
"value": 0.31
},
{
"time": "1997",
"value": 0.37
},
{
"time": "1998",
"value": 0.2
},
{
"time": "1999",
"value": 0.18
},
{
"time": "2000",
"value": 0.38
},
{
"time": "2001",
"value": 0.4
},
{
"time": "2002",
"value": 0.26
},
{
"time": "2003",
"value": 0.35
},
{
"time": "2004",
"value": 0.55
},
{
"time": "2005",
"value": 0.46
},
{
"time": "2006",
"value": 0.34
},
{
"time": "2007",
"value": 0.47
},
{
"time": "2008",
"value": 0.55
},
{
"time": "2009",
"value": 0.37
},
{
"time": "2010",
"value": 0.29
},
{
"time": "2011",
"value": 0.45
},
{
"time": "2012",
"value": 0.46
},
{
"time": "2013",
"value": 0.28
},
{
"time": "2014",
"value": 0.33
},
{
"time": "2015",
"value": 0.53
},
{
"time": "2016",
"value": 0.49
},
{
"time": "2017",
"value": 0.37
},
{
"time": "2018",
"value": 0.53
},
{
"time": "2019",
"value": 0.68
},
{
"time": "2020",
"value": 0.54
},
{
"time": "2021",
"value": 0.46
},
{
"time": "2022",
"value": 0.63
},
{
"time": "2023",
"value": 0.65
},
{
"time": "2024",
"value": 0.45
}
]
},
{
"mark": "line",
"name": "20-year mean",
"points": [
{
"time": "1959",
"value": 0.06
},
{
"time": "1960",
"value": 0.08
},
{
"time": "1961",
"value": 0.08
},
{
"time": "1962",
"value": 0.08
},
{
"time": "1963",
"value": 0.1
},
{
"time": "1964",
"value": 0.11
},
{
"time": "1965",
"value": 0.1
},
{
"time": "1966",
"value": 0.1
},
{
"time": "1967",
"value": 0.11
},
{
"time": "1968",
"value": 0.11
},
{
"time": "1969",
"value": 0.09
},
{
"time": "1970",
"value": 0.1
},
{
"time": "1971",
"value": 0.11
},
{
"time": "1972",
"value": 0.11
},
{
"time": "1973",
"value": 0.11
},
{
"time": "1974",
"value": 0.13
},
{
"time": "1975",
"value": 0.15
},
{
"time": "1976",
"value": 0.15
},
{
"time": "1977",
"value": 0.15
},
{
"time": "1978",
"value": 0.17
},
{
"time": "1979",
"value": 0.18
},
{
"time": "1980",
"value": 0.17
},
{
"time": "1981",
"value": 0.17
},
{
"time": "1982",
"value": 0.18
},
{
"time": "1983",
"value": 0.18
},
{
"time": "1984",
"value": 0.17
},
{
"time": "1985",
"value": 0.18
},
{
"time": "1986",
"value": 0.19
},
{
"time": "1987",
"value": 0.19
},
{
"time": "1988",
"value": 0.19
},
{
"time": "1989",
"value": 0.21
},
{
"time": "1990",
"value": 0.23
},
{
"time": "1991",
"value": 0.23
},
{
"time": "1992",
"value": 0.24
},
{
"time": "1993",
"value": 0.26
},
{
"time": "1994",
"value": 0.26
},
{
"time": "1995",
"value": 0.25
},
{
"time": "1996",
"value": 0.26
},
{
"time": "1997",
"value": 0.27
},
{
"time": "1998",
"value": 0.26
},
{
"time": "1999",
"value": 0.25
},
{
"time": "2000",
"value": 0.27
},
{
"time": "2001",
"value": 0.28
},
{
"time": "2002",
"value": 0.28
},
{
"time": "2003",
"value": 0.29
},
{
"time": "2004",
"value": 0.31
},
{
"time": "2005",
"value": 0.32
},
{
"time": "2006",
"value": 0.32
},
{
"time": "2007",
"value": 0.34
},
{
"time": "2008",
"value": 0.36
},
{
"time": "2009",
"value": 0.35
},
{
"time": "2010",
"value": 0.35
},
{
"time": "2011",
"value": 0.36
},
{
"time": "2012",
"value": 0.37
},
{
"time": "2013",
"value": 0.36
},
{
"time": "2014",
"value": 0.36
},
{
"time": "2015",
"value": 0.38
},
{
"time": "2016",
"value": 0.38
},
{
"time": "2017",
"value": 0.39
},
{
"time": "2018",
"value": 0.4
},
{
"time": "2019",
"value": 0.43
},
{
"time": "2020",
"value": 0.43
},
{
"time": "2021",
"value": 0.44
},
{
"time": "2022",
"value": 0.46
},
{
"time": "2023",
"value": 0.47
},
{
"time": "2024",
"value": 0.47
}
]
},
{
"mark": "annotation",
"value": 1.5,
"label": "1.5 °C limit"
},
{
"mark": "annotation",
"time": "2015-12-12",
"label": "Paris Agreement"
}
]
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | Single years | 20-year mean |
|---|---|---|
| 1940 | −0.11 | Missing |
| 1941 | 0.08 | Missing |
| 1942 | 0.05 | Missing |
| 1943 | −0.08 | Missing |
| 1944 | 0.05 | Missing |
| 1945 | 0.22 | Missing |
| 1946 | 0.11 | Missing |
| 1947 | 0.01 | Missing |
| 1948 | 0.17 | Missing |
| 1949 | 0.22 | Missing |
| 1950 | 0.02 | Missing |
| 1951 | −0.02 | Missing |
| 1952 | 0.13 | Missing |
| 1953 | 0.09 | Missing |
| 1954 | −0.09 | Missing |
| 1955 | −0.01 | Missing |
| 1956 | 0.16 | Missing |
| 1957 | 0.07 | Missing |
| 1958 | −0.02 | Missing |
| 1959 | 0.16 | 0.06 |
| 1960 | 0.28 | 0.08 |
| 1961 | 0.13 | 0.08 |
| 1962 | 0.09 | 0.08 |
| 1963 | 0.26 | 0.1 |
| 1964 | 0.25 | 0.11 |
| 1965 | 0.04 | 0.1 |
| 1966 | 0.07 | 0.1 |
| 1967 | 0.21 | 0.11 |
| 1968 | 0.11 | 0.11 |
| 1969 | −0.04 | 0.09 |
| 1970 | 0.1 | 0.1 |
| 1971 | 0.24 | 0.11 |
| 1972 | 0.11 | 0.11 |
| 1973 | 0.08 | 0.11 |
| 1974 | 0.28 | 0.13 |
| 1975 | 0.34 | 0.15 |
| 1976 | 0.17 | 0.15 |
| 1977 | 0.2 | 0.15 |
| 1978 | 0.36 | 0.17 |
| 1979 | 0.28 | 0.18 |
| 1980 | 0.09 | 0.17 |
| 1981 | 0.18 | 0.17 |
| 1982 | 0.29 | 0.18 |
| 1983 | 0.14 | 0.18 |
| 1984 | 0.05 | 0.17 |
| 1985 | 0.24 | 0.18 |
| 1986 | 0.32 | 0.19 |
| 1987 | 0.17 | 0.19 |
| 1988 | 0.2 | 0.19 |
| 1989 | 0.41 | 0.21 |
| 1990 | 0.4 | 0.23 |
| 1991 | 0.24 | 0.23 |
| 1992 | 0.32 | 0.24 |
| 1993 | 0.46 | 0.26 |
| 1994 | 0.32 | 0.26 |
| 1995 | 0.18 | 0.25 |
| 1996 | 0.31 | 0.26 |
| 1997 | 0.37 | 0.27 |
| 1998 | 0.2 | 0.26 |
| 1999 | 0.18 | 0.25 |
| 2000 | 0.38 | 0.27 |
| 2001 | 0.4 | 0.28 |
| 2002 | 0.26 | 0.28 |
| 2003 | 0.35 | 0.29 |
| 2004 | 0.55 | 0.31 |
| 2005 | 0.46 | 0.32 |
| 2006 | 0.34 | 0.32 |
| 2007 | 0.47 | 0.34 |
| 2008 | 0.55 | 0.36 |
| 2009 | 0.37 | 0.35 |
| 2010 | 0.29 | 0.35 |
| 2011 | 0.45 | 0.36 |
| 2012 | 0.46 | 0.37 |
| 2013 | 0.28 | 0.36 |
| 2014 | 0.33 | 0.36 |
| 2015 | 0.53 | 0.38 |
| 2016 | 0.49 | 0.38 |
| 2017 | 0.37 | 0.39 |
| 2018 | 0.53 | 0.4 |
| 2019 | 0.68 | 0.43 |
| 2020 | 0.54 | 0.43 |
| 2021 | 0.46 | 0.44 |
| 2022 | 0.63 | 0.46 |
| 2023 | 0.65 | 0.47 |
| 2024 | 0.45 | 0.47 |
Data hall power draw
examples/sensor-readings.jsonDetail: Data hall power draw →{
"schemaVersion": 1,
"type": "time",
"title": "Data hall power draw",
"source": "Illustrative values, chartlet",
"showValues": false,
"timeAxis": {
"timezone": "UTC",
"title": "Day"
},
"panes": [
{
"valueAxis": {
"title": "Power (kW)",
"decimals": 1
},
"layers": [
{
"mark": "area",
"name": "Total",
"points": [
{
"time": "2026-03-01",
"value": 44.6
},
{
"time": "2026-03-02",
"value": 46.1
},
{
"time": "2026-03-03",
"value": 47.2
},
{
"time": "2026-03-04",
"value": 48.1
},
{
"time": "2026-03-05",
"value": 48.3
},
{
"time": "2026-03-06",
"value": 46.5
},
{
"time": "2026-03-07",
"value": 45.8
},
{
"time": "2026-03-08",
"value": 46.8
},
{
"time": "2026-03-09",
"value": 45.5
},
{
"time": "2026-03-10",
"value": null
},
{
"time": "2026-03-11",
"value": null
},
{
"time": "2026-03-12",
"value": 41.4
},
{
"time": "2026-03-13",
"value": 38.4
},
{
"time": "2026-03-14",
"value": 37.8
},
{
"time": "2026-03-15",
"value": 39.3
},
{
"time": "2026-03-16",
"value": 39.6
},
{
"time": "2026-03-17",
"value": 40.2
},
{
"time": "2026-03-18",
"value": 41.4
},
{
"time": "2026-03-19",
"value": 42.7
},
{
"time": "2026-03-20",
"value": 42.7
},
{
"time": "2026-03-21",
"value": 44.2
},
{
"time": "2026-03-22",
"value": 47.9
},
{
"time": "2026-03-23",
"value": 49.2
},
{
"time": "2026-03-24",
"value": 50.4
},
{
"time": "2026-03-25",
"value": 50.9
},
{
"time": "2026-03-26",
"value": 51.4
},
{
"time": "2026-03-27",
"value": 49.1
},
{
"time": "2026-03-28",
"value": 48.7
}
]
},
{
"mark": "line",
"name": "Servers",
"stroke": "bold",
"points": [
{
"time": "2026-03-01",
"value": 22
},
{
"time": "2026-03-02",
"value": 23.1
},
{
"time": "2026-03-03",
"value": 24
},
{
"time": "2026-03-04",
"value": 24.8
},
{
"time": "2026-03-05",
"value": 25.2
},
{
"time": "2026-03-06",
"value": 25.4
},
{
"time": "2026-03-07",
"value": 25.2
},
{
"time": "2026-03-08",
"value": 24.7
},
{
"time": "2026-03-09",
"value": 24
},
{
"time": "2026-03-10",
"value": 23.1
},
{
"time": "2026-03-11",
"value": 22.2
},
{
"time": "2026-03-12",
"value": 21.4
},
{
"time": "2026-03-13",
"value": 20.7
},
{
"time": "2026-03-14",
"value": 20.3
},
{
"time": "2026-03-15",
"value": 20.1
},
{
"time": "2026-03-16",
"value": 20.3
},
{
"time": "2026-03-17",
"value": 20.8
},
{
"time": "2026-03-18",
"value": 21.6
},
{
"time": "2026-03-19",
"value": 22.6
},
{
"time": "2026-03-20",
"value": 23.7
},
{
"time": "2026-03-21",
"value": 24.7
},
{
"time": "2026-03-22",
"value": 25.7
},
{
"time": "2026-03-23",
"value": 26.4
},
{
"time": "2026-03-24",
"value": 26.8
},
{
"time": "2026-03-25",
"value": 26.9
},
{
"time": "2026-03-26",
"value": 26.7
},
{
"time": "2026-03-27",
"value": 26.1
},
{
"time": "2026-03-28",
"value": 25.4
}
]
},
{
"mark": "line",
"name": "Cooling",
"points": [
{
"time": "2026-03-01",
"value": 13.1
},
{
"time": "2026-03-02",
"value": 13.4
},
{
"time": "2026-03-03",
"value": 13.6
},
{
"time": "2026-03-04",
"value": 13.6
},
{
"time": "2026-03-05",
"value": 13.5
},
{
"time": "2026-03-06",
"value": 13.2
},
{
"time": "2026-03-07",
"value": 12.8
},
{
"time": "2026-03-08",
"value": 12.3
},
{
"time": "2026-03-09",
"value": 11.8
},
{
"time": "2026-03-10",
"value": null
},
{
"time": "2026-03-11",
"value": null
},
{
"time": "2026-03-12",
"value": 10.1
},
{
"time": "2026-03-13",
"value": 9.7
},
{
"time": "2026-03-14",
"value": 9.4
},
{
"time": "2026-03-15",
"value": 9.3
},
{
"time": "2026-03-16",
"value": 9.3
},
{
"time": "2026-03-17",
"value": 9.4
},
{
"time": "2026-03-18",
"value": 9.7
},
{
"time": "2026-03-19",
"value": 10.1
},
{
"time": "2026-03-20",
"value": 10.7
},
{
"time": "2026-03-21",
"value": 11.3
},
{
"time": "2026-03-22",
"value": 12
},
{
"time": "2026-03-23",
"value": 12.6
},
{
"time": "2026-03-24",
"value": 13.3
},
{
"time": "2026-03-25",
"value": 13.8
},
{
"time": "2026-03-26",
"value": 14.3
},
{
"time": "2026-03-27",
"value": 14.6
},
{
"time": "2026-03-28",
"value": 14.8
}
]
},
{
"mark": "line",
"name": "Lighting",
"dash": "dotted",
"points": [
{
"time": "2026-03-01",
"value": 6.3
},
{
"time": "2026-03-02",
"value": 6.4
},
{
"time": "2026-03-03",
"value": 6.4
},
{
"time": "2026-03-04",
"value": 6.5
},
{
"time": "2026-03-05",
"value": 6.4
},
{
"time": "2026-03-06",
"value": 4.7
},
{
"time": "2026-03-07",
"value": 4.6
},
{
"time": "2026-03-08",
"value": 6.6
},
{
"time": "2026-03-09",
"value": 6.5
},
{
"time": "2026-03-10",
"value": 6.7
},
{
"time": "2026-03-11",
"value": 6.6
},
{
"time": "2026-03-12",
"value": 6.7
},
{
"time": "2026-03-13",
"value": 4.8
},
{
"time": "2026-03-14",
"value": 4.9
},
{
"time": "2026-03-15",
"value": 6.7
},
{
"time": "2026-03-16",
"value": 6.8
},
{
"time": "2026-03-17",
"value": 6.8
},
{
"time": "2026-03-18",
"value": 6.9
},
{
"time": "2026-03-19",
"value": 6.8
},
{
"time": "2026-03-20",
"value": 5.1
},
{
"time": "2026-03-21",
"value": 5
},
{
"time": "2026-03-22",
"value": 7
},
{
"time": "2026-03-23",
"value": 7
},
{
"time": "2026-03-24",
"value": 7.1
},
{
"time": "2026-03-25",
"value": 7
},
{
"time": "2026-03-26",
"value": 7.2
},
{
"time": "2026-03-27",
"value": 5.2
},
{
"time": "2026-03-28",
"value": 5.3
}
]
},
{
"mark": "line",
"name": "Total forecast",
"color": "#7c3aed",
"dash": "dashed",
"points": [
{
"time": "2026-03-21",
"value": 44.2
},
{
"time": "2026-03-22",
"value": 44.6
},
{
"time": "2026-03-23",
"value": 44.9
},
{
"time": "2026-03-24",
"value": 45.2
},
{
"time": "2026-03-25",
"value": 45.6
},
{
"time": "2026-03-26",
"value": 46
},
{
"time": "2026-03-27",
"value": 46.3
},
{
"time": "2026-03-28",
"value": 46.7
}
]
}
]
}
],
"zoomSteps": [
{
"label": "Four weeks",
"from": "2026-03-01",
"to": "2026-03-28"
},
{
"label": "Last week",
"from": "2026-03-22",
"to": "2026-03-28"
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | Total | Servers | Cooling | Lighting | Total forecast |
|---|---|---|---|---|---|
| 2026-03-01 | 44.6 | 22.0 | 13.1 | 6.3 | Missing |
| 2026-03-02 | 46.1 | 23.1 | 13.4 | 6.4 | Missing |
| 2026-03-03 | 47.2 | 24.0 | 13.6 | 6.4 | Missing |
| 2026-03-04 | 48.1 | 24.8 | 13.6 | 6.5 | Missing |
| 2026-03-05 | 48.3 | 25.2 | 13.5 | 6.4 | Missing |
| 2026-03-06 | 46.5 | 25.4 | 13.2 | 4.7 | Missing |
| 2026-03-07 | 45.8 | 25.2 | 12.8 | 4.6 | Missing |
| 2026-03-08 | 46.8 | 24.7 | 12.3 | 6.6 | Missing |
| 2026-03-09 | 45.5 | 24.0 | 11.8 | 6.5 | Missing |
| 2026-03-10 | Missing | 23.1 | Missing | 6.7 | Missing |
| 2026-03-11 | Missing | 22.2 | Missing | 6.6 | Missing |
| 2026-03-12 | 41.4 | 21.4 | 10.1 | 6.7 | Missing |
| 2026-03-13 | 38.4 | 20.7 | 9.7 | 4.8 | Missing |
| 2026-03-14 | 37.8 | 20.3 | 9.4 | 4.9 | Missing |
| 2026-03-15 | 39.3 | 20.1 | 9.3 | 6.7 | Missing |
| 2026-03-16 | 39.6 | 20.3 | 9.3 | 6.8 | Missing |
| 2026-03-17 | 40.2 | 20.8 | 9.4 | 6.8 | Missing |
| 2026-03-18 | 41.4 | 21.6 | 9.7 | 6.9 | Missing |
| 2026-03-19 | 42.7 | 22.6 | 10.1 | 6.8 | Missing |
| 2026-03-20 | 42.7 | 23.7 | 10.7 | 5.1 | Missing |
| 2026-03-21 | 44.2 | 24.7 | 11.3 | 5.0 | 44.2 |
| 2026-03-22 | 47.9 | 25.7 | 12.0 | 7.0 | 44.6 |
| 2026-03-23 | 49.2 | 26.4 | 12.6 | 7.0 | 44.9 |
| 2026-03-24 | 50.4 | 26.8 | 13.3 | 7.1 | 45.2 |
| 2026-03-25 | 50.9 | 26.9 | 13.8 | 7.0 | 45.6 |
| 2026-03-26 | 51.4 | 26.7 | 14.3 | 7.2 | 46.0 |
| 2026-03-27 | 49.1 | 26.1 | 14.6 | 5.2 | 46.3 |
| 2026-03-28 | 48.7 | 25.4 | 14.8 | 5.3 | 46.7 |
Electricity generation by source
examples/generation-mix.jsonDetail: Electricity generation by source →{
"schemaVersion": 1,
"type": "time",
"title": "Electricity generation by source",
"source": "Sample data, rounded",
"showValues": false,
"legend": "end",
"panes": [
{
"valueAxis": {
"title": "TWh per year",
"thousandsSeparator": true
},
"stack": "normal",
"layers": [
{
"mark": "area",
"name": "Fossil",
"points": [
{
"time": "2000",
"value": 1450
},
{
"time": "2004",
"value": 1520
},
{
"time": "2008",
"value": 1500
},
{
"time": "2012",
"value": 1350
},
{
"time": "2016",
"value": 1250
},
{
"time": "2020",
"value": 1000
},
{
"time": "2024",
"value": 800
}
]
},
{
"mark": "area",
"name": "Nuclear",
"points": [
{
"time": "2000",
"value": 860
},
{
"time": "2004",
"value": 900
},
{
"time": "2008",
"value": 870
},
{
"time": "2012",
"value": 800
},
{
"time": "2016",
"value": 780
},
{
"time": "2020",
"value": 690
},
{
"time": "2024",
"value": 620
}
]
},
{
"mark": "area",
"name": "Hydro and other",
"points": [
{
"time": "2000",
"value": 400
},
{
"time": "2004",
"value": 400
},
{
"time": "2008",
"value": 420
},
{
"time": "2012",
"value": 450
},
{
"time": "2016",
"value": 470
},
{
"time": "2020",
"value": 500
},
{
"time": "2024",
"value": 480
}
]
},
{
"mark": "area",
"name": "Wind and solar",
"points": [
{
"time": "2000",
"value": 25
},
{
"time": "2004",
"value": 65
},
{
"time": "2008",
"value": 130
},
{
"time": "2012",
"value": 290
},
{
"time": "2016",
"value": 420
},
{
"time": "2020",
"value": 560
},
{
"time": "2024",
"value": 760
}
]
}
]
}
]
}Source: Sample data, rounded
Show chart data
| Time | Fossil | Nuclear | Hydro and other | Wind and solar |
|---|---|---|---|---|
| 2000 | 1,450 | 860 | 400 | 25 |
| 2004 | 1,520 | 900 | 400 | 65 |
| 2008 | 1,500 | 870 | 420 | 130 |
| 2012 | 1,350 | 800 | 450 | 290 |
| 2016 | 1,250 | 780 | 470 | 420 |
| 2020 | 1,000 | 690 | 500 | 560 |
| 2024 | 800 | 620 | 480 | 760 |
Resting heart rate during training
examples/resting-heart-rate.jsonDetail: Resting heart rate during training →{
"schemaVersion": 1,
"type": "time",
"title": "Resting heart rate during training",
"source": "Sample data",
"showValues": false,
"panes": [
{
"valueAxis": {
"title": "Beats per minute"
},
"layers": [
{
"mark": "point",
"name": "Morning reading",
"points": [
{
"time": "2026-03-03",
"value": 65
},
{
"time": "2026-03-04",
"value": 63
},
{
"time": "2026-03-06",
"value": 64
},
{
"time": "2026-03-09",
"value": 65
},
{
"time": "2026-03-10",
"value": 62
},
{
"time": "2026-03-12",
"value": 61
},
{
"time": "2026-03-15",
"value": 63
},
{
"time": "2026-03-16",
"value": 62
},
{
"time": "2026-03-18",
"value": 60
},
{
"time": "2026-03-21",
"value": 63
},
{
"time": "2026-03-23",
"value": 62
},
{
"time": "2026-03-24",
"value": 60
},
{
"time": "2026-03-27",
"value": 63
},
{
"time": "2026-03-29",
"value": 60
},
{
"time": "2026-03-31",
"value": 60
},
{
"time": "2026-04-03",
"value": 61
},
{
"time": "2026-04-05",
"value": 58
},
{
"time": "2026-04-06",
"value": 60
},
{
"time": "2026-04-09",
"value": 58
},
{
"time": "2026-04-11",
"value": 61
},
{
"time": "2026-04-13",
"value": 58
},
{
"time": "2026-04-16",
"value": 58
},
{
"time": "2026-04-18",
"value": 59
},
{
"time": "2026-04-20",
"value": 57
},
{
"time": "2026-04-23",
"value": 58
},
{
"time": "2026-04-25",
"value": 56
},
{
"time": "2026-04-26",
"value": 58
}
]
},
{
"mark": "line",
"name": "Weekly mean",
"points": [
{
"time": "2026-03-04",
"value": 64
},
{
"time": "2026-03-11",
"value": 62.7
},
{
"time": "2026-03-18",
"value": 62
},
{
"time": "2026-03-25",
"value": 61.7
},
{
"time": "2026-04-01",
"value": 60.3
},
{
"time": "2026-04-08",
"value": 59.2
},
{
"time": "2026-04-15",
"value": 58.3
},
{
"time": "2026-04-22",
"value": 57
}
]
}
]
}
]
}Source: Sample data
Show chart data
| Time | Morning reading | Weekly mean |
|---|---|---|
| 2026-03-03 | 65 | Missing |
| 2026-03-04 | 63 | 64 |
| 2026-03-06 | 64 | Missing |
| 2026-03-09 | 65 | Missing |
| 2026-03-10 | 62 | Missing |
| 2026-03-11 | Missing | 62.7 |
| 2026-03-12 | 61 | Missing |
| 2026-03-15 | 63 | Missing |
| 2026-03-16 | 62 | Missing |
| 2026-03-18 | 60 | 62 |
| 2026-03-21 | 63 | Missing |
| 2026-03-23 | 62 | Missing |
| 2026-03-24 | 60 | Missing |
| 2026-03-25 | Missing | 61.7 |
| 2026-03-27 | 63 | Missing |
| 2026-03-29 | 60 | Missing |
| 2026-03-31 | 60 | Missing |
| 2026-04-01 | Missing | 60.3 |
| 2026-04-03 | 61 | Missing |
| 2026-04-05 | 58 | Missing |
| 2026-04-06 | 60 | Missing |
| 2026-04-08 | Missing | 59.2 |
| 2026-04-09 | 58 | Missing |
| 2026-04-11 | 61 | Missing |
| 2026-04-13 | 58 | Missing |
| 2026-04-15 | Missing | 58.3 |
| 2026-04-16 | 58 | Missing |
| 2026-04-18 | 59 | Missing |
| 2026-04-20 | 57 | Missing |
| 2026-04-22 | Missing | 57 |
| 2026-04-23 | 58 | Missing |
| 2026-04-25 | 56 | Missing |
| 2026-04-26 | 58 | Missing |
Checkout API error rate
examples/release-incidents.jsonDetail: Checkout API error rate →{
"schemaVersion": 1,
"type": "time",
"title": "Checkout API error rate",
"source": "Illustrative values, chartlet",
"timeAxis": {
"timezone": "UTC",
"title": "Day"
},
"showValues": false,
"panes": [
{
"valueAxis": {
"title": "Errors per 100 requests",
"decimals": 2
},
"layers": [
{
"mark": "band",
"label": "Above the error budget",
"bottom": 1,
"top": 2.5
},
{
"mark": "band",
"label": "Maintenance",
"from": "2026-02-16",
"to": "2026-02-19"
},
{
"mark": "line",
"name": "Error rate",
"points": [
{
"time": "2026-02-02",
"value": 0.36
},
{
"time": "2026-02-03",
"value": 0.41
},
{
"time": "2026-02-04",
"value": 0.36
},
{
"time": "2026-02-05",
"value": 0.26
},
{
"time": "2026-02-06",
"value": 0.23
},
{
"time": "2026-02-07",
"value": 0.3
},
{
"time": "2026-02-08",
"value": 0.36
},
{
"time": "2026-02-09",
"value": 0.35
},
{
"time": "2026-02-10",
"value": 0.3
},
{
"time": "2026-02-11",
"value": 0.31
},
{
"time": "2026-02-12",
"value": 0.38
},
{
"time": "2026-02-13",
"value": 0.39
},
{
"time": "2026-02-14",
"value": 0.31
},
{
"time": "2026-02-15",
"value": 0.23
},
{
"time": "2026-02-16",
"value": 0.25
},
{
"time": "2026-02-17",
"value": null
},
{
"time": "2026-02-18",
"value": 0.38
},
{
"time": "2026-02-19",
"value": 0.34
},
{
"time": "2026-02-20",
"value": 0.3
},
{
"time": "2026-02-21",
"value": 0.32
},
{
"time": "2026-02-22",
"value": 0.37
},
{
"time": "2026-02-23",
"value": 0.35
},
{
"time": "2026-02-24",
"value": 2.14
},
{
"time": "2026-02-25",
"value": 1.62
},
{
"time": "2026-02-26",
"value": 1.18
},
{
"time": "2026-02-27",
"value": 0.61
},
{
"time": "2026-02-28",
"value": 0.66
},
{
"time": "2026-03-01",
"value": 0.67
},
{
"time": "2026-03-02",
"value": 0.63
},
{
"time": "2026-03-03",
"value": 0.59
},
{
"time": "2026-03-04",
"value": 0.57
},
{
"time": "2026-03-05",
"value": 0.6
},
{
"time": "2026-03-06",
"value": 0.24
},
{
"time": "2026-03-07",
"value": 0.25
},
{
"time": "2026-03-08",
"value": 0.34
},
{
"time": "2026-03-09",
"value": 0.41
},
{
"time": "2026-03-10",
"value": 0.38
},
{
"time": "2026-03-11",
"value": 0.3
},
{
"time": "2026-03-12",
"value": 0.28
},
{
"time": "2026-03-13",
"value": 0.32
},
{
"time": "2026-03-14",
"value": 0.34
},
{
"time": "2026-03-15",
"value": 0.29
}
]
},
{
"mark": "annotation",
"label": "Release 2.4",
"time": "2026-02-24",
"value": 2.14,
"shape": "triangle-up"
},
{
"mark": "annotation",
"label": "Rollback",
"time": "2026-02-26",
"value": 1.18,
"shape": "triangle-down"
},
{
"mark": "annotation",
"label": "Hotfix",
"time": "2026-03-06",
"value": 0.36,
"shape": "diamond"
}
]
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | Error rate |
|---|---|
| 2026-02-02 | 0.36 |
| 2026-02-03 | 0.41 |
| 2026-02-04 | 0.36 |
| 2026-02-05 | 0.26 |
| 2026-02-06 | 0.23 |
| 2026-02-07 | 0.30 |
| 2026-02-08 | 0.36 |
| 2026-02-09 | 0.35 |
| 2026-02-10 | 0.30 |
| 2026-02-11 | 0.31 |
| 2026-02-12 | 0.38 |
| 2026-02-13 | 0.39 |
| 2026-02-14 | 0.31 |
| 2026-02-15 | 0.23 |
| 2026-02-16 | 0.25 |
| 2026-02-17 | Missing |
| 2026-02-18 | 0.38 |
| 2026-02-19 | 0.34 |
| 2026-02-20 | 0.30 |
| 2026-02-21 | 0.32 |
| 2026-02-22 | 0.37 |
| 2026-02-23 | 0.35 |
| 2026-02-24 | 2.14 |
| 2026-02-25 | 1.62 |
| 2026-02-26 | 1.18 |
| 2026-02-27 | 0.61 |
| 2026-02-28 | 0.66 |
| 2026-03-01 | 0.67 |
| 2026-03-02 | 0.63 |
| 2026-03-03 | 0.59 |
| 2026-03-04 | 0.57 |
| 2026-03-05 | 0.60 |
| 2026-03-06 | 0.24 |
| 2026-03-07 | 0.25 |
| 2026-03-08 | 0.34 |
| 2026-03-09 | 0.41 |
| 2026-03-10 | 0.38 |
| 2026-03-11 | 0.30 |
| 2026-03-12 | 0.28 |
| 2026-03-13 | 0.32 |
| 2026-03-14 | 0.34 |
| 2026-03-15 | 0.29 |
Kestrel Instruments (KSTL), daily share price
examples/share-price.jsonDetail: Kestrel Instruments (KSTL), daily share price →{
"schemaVersion": 1,
"type": "time",
"title": "Kestrel Instruments (KSTL), daily share price",
"source": "Illustrative values, chartlet",
"height": 560,
"timeAxis": {
"title": "Trading day",
"gaps": "collapse"
},
"panes": [
{
"heightRatio": 3,
"valueAxis": {
"title": "Price (USD)",
"decimals": 2
},
"layers": [
{
"mark": "ohlc",
"name": "KSTL",
"data": [
{
"time": "2026-01-07",
"open": 49.24,
"high": 51.09,
"low": 48.93,
"close": 50.2
},
{
"time": "2026-01-08",
"open": 50.43,
"high": 50.84,
"low": 49.8,
"close": 50.77
},
{
"time": "2026-01-09",
"open": 51.14,
"high": 51.15,
"low": 50.33,
"close": 50.81
},
{
"time": "2026-01-12",
"open": 50.66,
"high": 52.79,
"low": 50.58,
"close": 52.03
},
{
"time": "2026-01-13",
"open": 52.52,
"high": 53.08,
"low": 51.61,
"close": 52.3
},
{
"time": "2026-01-14",
"open": 52.52,
"high": 53.14,
"low": 51.39,
"close": 51.86
},
{
"time": "2026-01-15",
"open": 51.92,
"high": 52.41,
"low": 51.82,
"close": 52.1
},
{
"time": "2026-01-16",
"open": 52.1,
"high": 53.08,
"low": 51.78,
"close": 52.66
},
{
"time": "2026-01-20",
"open": 52.51,
"high": 53.06,
"low": 52.5,
"close": 52.85
},
{
"time": "2026-01-21",
"open": 52.99,
"high": 54,
"low": 51.33,
"close": 52.74
},
{
"time": "2026-01-22",
"open": 52.88,
"high": 53.28,
"low": 52.64,
"close": 53.14
},
{
"time": "2026-01-23",
"open": 52.96,
"high": 54.6,
"low": 52.77,
"close": 53.27
},
{
"time": "2026-01-26",
"open": 53.19,
"high": 53.22,
"low": 51.65,
"close": 53.15
},
{
"time": "2026-01-27",
"open": 52.74,
"high": 53.73,
"low": 52.21,
"close": 53.7
},
{
"time": "2026-01-28",
"open": 53.1,
"high": 54.69,
"low": 52.91,
"close": 54.49
},
{
"time": "2026-01-29",
"open": 53.55,
"high": 55.18,
"low": 52.76,
"close": 54.59
},
{
"time": "2026-01-30",
"open": 54.65,
"high": 55.3,
"low": 53.27,
"close": 53.35
},
{
"time": "2026-02-02",
"open": 53.4,
"high": 54.22,
"low": 52.56,
"close": 54.17
},
{
"time": "2026-02-03",
"open": 55.13,
"high": 55.76,
"low": 54.42,
"close": 54.92
},
{
"time": "2026-02-04",
"open": 55.16,
"high": 55.46,
"low": 54.81,
"close": 55.33
},
{
"time": "2026-02-05",
"open": 55.55,
"high": 56.08,
"low": 53.68,
"close": 54.24
},
{
"time": "2026-02-06",
"open": 54.5,
"high": 56.5,
"low": 53.99,
"close": 55.69
},
{
"time": "2026-02-09",
"open": 55.96,
"high": 56.83,
"low": 54.49,
"close": 54.98
},
{
"time": "2026-02-10",
"open": 54.92,
"high": 56.95,
"low": 54.15,
"close": 55.86
},
{
"time": "2026-02-11",
"open": 56,
"high": 56.23,
"low": 54.68,
"close": 55.51
},
{
"time": "2026-02-12",
"open": 56.03,
"high": 57.9,
"low": 55.93,
"close": 57.1
},
{
"time": "2026-02-13",
"open": 57.14,
"high": 58.18,
"low": 56.36,
"close": 58.11
},
{
"time": "2026-02-17",
"open": 57.97,
"high": 63.24,
"low": 57.52,
"close": 62.22
},
{
"time": "2026-02-18",
"open": 62.22,
"high": 62.68,
"low": 61.68,
"close": 61.72
},
{
"time": "2026-02-19",
"open": 62.08,
"high": 62.9,
"low": 61.19,
"close": 62.08
},
{
"time": "2026-02-20",
"open": 61.42,
"high": 62.86,
"low": 60.34,
"close": 62.26
},
{
"time": "2026-02-23",
"open": 62.26,
"high": 62.36,
"low": 61.18,
"close": 61.2
},
{
"time": "2026-02-24",
"open": 61.83,
"high": 62.11,
"low": 61.54,
"close": 62.09
},
{
"time": "2026-02-25",
"open": 61.65,
"high": 61.95,
"low": 60.93,
"close": 61.52
},
{
"time": "2026-02-26",
"open": 61.87,
"high": 62.31,
"low": 61.38,
"close": 61.38
},
{
"time": "2026-02-27",
"open": 60.97,
"high": 62.03,
"low": 60.62,
"close": 61.17
},
{
"time": "2026-03-02",
"open": 60.85,
"high": 61.28,
"low": 59.55,
"close": 60.39
},
{
"time": "2026-03-03",
"open": 60.52,
"high": 61.82,
"low": 59.33,
"close": 59.51
},
{
"time": "2026-03-04",
"open": 59.76,
"high": 59.92,
"low": 56.84,
"close": 58.07
},
{
"time": "2026-03-05",
"open": 57.91,
"high": 58.65,
"low": 57.49,
"close": 58.22
},
{
"time": "2026-03-06",
"open": 58.68,
"high": 59.39,
"low": 58.44,
"close": 59.03
},
{
"time": "2026-03-09",
"open": 59.49,
"high": 60.51,
"low": 59.23,
"close": 60.34
},
{
"time": "2026-03-10",
"open": 60.51,
"high": 61.84,
"low": 58.47,
"close": 58.98
},
{
"time": "2026-03-11",
"open": 58.93,
"high": 60.99,
"low": 58.44,
"close": 60.68
},
{
"time": "2026-03-12",
"open": 60.78,
"high": 61.24,
"low": 60.73,
"close": 60.75
},
{
"time": "2026-03-13",
"open": 60.63,
"high": 61.12,
"low": 59.71,
"close": 59.76
},
{
"time": "2026-03-16",
"open": 60.7,
"high": 61.32,
"low": 59.64,
"close": 59.99
},
{
"time": "2026-03-17",
"open": 60.16,
"high": 61.69,
"low": 59.92,
"close": 60.77
},
{
"time": "2026-03-18",
"open": 60.09,
"high": 61.17,
"low": 59.91,
"close": 60.61
},
{
"time": "2026-03-19",
"open": 61.24,
"high": 63.25,
"low": 60.87,
"close": 62.48
},
{
"time": "2026-03-20",
"open": 62.34,
"high": 63.09,
"low": 61.18,
"close": 62.56
},
{
"time": "2026-03-23",
"open": 62.09,
"high": 63.02,
"low": 60.52,
"close": 61.06
},
{
"time": "2026-03-24",
"open": 60.76,
"high": 61.68,
"low": 59.57,
"close": 61.54
},
{
"time": "2026-03-25",
"open": 61.72,
"high": 62.12,
"low": 61.65,
"close": 61.72
},
{
"time": "2026-03-26",
"open": 61.94,
"high": 62.44,
"low": 61.76,
"close": 62.33
},
{
"time": "2026-03-27",
"open": 62.04,
"high": 62.48,
"low": 62.04,
"close": 62.13
},
{
"time": "2026-03-30",
"open": 62.13,
"high": 62.42,
"low": 62.06,
"close": 62.33
},
{
"time": "2026-03-31",
"open": 62.69,
"high": 63.36,
"low": 62.59,
"close": 63.12
},
{
"time": "2026-04-01",
"open": 62.46,
"high": 62.49,
"low": 61.13,
"close": 61.64
},
{
"time": "2026-04-02",
"open": 60.72,
"high": 61.29,
"low": 58.93,
"close": 59.8
},
{
"time": "2026-04-03",
"open": 59.53,
"high": 59.81,
"low": 58.07,
"close": 58.35
},
{
"time": "2026-04-06",
"open": 58.59,
"high": 59.99,
"low": 58.26,
"close": 59.98
},
{
"time": "2026-04-07",
"open": 60.34,
"high": 61.86,
"low": 60.25,
"close": 61.26
},
{
"time": "2026-04-08",
"open": 61.63,
"high": 61.96,
"low": 60.92,
"close": 61.42
},
{
"time": "2026-04-09",
"open": 61.85,
"high": 64.31,
"low": 61.8,
"close": 64.19
}
]
},
{
"mark": "line",
"name": "20-day average",
"points": [
{
"time": "2026-01-07",
"value": 49.59
},
{
"time": "2026-01-08",
"value": 49.73
},
{
"time": "2026-01-09",
"value": 49.86
},
{
"time": "2026-01-12",
"value": 50.02
},
{
"time": "2026-01-13",
"value": 50.2
},
{
"time": "2026-01-14",
"value": 50.35
},
{
"time": "2026-01-15",
"value": 50.5
},
{
"time": "2026-01-16",
"value": 50.72
},
{
"time": "2026-01-20",
"value": 50.94
},
{
"time": "2026-01-21",
"value": 51.18
},
{
"time": "2026-01-22",
"value": 51.42
},
{
"time": "2026-01-23",
"value": 51.64
},
{
"time": "2026-01-26",
"value": 51.78
},
{
"time": "2026-01-27",
"value": 51.94
},
{
"time": "2026-01-28",
"value": 52.13
},
{
"time": "2026-01-29",
"value": 52.24
},
{
"time": "2026-01-30",
"value": 52.35
},
{
"time": "2026-02-02",
"value": 52.48
},
{
"time": "2026-02-03",
"value": 52.64
},
{
"time": "2026-02-04",
"value": 52.92
},
{
"time": "2026-02-05",
"value": 53.12
},
{
"time": "2026-02-06",
"value": 53.37
},
{
"time": "2026-02-09",
"value": 53.58
},
{
"time": "2026-02-10",
"value": 53.77
},
{
"time": "2026-02-11",
"value": 53.93
},
{
"time": "2026-02-12",
"value": 54.19
},
{
"time": "2026-02-13",
"value": 54.49
},
{
"time": "2026-02-17",
"value": 54.97
},
{
"time": "2026-02-18",
"value": 55.41
},
{
"time": "2026-02-19",
"value": 55.88
},
{
"time": "2026-02-20",
"value": 56.34
},
{
"time": "2026-02-23",
"value": 56.73
},
{
"time": "2026-02-24",
"value": 57.18
},
{
"time": "2026-02-25",
"value": 57.57
},
{
"time": "2026-02-26",
"value": 57.92
},
{
"time": "2026-02-27",
"value": 58.25
},
{
"time": "2026-03-02",
"value": 58.6
},
{
"time": "2026-03-03",
"value": 58.86
},
{
"time": "2026-03-04",
"value": 59.02
},
{
"time": "2026-03-05",
"value": 59.17
},
{
"time": "2026-03-06",
"value": 59.41
},
{
"time": "2026-03-09",
"value": 59.64
},
{
"time": "2026-03-10",
"value": 59.84
},
{
"time": "2026-03-11",
"value": 60.08
},
{
"time": "2026-03-12",
"value": 60.34
},
{
"time": "2026-03-13",
"value": 60.47
},
{
"time": "2026-03-16",
"value": 60.57
},
{
"time": "2026-03-17",
"value": 60.5
},
{
"time": "2026-03-18",
"value": 60.44
},
{
"time": "2026-03-19",
"value": 60.46
},
{
"time": "2026-03-20",
"value": 60.48
},
{
"time": "2026-03-23",
"value": 60.47
},
{
"time": "2026-03-24",
"value": 60.44
},
{
"time": "2026-03-25",
"value": 60.45
},
{
"time": "2026-03-26",
"value": 60.5
},
{
"time": "2026-03-27",
"value": 60.55
},
{
"time": "2026-03-30",
"value": 60.64
},
{
"time": "2026-03-31",
"value": 60.82
},
{
"time": "2026-04-01",
"value": 61
},
{
"time": "2026-04-02",
"value": 61.08
},
{
"time": "2026-04-03",
"value": 61.05
},
{
"time": "2026-04-06",
"value": 61.03
},
{
"time": "2026-04-07",
"value": 61.14
},
{
"time": "2026-04-08",
"value": 61.18
},
{
"time": "2026-04-09",
"value": 61.35
}
]
},
{
"mark": "annotation",
"label": "Quarterly results",
"time": "2026-02-17",
"value": 64.44,
"shape": "triangle-down"
}
]
},
{
"heightRatio": 1,
"valueAxis": {
"title": "Volume (million shares)",
"decimals": 1
},
"layers": [
{
"mark": "area",
"name": "Volume",
"stroke": "thin",
"points": [
{
"time": "2026-01-07",
"value": 2.26
},
{
"time": "2026-01-08",
"value": 1.88
},
{
"time": "2026-01-09",
"value": 2.62
},
{
"time": "2026-01-12",
"value": 2.36
},
{
"time": "2026-01-13",
"value": 1.6
},
{
"time": "2026-01-14",
"value": 2.43
},
{
"time": "2026-01-15",
"value": 2.26
},
{
"time": "2026-01-16",
"value": 3.13
},
{
"time": "2026-01-20",
"value": 2.59
},
{
"time": "2026-01-21",
"value": 1.67
},
{
"time": "2026-01-22",
"value": 2.45
},
{
"time": "2026-01-23",
"value": 1.91
},
{
"time": "2026-01-26",
"value": 1.9
},
{
"time": "2026-01-27",
"value": 2.71
},
{
"time": "2026-01-28",
"value": 2.72
},
{
"time": "2026-01-29",
"value": 2.65
},
{
"time": "2026-01-30",
"value": 2.52
},
{
"time": "2026-02-02",
"value": 2.75
},
{
"time": "2026-02-03",
"value": 2.05
},
{
"time": "2026-02-04",
"value": 1.44
},
{
"time": "2026-02-05",
"value": 1.78
},
{
"time": "2026-02-06",
"value": 2.39
},
{
"time": "2026-02-09",
"value": 3.06
},
{
"time": "2026-02-10",
"value": 2.28
},
{
"time": "2026-02-11",
"value": 1.78
},
{
"time": "2026-02-12",
"value": 2.02
},
{
"time": "2026-02-13",
"value": 2.21
},
{
"time": "2026-02-17",
"value": 6.79
},
{
"time": "2026-02-18",
"value": 4.03
},
{
"time": "2026-02-19",
"value": 1.81
},
{
"time": "2026-02-20",
"value": 2.78
},
{
"time": "2026-02-23",
"value": 2.11
},
{
"time": "2026-02-24",
"value": 2.6
},
{
"time": "2026-02-25",
"value": 1.4
},
{
"time": "2026-02-26",
"value": 2.6
},
{
"time": "2026-02-27",
"value": 2.55
},
{
"time": "2026-03-02",
"value": 2.17
},
{
"time": "2026-03-03",
"value": 2.08
},
{
"time": "2026-03-04",
"value": 2.14
},
{
"time": "2026-03-05",
"value": 2.47
},
{
"time": "2026-03-06",
"value": 1.24
},
{
"time": "2026-03-09",
"value": 3.17
},
{
"time": "2026-03-10",
"value": 2.81
},
{
"time": "2026-03-11",
"value": 2.12
},
{
"time": "2026-03-12",
"value": 2.03
},
{
"time": "2026-03-13",
"value": 1.94
},
{
"time": "2026-03-16",
"value": 1.12
},
{
"time": "2026-03-17",
"value": 2.21
},
{
"time": "2026-03-18",
"value": 1.9
},
{
"time": "2026-03-19",
"value": 2.53
},
{
"time": "2026-03-20",
"value": 2.61
},
{
"time": "2026-03-23",
"value": 3.19
},
{
"time": "2026-03-24",
"value": 1.95
},
{
"time": "2026-03-25",
"value": 2.32
},
{
"time": "2026-03-26",
"value": 2.54
},
{
"time": "2026-03-27",
"value": 2.06
},
{
"time": "2026-03-30",
"value": 1.57
},
{
"time": "2026-03-31",
"value": 2.4
},
{
"time": "2026-04-01",
"value": 2.65
},
{
"time": "2026-04-02",
"value": 2.17
},
{
"time": "2026-04-03",
"value": 2.49
},
{
"time": "2026-04-06",
"value": 3.18
},
{
"time": "2026-04-07",
"value": 2.65
},
{
"time": "2026-04-08",
"value": 2.07
},
{
"time": "2026-04-09",
"value": 3.84
}
]
}
]
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | KSTL (open) | KSTL (high) | KSTL (low) | KSTL (close) | 20-day average | Volume |
|---|---|---|---|---|---|---|
| 2026-01-07 | 49.24 | 51.09 | 48.93 | 50.20 | 49.59 | 2.3 |
| 2026-01-08 | 50.43 | 50.84 | 49.80 | 50.77 | 49.73 | 1.9 |
| 2026-01-09 | 51.14 | 51.15 | 50.33 | 50.81 | 49.86 | 2.6 |
| 2026-01-12 | 50.66 | 52.79 | 50.58 | 52.03 | 50.02 | 2.4 |
| 2026-01-13 | 52.52 | 53.08 | 51.61 | 52.30 | 50.20 | 1.6 |
| 2026-01-14 | 52.52 | 53.14 | 51.39 | 51.86 | 50.35 | 2.4 |
| 2026-01-15 | 51.92 | 52.41 | 51.82 | 52.10 | 50.50 | 2.3 |
| 2026-01-16 | 52.10 | 53.08 | 51.78 | 52.66 | 50.72 | 3.1 |
| 2026-01-20 | 52.51 | 53.06 | 52.50 | 52.85 | 50.94 | 2.6 |
| 2026-01-21 | 52.99 | 54.00 | 51.33 | 52.74 | 51.18 | 1.7 |
| 2026-01-22 | 52.88 | 53.28 | 52.64 | 53.14 | 51.42 | 2.5 |
| 2026-01-23 | 52.96 | 54.60 | 52.77 | 53.27 | 51.64 | 1.9 |
| 2026-01-26 | 53.19 | 53.22 | 51.65 | 53.15 | 51.78 | 1.9 |
| 2026-01-27 | 52.74 | 53.73 | 52.21 | 53.70 | 51.94 | 2.7 |
| 2026-01-28 | 53.10 | 54.69 | 52.91 | 54.49 | 52.13 | 2.7 |
| 2026-01-29 | 53.55 | 55.18 | 52.76 | 54.59 | 52.24 | 2.6 |
| 2026-01-30 | 54.65 | 55.30 | 53.27 | 53.35 | 52.35 | 2.5 |
| 2026-02-02 | 53.40 | 54.22 | 52.56 | 54.17 | 52.48 | 2.8 |
| 2026-02-03 | 55.13 | 55.76 | 54.42 | 54.92 | 52.64 | 2.0 |
| 2026-02-04 | 55.16 | 55.46 | 54.81 | 55.33 | 52.92 | 1.4 |
| 2026-02-05 | 55.55 | 56.08 | 53.68 | 54.24 | 53.12 | 1.8 |
| 2026-02-06 | 54.50 | 56.50 | 53.99 | 55.69 | 53.37 | 2.4 |
| 2026-02-09 | 55.96 | 56.83 | 54.49 | 54.98 | 53.58 | 3.1 |
| 2026-02-10 | 54.92 | 56.95 | 54.15 | 55.86 | 53.77 | 2.3 |
| 2026-02-11 | 56.00 | 56.23 | 54.68 | 55.51 | 53.93 | 1.8 |
| 2026-02-12 | 56.03 | 57.90 | 55.93 | 57.10 | 54.19 | 2.0 |
| 2026-02-13 | 57.14 | 58.18 | 56.36 | 58.11 | 54.49 | 2.2 |
| 2026-02-17 | 57.97 | 63.24 | 57.52 | 62.22 | 54.97 | 6.8 |
| 2026-02-18 | 62.22 | 62.68 | 61.68 | 61.72 | 55.41 | 4.0 |
| 2026-02-19 | 62.08 | 62.90 | 61.19 | 62.08 | 55.88 | 1.8 |
| 2026-02-20 | 61.42 | 62.86 | 60.34 | 62.26 | 56.34 | 2.8 |
| 2026-02-23 | 62.26 | 62.36 | 61.18 | 61.20 | 56.73 | 2.1 |
| 2026-02-24 | 61.83 | 62.11 | 61.54 | 62.09 | 57.18 | 2.6 |
| 2026-02-25 | 61.65 | 61.95 | 60.93 | 61.52 | 57.57 | 1.4 |
| 2026-02-26 | 61.87 | 62.31 | 61.38 | 61.38 | 57.92 | 2.6 |
| 2026-02-27 | 60.97 | 62.03 | 60.62 | 61.17 | 58.25 | 2.5 |
| 2026-03-02 | 60.85 | 61.28 | 59.55 | 60.39 | 58.60 | 2.2 |
| 2026-03-03 | 60.52 | 61.82 | 59.33 | 59.51 | 58.86 | 2.1 |
| 2026-03-04 | 59.76 | 59.92 | 56.84 | 58.07 | 59.02 | 2.1 |
| 2026-03-05 | 57.91 | 58.65 | 57.49 | 58.22 | 59.17 | 2.5 |
| 2026-03-06 | 58.68 | 59.39 | 58.44 | 59.03 | 59.41 | 1.2 |
| 2026-03-09 | 59.49 | 60.51 | 59.23 | 60.34 | 59.64 | 3.2 |
| 2026-03-10 | 60.51 | 61.84 | 58.47 | 58.98 | 59.84 | 2.8 |
| 2026-03-11 | 58.93 | 60.99 | 58.44 | 60.68 | 60.08 | 2.1 |
| 2026-03-12 | 60.78 | 61.24 | 60.73 | 60.75 | 60.34 | 2.0 |
| 2026-03-13 | 60.63 | 61.12 | 59.71 | 59.76 | 60.47 | 1.9 |
| 2026-03-16 | 60.70 | 61.32 | 59.64 | 59.99 | 60.57 | 1.1 |
| 2026-03-17 | 60.16 | 61.69 | 59.92 | 60.77 | 60.50 | 2.2 |
| 2026-03-18 | 60.09 | 61.17 | 59.91 | 60.61 | 60.44 | 1.9 |
| 2026-03-19 | 61.24 | 63.25 | 60.87 | 62.48 | 60.46 | 2.5 |
| 2026-03-20 | 62.34 | 63.09 | 61.18 | 62.56 | 60.48 | 2.6 |
| 2026-03-23 | 62.09 | 63.02 | 60.52 | 61.06 | 60.47 | 3.2 |
| 2026-03-24 | 60.76 | 61.68 | 59.57 | 61.54 | 60.44 | 1.9 |
| 2026-03-25 | 61.72 | 62.12 | 61.65 | 61.72 | 60.45 | 2.3 |
| 2026-03-26 | 61.94 | 62.44 | 61.76 | 62.33 | 60.50 | 2.5 |
| 2026-03-27 | 62.04 | 62.48 | 62.04 | 62.13 | 60.55 | 2.1 |
| 2026-03-30 | 62.13 | 62.42 | 62.06 | 62.33 | 60.64 | 1.6 |
| 2026-03-31 | 62.69 | 63.36 | 62.59 | 63.12 | 60.82 | 2.4 |
| 2026-04-01 | 62.46 | 62.49 | 61.13 | 61.64 | 61.00 | 2.6 |
| 2026-04-02 | 60.72 | 61.29 | 58.93 | 59.80 | 61.08 | 2.2 |
| 2026-04-03 | 59.53 | 59.81 | 58.07 | 58.35 | 61.05 | 2.5 |
| 2026-04-06 | 58.59 | 59.99 | 58.26 | 59.98 | 61.03 | 3.2 |
| 2026-04-07 | 60.34 | 61.86 | 60.25 | 61.26 | 61.14 | 2.6 |
| 2026-04-08 | 61.63 | 61.96 | 60.92 | 61.42 | 61.18 | 2.1 |
| 2026-04-09 | 61.85 | 64.31 | 61.80 | 64.19 | 61.35 | 3.8 |
Deep-sea oxygen isotopes since the end of the dinosaurs
examples/deep-sea-isotopes.jsonDetail: Deep-sea oxygen isotopes since the end of the dinosaurs →{
"schemaVersion": 1,
"type": "time",
"title": "Deep-sea oxygen isotopes since the end of the dinosaurs",
"source": "Sample data, simplified",
"timeAxis": {
"kind": "number",
"reverse": true,
"title": "Million years ago"
},
"panes": [
{
"valueAxis": {
"title": "δ18O (‰), warmer up",
"reverse": true,
"decimals": 1
},
"layers": [
{
"mark": "line",
"name": "δ18O",
"points": [
{
"time": 0,
"value": 3.3
},
{
"time": 2.6,
"value": 3.5
},
{
"time": 5,
"value": 2.8
},
{
"time": 15,
"value": 1.5
},
{
"time": 23,
"value": 2
},
{
"time": 34,
"value": 1.5
},
{
"time": 50,
"value": 0
},
{
"time": 56,
"value": -0.5
},
{
"time": 66,
"value": 0.5
}
]
},
{
"mark": "band",
"label": "Ice sheets on Antarctica",
"from": 0,
"to": 34
}
]
}
]
}Source: Sample data, simplified
Show chart data
| Million years ago | δ18O |
|---|---|
| 0.0 | 3.3 |
| 2.6 | 3.5 |
| 5.0 | 2.8 |
| 15.0 | 1.5 |
| 23.0 | 2.0 |
| 34.0 | 1.5 |
| 50.0 | 0.0 |
| 56.0 | −0.5 |
| 66.0 | 0.5 |
Support tickets by topic
examples/topic-streams.jsonDetail: Support tickets by topic →{
"schemaVersion": 1,
"type": "time",
"title": "Support tickets by topic",
"source": "Illustrative fortnightly averages of tickets per week",
"showValues": false,
"width": 760,
"height": 400,
"panes": [
{
"valueAxis": {
"title": "Tickets per week"
},
"stack": "stream",
"layers": [
{
"mark": "area",
"name": "Billing",
"points": [
{
"time": "2026-01-05",
"value": 48
},
{
"time": "2026-01-19",
"value": 51
},
{
"time": "2026-02-02",
"value": 54
},
{
"time": "2026-02-16",
"value": 56
},
{
"time": "2026-03-02",
"value": 58
},
{
"time": "2026-03-16",
"value": 59
},
{
"time": "2026-03-30",
"value": 59
},
{
"time": "2026-04-13",
"value": 59
},
{
"time": "2026-04-27",
"value": 58
},
{
"time": "2026-05-11",
"value": 56
},
{
"time": "2026-05-25",
"value": 53
},
{
"time": "2026-06-08",
"value": 50
},
{
"time": "2026-06-22",
"value": 47
},
{
"time": "2026-07-06",
"value": 43
},
{
"time": "2026-07-20",
"value": 39
},
{
"time": "2026-08-03",
"value": 35
},
{
"time": "2026-08-17",
"value": 32
},
{
"time": "2026-08-31",
"value": 30
},
{
"time": "2026-09-14",
"value": 28
},
{
"time": "2026-09-28",
"value": 27
},
{
"time": "2026-10-12",
"value": 26
},
{
"time": "2026-10-26",
"value": 27
},
{
"time": "2026-11-09",
"value": 28
},
{
"time": "2026-11-23",
"value": 30
},
{
"time": "2026-12-07",
"value": 32
},
{
"time": "2026-12-21",
"value": 35
}
]
},
{
"mark": "area",
"name": "Login",
"points": [
{
"time": "2026-01-05",
"value": 38
},
{
"time": "2026-01-19",
"value": 38
},
{
"time": "2026-02-02",
"value": 38
},
{
"time": "2026-02-16",
"value": 37
},
{
"time": "2026-03-02",
"value": 37
},
{
"time": "2026-03-16",
"value": 35
},
{
"time": "2026-03-30",
"value": 34
},
{
"time": "2026-04-13",
"value": 32
},
{
"time": "2026-04-27",
"value": 30
},
{
"time": "2026-05-11",
"value": 29
},
{
"time": "2026-05-25",
"value": 28
},
{
"time": "2026-06-08",
"value": 27
},
{
"time": "2026-06-22",
"value": 26
},
{
"time": "2026-07-06",
"value": 26
},
{
"time": "2026-07-20",
"value": 26
},
{
"time": "2026-08-03",
"value": 27
},
{
"time": "2026-08-17",
"value": 28
},
{
"time": "2026-08-31",
"value": 30
},
{
"time": "2026-09-14",
"value": 32
},
{
"time": "2026-09-28",
"value": 34
},
{
"time": "2026-10-12",
"value": 36
},
{
"time": "2026-10-26",
"value": 38
},
{
"time": "2026-11-09",
"value": 40
},
{
"time": "2026-11-23",
"value": 42
},
{
"time": "2026-12-07",
"value": 44
},
{
"time": "2026-12-21",
"value": 45
}
]
},
{
"mark": "area",
"name": "Mobile app",
"points": [
{
"time": "2026-01-05",
"value": 15
},
{
"time": "2026-01-19",
"value": 15
},
{
"time": "2026-02-02",
"value": 15
},
{
"time": "2026-02-16",
"value": 15
},
{
"time": "2026-03-02",
"value": 16
},
{
"time": "2026-03-16",
"value": 16
},
{
"time": "2026-03-30",
"value": 17
},
{
"time": "2026-04-13",
"value": 18
},
{
"time": "2026-04-27",
"value": 19
},
{
"time": "2026-05-11",
"value": 21
},
{
"time": "2026-05-25",
"value": 23
},
{
"time": "2026-06-08",
"value": 25
},
{
"time": "2026-06-22",
"value": 28
},
{
"time": "2026-07-06",
"value": 31
},
{
"time": "2026-07-20",
"value": 34
},
{
"time": "2026-08-03",
"value": 36
},
{
"time": "2026-08-17",
"value": 39
},
{
"time": "2026-08-31",
"value": 42
},
{
"time": "2026-09-14",
"value": 44
},
{
"time": "2026-09-28",
"value": 46
},
{
"time": "2026-10-12",
"value": 48
},
{
"time": "2026-10-26",
"value": 49
},
{
"time": "2026-11-09",
"value": 50
},
{
"time": "2026-11-23",
"value": 51
},
{
"time": "2026-12-07",
"value": 52
},
{
"time": "2026-12-21",
"value": 52
}
]
},
{
"mark": "area",
"name": "Exports",
"points": [
{
"time": "2026-01-05",
"value": 15
},
{
"time": "2026-01-19",
"value": 14
},
{
"time": "2026-02-02",
"value": 13
},
{
"time": "2026-02-16",
"value": 14
},
{
"time": "2026-03-02",
"value": 15
},
{
"time": "2026-03-16",
"value": 17
},
{
"time": "2026-03-30",
"value": 19
},
{
"time": "2026-04-13",
"value": 21
},
{
"time": "2026-04-27",
"value": 24
},
{
"time": "2026-05-11",
"value": 26
},
{
"time": "2026-05-25",
"value": 29
},
{
"time": "2026-06-08",
"value": 31
},
{
"time": "2026-06-22",
"value": 32
},
{
"time": "2026-07-06",
"value": 33
},
{
"time": "2026-07-20",
"value": 34
},
{
"time": "2026-08-03",
"value": 33
},
{
"time": "2026-08-17",
"value": 32
},
{
"time": "2026-08-31",
"value": 31
},
{
"time": "2026-09-14",
"value": 29
},
{
"time": "2026-09-28",
"value": 26
},
{
"time": "2026-10-12",
"value": 23
},
{
"time": "2026-10-26",
"value": 20
},
{
"time": "2026-11-09",
"value": 17
},
{
"time": "2026-11-23",
"value": 14
},
{
"time": "2026-12-07",
"value": 11
},
{
"time": "2026-12-21",
"value": 9
}
]
}
]
}
],
"mobile": {
"width": 380,
"height": 440
}
}Source: Illustrative fortnightly averages of tickets per week
Show chart data
| Time | Billing | Login | Mobile app | Exports |
|---|---|---|---|---|
| 2026-01-05 | 48 | 38 | 15 | 15 |
| 2026-01-19 | 51 | 38 | 15 | 14 |
| 2026-02-02 | 54 | 38 | 15 | 13 |
| 2026-02-16 | 56 | 37 | 15 | 14 |
| 2026-03-02 | 58 | 37 | 16 | 15 |
| 2026-03-16 | 59 | 35 | 16 | 17 |
| 2026-03-30 | 59 | 34 | 17 | 19 |
| 2026-04-13 | 59 | 32 | 18 | 21 |
| 2026-04-27 | 58 | 30 | 19 | 24 |
| 2026-05-11 | 56 | 29 | 21 | 26 |
| 2026-05-25 | 53 | 28 | 23 | 29 |
| 2026-06-08 | 50 | 27 | 25 | 31 |
| 2026-06-22 | 47 | 26 | 28 | 32 |
| 2026-07-06 | 43 | 26 | 31 | 33 |
| 2026-07-20 | 39 | 26 | 34 | 34 |
| 2026-08-03 | 35 | 27 | 36 | 33 |
| 2026-08-17 | 32 | 28 | 39 | 32 |
| 2026-08-31 | 30 | 30 | 42 | 31 |
| 2026-09-14 | 28 | 32 | 44 | 29 |
| 2026-09-28 | 27 | 34 | 46 | 26 |
| 2026-10-12 | 26 | 36 | 48 | 23 |
| 2026-10-26 | 27 | 38 | 49 | 20 |
| 2026-11-09 | 28 | 40 | 50 | 17 |
| 2026-11-23 | 30 | 42 | 51 | 14 |
| 2026-12-07 | 32 | 44 | 52 | 11 |
| 2026-12-21 | 35 | 45 | 52 | 9 |
Small multiples
Emission pathways by sector
examples/emission-pathways.jsonDetail: Emission pathways by sector →{
"schemaVersion": 1,
"type": "multiples",
"title": "Emission pathways by sector",
"source": "Illustrative values, chartlet",
"height": 560,
"columns": 2,
"valueAxis": {
"title": "Gt CO₂ per year"
},
"timeAxis": {
"title": "Year"
},
"panes": [
{
"title": "Energy",
"layers": [
{
"mark": "line",
"name": "History",
"points": [
{
"time": "1990",
"value": 13.7
},
{
"time": "1993",
"value": 14.6
},
{
"time": "1996",
"value": 14.67
},
{
"time": "1999",
"value": 14.91
},
{
"time": "2002",
"value": 15.73
},
{
"time": "2005",
"value": 15.54
},
{
"time": "2008",
"value": 16.24
},
{
"time": "2011",
"value": 16.66
},
{
"time": "2014",
"value": 16.59
},
{
"time": "2017",
"value": 17.51
},
{
"time": "2020",
"value": 17.49
},
{
"time": "2023",
"value": 17.85
}
]
},
{
"mark": "line",
"name": "Low pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 17.96,
"lower": 17.76,
"upper": 18.16
},
{
"time": "2040",
"value": 14.47,
"lower": 14.07,
"upper": 14.87
},
{
"time": "2055",
"value": 10.98,
"lower": 10.38,
"upper": 11.58
},
{
"time": "2070",
"value": 7.48,
"lower": 6.68,
"upper": 8.28
},
{
"time": "2085",
"value": 3.99,
"lower": 2.99,
"upper": 4.99
},
{
"time": "2100",
"value": 0.5,
"lower": -0.7,
"upper": 1.7
}
]
},
{
"mark": "line",
"name": "High pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 17.96,
"lower": 17.76,
"upper": 18.16
},
{
"time": "2040",
"value": 18.17,
"lower": 17.57,
"upper": 18.77
},
{
"time": "2055",
"value": 18.38,
"lower": 17.38,
"upper": 19.38
},
{
"time": "2070",
"value": 18.58,
"lower": 17.18,
"upper": 19.98
},
{
"time": "2085",
"value": 18.79,
"lower": 16.99,
"upper": 20.59
},
{
"time": "2100",
"value": 19,
"lower": 16.8,
"upper": 21.2
}
]
},
{
"mark": "annotation",
"value": 0,
"label": "Net zero"
}
]
},
{
"title": "Industry",
"layers": [
{
"mark": "line",
"name": "History",
"points": [
{
"time": "1990",
"value": 5.7
},
{
"time": "1993",
"value": 6.39
},
{
"time": "1996",
"value": 6.25
},
{
"time": "1999",
"value": 6.28
},
{
"time": "2002",
"value": 6.89
},
{
"time": "2005",
"value": 6.49
},
{
"time": "2008",
"value": 6.98
},
{
"time": "2011",
"value": 7.19
},
{
"time": "2014",
"value": 6.91
},
{
"time": "2017",
"value": 7.62
},
{
"time": "2020",
"value": 7.39
},
{
"time": "2023",
"value": 7.54
}
]
},
{
"mark": "line",
"name": "Low pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 7.65,
"lower": 7.45,
"upper": 7.85
},
{
"time": "2040",
"value": 6.32,
"lower": 5.92,
"upper": 6.72
},
{
"time": "2055",
"value": 4.99,
"lower": 4.39,
"upper": 5.59
},
{
"time": "2070",
"value": 3.66,
"lower": 2.86,
"upper": 4.46
},
{
"time": "2085",
"value": 2.33,
"lower": 1.33,
"upper": 3.33
},
{
"time": "2100",
"value": 1,
"lower": -0.2,
"upper": 2.2
}
]
},
{
"mark": "line",
"name": "High pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 7.65,
"lower": 7.45,
"upper": 7.85
},
{
"time": "2040",
"value": 7.72,
"lower": 7.12,
"upper": 8.32
},
{
"time": "2055",
"value": 7.79,
"lower": 6.79,
"upper": 8.79
},
{
"time": "2070",
"value": 7.86,
"lower": 6.46,
"upper": 9.26
},
{
"time": "2085",
"value": 7.93,
"lower": 6.13,
"upper": 9.73
},
{
"time": "2100",
"value": 8,
"lower": 5.8,
"upper": 10.2
}
]
},
{
"mark": "annotation",
"value": 0,
"label": "Net zero"
}
]
},
{
"title": "Transport",
"layers": [
{
"mark": "line",
"name": "History",
"points": [
{
"time": "1990",
"value": 3.7
},
{
"time": "1993",
"value": 4.42
},
{
"time": "1996",
"value": 4.31
},
{
"time": "1999",
"value": 4.37
},
{
"time": "2002",
"value": 5.01
},
{
"time": "2005",
"value": 4.64
},
{
"time": "2008",
"value": 5.16
},
{
"time": "2011",
"value": 5.4
},
{
"time": "2014",
"value": 5.15
},
{
"time": "2017",
"value": 5.89
},
{
"time": "2020",
"value": 5.69
},
{
"time": "2023",
"value": 5.87
}
]
},
{
"mark": "line",
"name": "Low pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 5.98,
"lower": 5.78,
"upper": 6.18
},
{
"time": "2040",
"value": 4.84,
"lower": 4.44,
"upper": 5.24
},
{
"time": "2055",
"value": 3.71,
"lower": 3.11,
"upper": 4.31
},
{
"time": "2070",
"value": 2.57,
"lower": 1.77,
"upper": 3.37
},
{
"time": "2085",
"value": 1.44,
"lower": 0.44,
"upper": 2.44
},
{
"time": "2100",
"value": 0.3,
"lower": -0.9,
"upper": 1.5
}
]
},
{
"mark": "line",
"name": "High pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 5.98,
"lower": 5.78,
"upper": 6.18
},
{
"time": "2040",
"value": 6.18,
"lower": 5.58,
"upper": 6.78
},
{
"time": "2055",
"value": 6.39,
"lower": 5.39,
"upper": 7.39
},
{
"time": "2070",
"value": 6.59,
"lower": 5.19,
"upper": 7.99
},
{
"time": "2085",
"value": 6.8,
"lower": 5,
"upper": 8.6
},
{
"time": "2100",
"value": 7,
"lower": 4.8,
"upper": 9.2
}
]
},
{
"mark": "annotation",
"value": 0,
"label": "Net zero"
}
]
},
{
"title": "Buildings",
"layers": [
{
"mark": "line",
"name": "History",
"points": [
{
"time": "1990",
"value": 2.7
},
{
"time": "1993",
"value": 3.3
},
{
"time": "1996",
"value": 3.07
},
{
"time": "1999",
"value": 3.01
},
{
"time": "2002",
"value": 3.53
},
{
"time": "2005",
"value": 3.04
},
{
"time": "2008",
"value": 3.44
},
{
"time": "2011",
"value": 3.56
},
{
"time": "2014",
"value": 3.19
},
{
"time": "2017",
"value": 3.81
},
{
"time": "2020",
"value": 3.49
},
{
"time": "2023",
"value": 3.55
}
]
},
{
"mark": "line",
"name": "Low pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 3.66,
"lower": 3.46,
"upper": 3.86
},
{
"time": "2040",
"value": 2.97,
"lower": 2.57,
"upper": 3.37
},
{
"time": "2055",
"value": 2.28,
"lower": 1.68,
"upper": 2.88
},
{
"time": "2070",
"value": 1.58,
"lower": 0.78,
"upper": 2.38
},
{
"time": "2085",
"value": 0.89,
"lower": -0.11,
"upper": 1.89
},
{
"time": "2100",
"value": 0.2,
"lower": -1,
"upper": 1.4
}
]
},
{
"mark": "line",
"name": "High pathway",
"modeled": true,
"points": [
{
"time": "2025",
"value": 3.66,
"lower": 3.46,
"upper": 3.86
},
{
"time": "2040",
"value": 3.63,
"lower": 3.03,
"upper": 4.23
},
{
"time": "2055",
"value": 3.6,
"lower": 2.6,
"upper": 4.6
},
{
"time": "2070",
"value": 3.56,
"lower": 2.16,
"upper": 4.96
},
{
"time": "2085",
"value": 3.53,
"lower": 1.73,
"upper": 5.33
},
{
"time": "2100",
"value": 3.5,
"lower": 1.3,
"upper": 5.7
}
]
},
{
"mark": "annotation",
"value": 0,
"label": "Net zero"
}
]
}
]
}Source: Illustrative values, chartlet
Show chart data
| Time | Energy · History | Energy · Low pathway | Energy · Low pathway (lower) | Energy · Low pathway (upper) | Energy · High pathway | Energy · High pathway (lower) | Energy · High pathway (upper) | Industry · History | Industry · Low pathway | Industry · Low pathway (lower) | Industry · Low pathway (upper) | Industry · High pathway | Industry · High pathway (lower) | Industry · High pathway (upper) | Transport · History | Transport · Low pathway | Transport · Low pathway (lower) | Transport · Low pathway (upper) | Transport · High pathway | Transport · High pathway (lower) | Transport · High pathway (upper) | Buildings · History | Buildings · Low pathway | Buildings · Low pathway (lower) | Buildings · Low pathway (upper) | Buildings · High pathway | Buildings · High pathway (lower) | Buildings · High pathway (upper) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1990 | 13.7 | Missing | Missing | Missing | Missing | Missing | Missing | 5.7 | Missing | Missing | Missing | Missing | Missing | Missing | 3.7 | Missing | Missing | Missing | Missing | Missing | Missing | 2.7 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1993 | 14.6 | Missing | Missing | Missing | Missing | Missing | Missing | 6.39 | Missing | Missing | Missing | Missing | Missing | Missing | 4.42 | Missing | Missing | Missing | Missing | Missing | Missing | 3.3 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1996 | 14.67 | Missing | Missing | Missing | Missing | Missing | Missing | 6.25 | Missing | Missing | Missing | Missing | Missing | Missing | 4.31 | Missing | Missing | Missing | Missing | Missing | Missing | 3.07 | Missing | Missing | Missing | Missing | Missing | Missing |
| 1999 | 14.91 | Missing | Missing | Missing | Missing | Missing | Missing | 6.28 | Missing | Missing | Missing | Missing | Missing | Missing | 4.37 | Missing | Missing | Missing | Missing | Missing | Missing | 3.01 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2002 | 15.73 | Missing | Missing | Missing | Missing | Missing | Missing | 6.89 | Missing | Missing | Missing | Missing | Missing | Missing | 5.01 | Missing | Missing | Missing | Missing | Missing | Missing | 3.53 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2005 | 15.54 | Missing | Missing | Missing | Missing | Missing | Missing | 6.49 | Missing | Missing | Missing | Missing | Missing | Missing | 4.64 | Missing | Missing | Missing | Missing | Missing | Missing | 3.04 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2008 | 16.24 | Missing | Missing | Missing | Missing | Missing | Missing | 6.98 | Missing | Missing | Missing | Missing | Missing | Missing | 5.16 | Missing | Missing | Missing | Missing | Missing | Missing | 3.44 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2011 | 16.66 | Missing | Missing | Missing | Missing | Missing | Missing | 7.19 | Missing | Missing | Missing | Missing | Missing | Missing | 5.4 | Missing | Missing | Missing | Missing | Missing | Missing | 3.56 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2014 | 16.59 | Missing | Missing | Missing | Missing | Missing | Missing | 6.91 | Missing | Missing | Missing | Missing | Missing | Missing | 5.15 | Missing | Missing | Missing | Missing | Missing | Missing | 3.19 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2017 | 17.51 | Missing | Missing | Missing | Missing | Missing | Missing | 7.62 | Missing | Missing | Missing | Missing | Missing | Missing | 5.89 | Missing | Missing | Missing | Missing | Missing | Missing | 3.81 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2020 | 17.49 | Missing | Missing | Missing | Missing | Missing | Missing | 7.39 | Missing | Missing | Missing | Missing | Missing | Missing | 5.69 | Missing | Missing | Missing | Missing | Missing | Missing | 3.49 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2023 | 17.85 | Missing | Missing | Missing | Missing | Missing | Missing | 7.54 | Missing | Missing | Missing | Missing | Missing | Missing | 5.87 | Missing | Missing | Missing | Missing | Missing | Missing | 3.55 | Missing | Missing | Missing | Missing | Missing | Missing |
| 2025 | Missing | 17.96 | 17.76 | 18.16 | 17.96 | 17.76 | 18.16 | Missing | 7.65 | 7.45 | 7.85 | 7.65 | 7.45 | 7.85 | Missing | 5.98 | 5.78 | 6.18 | 5.98 | 5.78 | 6.18 | Missing | 3.66 | 3.46 | 3.86 | 3.66 | 3.46 | 3.86 |
| 2040 | Missing | 14.47 | 14.07 | 14.87 | 18.17 | 17.57 | 18.77 | Missing | 6.32 | 5.92 | 6.72 | 7.72 | 7.12 | 8.32 | Missing | 4.84 | 4.44 | 5.24 | 6.18 | 5.58 | 6.78 | Missing | 2.97 | 2.57 | 3.37 | 3.63 | 3.03 | 4.23 |
| 2055 | Missing | 10.98 | 10.38 | 11.58 | 18.38 | 17.38 | 19.38 | Missing | 4.99 | 4.39 | 5.59 | 7.79 | 6.79 | 8.79 | Missing | 3.71 | 3.11 | 4.31 | 6.39 | 5.39 | 7.39 | Missing | 2.28 | 1.68 | 2.88 | 3.6 | 2.6 | 4.6 |
| 2070 | Missing | 7.48 | 6.68 | 8.28 | 18.58 | 17.18 | 19.98 | Missing | 3.66 | 2.86 | 4.46 | 7.86 | 6.46 | 9.26 | Missing | 2.57 | 1.77 | 3.37 | 6.59 | 5.19 | 7.99 | Missing | 1.58 | 0.78 | 2.38 | 3.56 | 2.16 | 4.96 |
| 2085 | Missing | 3.99 | 2.99 | 4.99 | 18.79 | 16.99 | 20.59 | Missing | 2.33 | 1.33 | 3.33 | 7.93 | 6.13 | 9.73 | Missing | 1.44 | 0.44 | 2.44 | 6.8 | 5 | 8.6 | Missing | 0.89 | −0.11 | 1.89 | 3.53 | 1.73 | 5.33 |
| 2100 | Missing | 0.5 | −0.7 | 1.7 | 19 | 16.8 | 21.2 | Missing | 1 | −0.2 | 2.2 | 8 | 5.8 | 10.2 | Missing | 0.3 | −0.9 | 1.5 | 7 | 4.8 | 9.2 | Missing | 0.2 | −1 | 1.4 | 3.5 | 1.3 | 5.7 |
Indicators of growth since 1900
examples/acceleration-indicators.jsonDetail: Indicators of growth since 1900 →{
"schemaVersion": 1,
"type": "multiples",
"title": "Indicators of growth since 1900",
"source": "Sample data, rounded",
"independentAxes": true,
"columns": 2,
"height": 520,
"valueAxis": {
"thousandsSeparator": true
},
"panes": [
{
"title": "Population (millions)",
"layers": [
{
"mark": "line",
"name": "Value",
"points": [
{
"time": "1900",
"value": 1650
},
{
"time": "1925",
"value": 2000
},
{
"time": "1950",
"value": 2500
},
{
"time": "1975",
"value": 4060
},
{
"time": "2000",
"value": 6150
},
{
"time": "2025",
"value": 8100
}
]
}
]
},
{
"title": "Primary energy (PWh)",
"layers": [
{
"mark": "line",
"name": "Value",
"points": [
{
"time": "1900",
"value": 12
},
{
"time": "1925",
"value": 20
},
{
"time": "1950",
"value": 28
},
{
"time": "1975",
"value": 75
},
{
"time": "2000",
"value": 117
},
{
"time": "2025",
"value": 180
}
]
}
]
},
{
"title": "Water withdrawal (km³)",
"layers": [
{
"mark": "line",
"name": "Value",
"points": [
{
"time": "1900",
"value": 580
},
{
"time": "1925",
"value": 800
},
{
"time": "1950",
"value": 1300
},
{
"time": "1975",
"value": 2600
},
{
"time": "2000",
"value": 3700
},
{
"time": "2025",
"value": 4100
}
]
}
]
},
{
"title": "Fertilizer use (Mt)",
"layers": [
{
"mark": "line",
"name": "Value",
"points": [
{
"time": "1900",
"value": 1
},
{
"time": "1925",
"value": 3
},
{
"time": "1950",
"value": 14
},
{
"time": "1975",
"value": 95
},
{
"time": "2000",
"value": 135
},
{
"time": "2025",
"value": 190
}
]
}
]
}
]
}Source: Sample data, rounded
Show chart data
| Time | Population (millions) · Value | Primary energy (PWh) · Value | Water withdrawal (km³) · Value | Fertilizer use (Mt) · Value |
|---|---|---|---|---|
| 1900 | 1,650 | 12 | 580 | 1 |
| 1925 | 2,000 | 20 | 800 | 3 |
| 1950 | 2,500 | 28 | 1,300 | 14 |
| 1975 | 4,060 | 75 | 2,600 | 95 |
| 2000 | 6,150 | 117 | 3,700 | 135 |
| 2025 | 8,100 | 180 | 4,100 | 190 |
Web frameworks compared
examples/framework-benchmarks.jsonDetail: Web frameworks compared →{
"schemaVersion": 1,
"type": "multiples",
"title": "Web frameworks compared",
"source": "Illustrative values",
"width": 960,
"height": 420,
"showValues": true,
"columns": 3,
"categories": [
"Rust (Axum)",
"Go (Gin)",
"Node (Fastify)",
"Python (FastAPI)"
],
"panes": [
{
"title": "Requests per second",
"note": "higher is better",
"values": [
118000,
96000,
64000,
18000
],
"valueAxis": {
"unit": "req/s",
"thousandsSeparator": true
}
},
{
"title": "Memory under load",
"note": "lower is better",
"values": [
24,
41,
118,
96
],
"valueAxis": {
"unit": "MB"
}
},
{
"title": "Cold start",
"note": "lower is better",
"values": [
3,
5,
45,
210
],
"valueAxis": {
"unit": "ms",
"scale": "log"
}
}
],
"mobile": {
"width": 360,
"height": 960,
"columns": 1
}
}Source: Illustrative values
Show chart data
| Category | Requests per second (req/s) | Memory under load (MB) | Cold start (ms) |
|---|---|---|---|
| Rust (Axum) | 118,000 | 24 | 3 |
| Go (Gin) | 96,000 | 41 | 5 |
| Node (Fastify) | 64,000 | 118 | 45 |
| Python (FastAPI) | 18,000 | 96 | 210 |
Which cause matches the warming?
examples/warming-causes.jsonDetail: Which cause matches the warming? →{
"schemaVersion": 1,
"type": "multiples",
"title": "Which cause matches the warming?",
"source": "Sample data, simplified",
"width": 800,
"height": 420,
"columns": 3,
"showValues": false,
"valueAxis": {
"title": "°C",
"min": -0.5,
"max": 1.5
},
"mobile": {
"width": 360,
"height": 760,
"columns": 1
},
"panes": [
{
"title": "Sun",
"note": "Does not match: solar activity has not risen since 1960",
"layers": [
{
"mark": "line",
"name": "Measured",
"points": [
{
"time": "1900",
"value": -0.05
},
{
"time": "1910",
"value": 0.15
},
{
"time": "1920",
"value": 0.15
},
{
"time": "1930",
"value": 0.35
},
{
"time": "1940",
"value": 0.35
},
{
"time": "1950",
"value": 0.55
},
{
"time": "1960",
"value": 0.55
},
{
"time": "1970",
"value": 0.75
},
{
"time": "1980",
"value": 0.75
},
{
"time": "1990",
"value": 0.95
},
{
"time": "2000",
"value": 0.95
},
{
"time": "2010",
"value": 1.15
},
{
"time": "2020",
"value": 1.15
}
]
},
{
"mark": "line",
"name": "Model",
"points": [
{
"time": "1900",
"value": 0.1
},
{
"time": "1910",
"value": 0.1
},
{
"time": "1920",
"value": 0.1
},
{
"time": "1930",
"value": 0.1
},
{
"time": "1940",
"value": 0.1
},
{
"time": "1950",
"value": 0.1
},
{
"time": "1960",
"value": 0.05
},
{
"time": "1970",
"value": 0.05
},
{
"time": "1980",
"value": 0.05
},
{
"time": "1990",
"value": 0.05
},
{
"time": "2000",
"value": 0.05
},
{
"time": "2010",
"value": 0.05
},
{
"time": "2020",
"value": 0.05
}
]
}
]
},
{
"title": "Volcanoes",
"note": "Does not match: only short cooling",
"layers": [
{
"mark": "line",
"name": "Measured",
"points": [
{
"time": "1900",
"value": -0.05
},
{
"time": "1910",
"value": 0.15
},
{
"time": "1920",
"value": 0.15
},
{
"time": "1930",
"value": 0.35
},
{
"time": "1940",
"value": 0.35
},
{
"time": "1950",
"value": 0.55
},
{
"time": "1960",
"value": 0.55
},
{
"time": "1970",
"value": 0.75
},
{
"time": "1980",
"value": 0.75
},
{
"time": "1990",
"value": 0.95
},
{
"time": "2000",
"value": 0.95
},
{
"time": "2010",
"value": 1.15
},
{
"time": "2020",
"value": 1.15
}
]
},
{
"mark": "line",
"name": "Model",
"points": [
{
"time": "1900",
"value": -0.1
},
{
"time": "1910",
"value": -0.1
},
{
"time": "1920",
"value": -0.1
},
{
"time": "1930",
"value": -0.1
},
{
"time": "1940",
"value": -0.1
},
{
"time": "1950",
"value": -0.1
},
{
"time": "1960",
"value": -0.1
},
{
"time": "1970",
"value": -0.1
},
{
"time": "1980",
"value": -0.1
},
{
"time": "1990",
"value": -0.1
},
{
"time": "2000",
"value": -0.1
},
{
"time": "2010",
"value": -0.1
},
{
"time": "2020",
"value": -0.1
}
]
}
]
},
{
"title": "Greenhouse gases",
"note": "Matches the measured warming",
"noteEmphasis": true,
"layers": [
{
"mark": "line",
"name": "Measured",
"points": [
{
"time": "1900",
"value": -0.05
},
{
"time": "1910",
"value": 0.15
},
{
"time": "1920",
"value": 0.15
},
{
"time": "1930",
"value": 0.35
},
{
"time": "1940",
"value": 0.35
},
{
"time": "1950",
"value": 0.55
},
{
"time": "1960",
"value": 0.55
},
{
"time": "1970",
"value": 0.75
},
{
"time": "1980",
"value": 0.75
},
{
"time": "1990",
"value": 0.95
},
{
"time": "2000",
"value": 0.95
},
{
"time": "2010",
"value": 1.15
},
{
"time": "2020",
"value": 1.15
}
]
},
{
"mark": "line",
"name": "Model",
"points": [
{
"time": "1900",
"value": 0
},
{
"time": "1910",
"value": 0.11
},
{
"time": "1920",
"value": 0.22
},
{
"time": "1930",
"value": 0.33
},
{
"time": "1940",
"value": 0.43
},
{
"time": "1950",
"value": 0.54
},
{
"time": "1960",
"value": 0.65
},
{
"time": "1970",
"value": 0.76
},
{
"time": "1980",
"value": 0.87
},
{
"time": "1990",
"value": 0.98
},
{
"time": "2000",
"value": 1.08
},
{
"time": "2010",
"value": 1.19
},
{
"time": "2020",
"value": 1.3
}
]
}
]
}
]
}Source: Sample data, simplified
Show chart data
| Time | Sun · Measured | Sun · Model | Volcanoes · Measured | Volcanoes · Model | Greenhouse gases · Measured | Greenhouse gases · Model |
|---|---|---|---|---|---|---|
| 1900 | −0.05 | 0.1 | −0.05 | −0.1 | −0.05 | 0 |
| 1910 | 0.15 | 0.1 | 0.15 | −0.1 | 0.15 | 0.11 |
| 1920 | 0.15 | 0.1 | 0.15 | −0.1 | 0.15 | 0.22 |
| 1930 | 0.35 | 0.1 | 0.35 | −0.1 | 0.35 | 0.33 |
| 1940 | 0.35 | 0.1 | 0.35 | −0.1 | 0.35 | 0.43 |
| 1950 | 0.55 | 0.1 | 0.55 | −0.1 | 0.55 | 0.54 |
| 1960 | 0.55 | 0.05 | 0.55 | −0.1 | 0.55 | 0.65 |
| 1970 | 0.75 | 0.05 | 0.75 | −0.1 | 0.75 | 0.76 |
| 1980 | 0.75 | 0.05 | 0.75 | −0.1 | 0.75 | 0.87 |
| 1990 | 0.95 | 0.05 | 0.95 | −0.1 | 0.95 | 0.98 |
| 2000 | 0.95 | 0.05 | 0.95 | −0.1 | 0.95 | 1.08 |
| 2010 | 1.15 | 0.05 | 1.15 | −0.1 | 1.15 | 1.19 |
| 2020 | 1.15 | 0.05 | 1.15 | −0.1 | 1.15 | 1.3 |
Stripes, calendars and timelines
Warming stripes 1850–2024
examples/warming-stripes.jsonDetail: Warming stripes 1850–2024 →{
"schemaVersion": 1,
"type": "stripes",
"title": "Warming stripes 1850–2024",
"source": "Illustrative values, chartlet",
"height": 240,
"stripes": {
"firstYear": 1850,
"values": [
-0.38,
-0.47,
-0.31,
-0.27,
-0.43,
-0.4,
null,
-0.22,
-0.36,
-0.25,
-0.11,
-0.26,
-0.39,
-0.25,
-0.22,
-0.42,
-0.45,
-0.28,
-0.3,
-0.45,
-0.34,
-0.16,
-0.25,
-0.36,
-0.2,
-0.12,
-0.31,
-0.38,
-0.23,
-0.26,
-0.46,
-0.42,
-0.25,
-0.33,
-0.45,
-0.29,
-0.15,
-0.28,
-0.34,
-0.16,
-0.15,
-0.35,
-0.36,
-0.21,
-0.3,
-0.48,
-0.37,
-0.24,
-0.36,
-0.42,
-0.23,
-0.15,
-0.31,
-0.3,
-0.12,
-0.18,
-0.37,
-0.32,
-0.2,
-0.34,
-0.47,
-0.31,
-0.23,
-0.37,
-0.37,
-0.16,
-0.15,
-0.31,
-0.24,
-0.09,
-0.21,
-0.37,
-0.26,
-0.19,
-0.37,
-0.43,
-0.24,
-0.21,
-0.37,
-0.3,
-0.1,
-0.15,
-0.29,
-0.17,
-0.06,
-0.23,
-0.33,
-0.19,
-0.18,
-0.37,
-0.36,
-0.17,
-0.2,
-0.33,
-0.2,
-0.03,
-0.14,
-0.24,
-0.08,
-0.03,
-0.23,
-0.27,
-0.12,
-0.16,
-0.34,
-0.26,
-0.09,
-0.18,
-0.27,
-0.09,
0.03,
-0.12,
-0.16,
0.01,
0,
-0.21,
-0.18,
-0.04,
-0.14,
-0.29,
-0.15,
-0.01,
-0.14,
-0.17,
0.03,
0.09,
-0.08,
-0.05,
0.11,
0.03,
-0.16,
-0.07,
0.04,
-0.11,
-0.2,
-0.01,
0.07,
-0.08,
-0.05,
0.16,
0.15,
-0.01,
0.07,
0.21,
0.07,
-0.07,
0.06,
0.12,
-0.05,
-0.07,
0.13,
0.15,
0.01,
0.1,
0.3,
0.21,
0.09,
0.22,
0.3,
0.12,
0.04,
0.2,
0.21,
0.03,
0.08,
0.28,
0.24,
0.12,
0.28,
0.43,
0.29,
0.21,
0.38,
0.4,
0.2
],
"reference": 0,
"min": -1.6,
"max": 1.6
}
}Source: Illustrative values, chartlet
Show chart data
| Year | Value |
|---|---|
| 1850 | −0.38 |
| 1851 | −0.47 |
| 1852 | −0.31 |
| 1853 | −0.27 |
| 1854 | −0.43 |
| 1855 | −0.4 |
| 1856 | Missing |
| 1857 | −0.22 |
| 1858 | −0.36 |
| 1859 | −0.25 |
| 1860 | −0.11 |
| 1861 | −0.26 |
| 1862 | −0.39 |
| 1863 | −0.25 |
| 1864 | −0.22 |
| 1865 | −0.42 |
| 1866 | −0.45 |
| 1867 | −0.28 |
| 1868 | −0.3 |
| 1869 | −0.45 |
| 1870 | −0.34 |
| 1871 | −0.16 |
| 1872 | −0.25 |
| 1873 | −0.36 |
| 1874 | −0.2 |
| 1875 | −0.12 |
| 1876 | −0.31 |
| 1877 | −0.38 |
| 1878 | −0.23 |
| 1879 | −0.26 |
| 1880 | −0.46 |
| 1881 | −0.42 |
| 1882 | −0.25 |
| 1883 | −0.33 |
| 1884 | −0.45 |
| 1885 | −0.29 |
| 1886 | −0.15 |
| 1887 | −0.28 |
| 1888 | −0.34 |
| 1889 | −0.16 |
| 1890 | −0.15 |
| 1891 | −0.35 |
| 1892 | −0.36 |
| 1893 | −0.21 |
| 1894 | −0.3 |
| 1895 | −0.48 |
| 1896 | −0.37 |
| 1897 | −0.24 |
| 1898 | −0.36 |
| 1899 | −0.42 |
| 1900 | −0.23 |
| 1901 | −0.15 |
| 1902 | −0.31 |
| 1903 | −0.3 |
| 1904 | −0.12 |
| 1905 | −0.18 |
| 1906 | −0.37 |
| 1907 | −0.32 |
| 1908 | −0.2 |
| 1909 | −0.34 |
| 1910 | −0.47 |
| 1911 | −0.31 |
| 1912 | −0.23 |
| 1913 | −0.37 |
| 1914 | −0.37 |
| 1915 | −0.16 |
| 1916 | −0.15 |
| 1917 | −0.31 |
| 1918 | −0.24 |
| 1919 | −0.09 |
| 1920 | −0.21 |
| 1921 | −0.37 |
| 1922 | −0.26 |
| 1923 | −0.19 |
| 1924 | −0.37 |
| 1925 | −0.43 |
| 1926 | −0.24 |
| 1927 | −0.21 |
| 1928 | −0.37 |
| 1929 | −0.3 |
| 1930 | −0.1 |
| 1931 | −0.15 |
| 1932 | −0.29 |
| 1933 | −0.17 |
| 1934 | −0.06 |
| 1935 | −0.23 |
| 1936 | −0.33 |
| 1937 | −0.19 |
| 1938 | −0.18 |
| 1939 | −0.37 |
| 1940 | −0.36 |
| 1941 | −0.17 |
| 1942 | −0.2 |
| 1943 | −0.33 |
| 1944 | −0.2 |
| 1945 | −0.03 |
| 1946 | −0.14 |
| 1947 | −0.24 |
| 1948 | −0.08 |
| 1949 | −0.03 |
| 1950 | −0.23 |
| 1951 | −0.27 |
| 1952 | −0.12 |
| 1953 | −0.16 |
| 1954 | −0.34 |
| 1955 | −0.26 |
| 1956 | −0.09 |
| 1957 | −0.18 |
| 1958 | −0.27 |
| 1959 | −0.09 |
| 1960 | 0.03 |
| 1961 | −0.12 |
| 1962 | −0.16 |
| 1963 | 0.01 |
| 1964 | 0 |
| 1965 | −0.21 |
| 1966 | −0.18 |
| 1967 | −0.04 |
| 1968 | −0.14 |
| 1969 | −0.29 |
| 1970 | −0.15 |
| 1971 | −0.01 |
| 1972 | −0.14 |
| 1973 | −0.17 |
| 1974 | 0.03 |
| 1975 | 0.09 |
| 1976 | −0.08 |
| 1977 | −0.05 |
| 1978 | 0.11 |
| 1979 | 0.03 |
| 1980 | −0.16 |
| 1981 | −0.07 |
| 1982 | 0.04 |
| 1983 | −0.11 |
| 1984 | −0.2 |
| 1985 | −0.01 |
| 1986 | 0.07 |
| 1987 | −0.08 |
| 1988 | −0.05 |
| 1989 | 0.16 |
| 1990 | 0.15 |
| 1991 | −0.01 |
| 1992 | 0.07 |
| 1993 | 0.21 |
| 1994 | 0.07 |
| 1995 | −0.07 |
| 1996 | 0.06 |
| 1997 | 0.12 |
| 1998 | −0.05 |
| 1999 | −0.07 |
| 2000 | 0.13 |
| 2001 | 0.15 |
| 2002 | 0.01 |
| 2003 | 0.1 |
| 2004 | 0.3 |
| 2005 | 0.21 |
| 2006 | 0.09 |
| 2007 | 0.22 |
| 2008 | 0.3 |
| 2009 | 0.12 |
| 2010 | 0.04 |
| 2011 | 0.2 |
| 2012 | 0.21 |
| 2013 | 0.03 |
| 2014 | 0.08 |
| 2015 | 0.28 |
| 2016 | 0.24 |
| 2017 | 0.12 |
| 2018 | 0.28 |
| 2019 | 0.43 |
| 2020 | 0.29 |
| 2021 | 0.21 |
| 2022 | 0.38 |
| 2023 | 0.4 |
| 2024 | 0.2 |
Daily temperature anomaly 2024
examples/daily-anomaly-calendar.jsonDetail: Daily temperature anomaly 2024 →{
"schemaVersion": 1,
"type": "calendar",
"title": "Daily temperature anomaly 2024",
"source": "Illustrative values, chartlet",
"height": 420,
"calendar": {
"year": 2024,
"days": [
{
"date": "2024-01-01",
"value": 0.56
},
{
"date": "2024-01-02",
"value": 0.72
},
{
"date": "2024-01-03",
"value": 0.87
},
{
"date": "2024-01-04",
"value": 1.02
},
{
"date": "2024-01-05",
"value": 1.16
},
{
"date": "2024-01-06",
"value": 1.3
},
{
"date": "2024-01-07",
"value": 1.42
},
{
"date": "2024-01-08",
"value": 1.54
},
{
"date": "2024-01-09",
"value": 1.64
},
{
"date": "2024-01-10",
"value": 1.73
},
{
"date": "2024-01-11",
"value": 1.81
},
{
"date": "2024-01-12",
"value": 1.87
},
{
"date": "2024-01-13",
"value": 1.92
},
{
"date": "2024-01-14",
"value": 1.95
},
{
"date": "2024-01-15",
"value": 1.97
},
{
"date": "2024-01-16",
"value": 1.97
},
{
"date": "2024-01-17",
"value": 1.96
},
{
"date": "2024-01-18",
"value": 1.93
},
{
"date": "2024-01-19",
"value": 1.89
},
{
"date": "2024-01-20",
"value": 1.84
},
{
"date": "2024-01-21",
"value": 1.77
},
{
"date": "2024-01-22",
"value": 1.69
},
{
"date": "2024-01-23",
"value": 1.6
},
{
"date": "2024-01-24",
"value": 1.51
},
{
"date": "2024-01-25",
"value": 1.4
},
{
"date": "2024-01-26",
"value": 1.3
},
{
"date": "2024-01-27",
"value": 1.18
},
{
"date": "2024-01-28",
"value": 1.06
},
{
"date": "2024-01-29",
"value": 0.95
},
{
"date": "2024-01-30",
"value": 0.83
},
{
"date": "2024-01-31",
"value": 0.72
},
{
"date": "2024-02-01",
"value": 0.6
},
{
"date": "2024-02-02",
"value": 0.5
},
{
"date": "2024-02-03",
"value": 0.4
},
{
"date": "2024-02-04",
"value": 0.31
},
{
"date": "2024-02-05",
"value": 0.23
},
{
"date": "2024-02-06",
"value": 0.15
},
{
"date": "2024-02-07",
"value": 0.09
},
{
"date": "2024-02-08",
"value": 0.05
},
{
"date": "2024-02-09",
"value": 0.01
},
{
"date": "2024-02-10",
"value": -0.01
},
{
"date": "2024-02-11",
"value": -0.02
},
{
"date": "2024-02-12",
"value": -0.01
},
{
"date": "2024-02-13",
"value": 0.01
},
{
"date": "2024-02-14",
"value": 0.04
},
{
"date": "2024-02-15",
"value": 0.09
},
{
"date": "2024-02-16",
"value": 0.15
},
{
"date": "2024-02-17",
"value": 0.22
},
{
"date": "2024-02-18",
"value": 0.31
},
{
"date": "2024-02-19",
"value": 0.4
},
{
"date": "2024-02-20",
"value": 0.5
},
{
"date": "2024-02-21",
"value": 0.61
},
{
"date": "2024-02-22",
"value": 0.73
},
{
"date": "2024-02-23",
"value": 0.85
},
{
"date": "2024-02-24",
"value": 0.98
},
{
"date": "2024-02-25",
"value": 1.1
},
{
"date": "2024-02-26",
"value": 1.23
},
{
"date": "2024-02-27",
"value": 1.36
},
{
"date": "2024-02-28",
"value": 1.48
},
{
"date": "2024-02-29",
"value": 1.6
},
{
"date": "2024-03-01",
"value": 1.71
},
{
"date": "2024-03-02",
"value": 1.81
},
{
"date": "2024-03-03",
"value": 1.9
},
{
"date": "2024-03-04",
"value": 1.99
},
{
"date": "2024-03-05",
"value": 2.06
},
{
"date": "2024-03-06",
"value": 2.12
},
{
"date": "2024-03-07",
"value": 2.17
},
{
"date": "2024-03-08",
"value": 2.2
},
{
"date": "2024-03-09",
"value": 2.21
},
{
"date": "2024-03-10",
"value": 2.21
},
{
"date": "2024-03-11",
"value": 2.2
},
{
"date": "2024-03-12",
"value": 2.17
},
{
"date": "2024-03-13",
"value": 2.13
},
{
"date": "2024-03-14",
"value": 2.07
},
{
"date": "2024-03-15",
"value": 1.99
},
{
"date": "2024-03-16",
"value": 1.91
},
{
"date": "2024-03-17",
"value": 1.81
},
{
"date": "2024-03-18",
"value": 1.69
},
{
"date": "2024-03-19",
"value": 1.57
},
{
"date": "2024-03-20",
"value": 1.44
},
{
"date": "2024-03-21",
"value": 1.3
},
{
"date": "2024-03-22",
"value": 1.15
},
{
"date": "2024-03-23",
"value": 1
},
{
"date": "2024-03-24",
"value": 0.84
},
{
"date": "2024-03-25",
"value": 0.69
},
{
"date": "2024-03-26",
"value": 0.53
},
{
"date": "2024-03-27",
"value": 0.38
},
{
"date": "2024-03-28",
"value": 0.22
},
{
"date": "2024-03-29",
"value": 0.08
},
{
"date": "2024-03-30",
"value": -0.06
},
{
"date": "2024-03-31",
"value": -0.2
},
{
"date": "2024-04-01",
"value": -0.32
},
{
"date": "2024-04-02",
"value": -0.43
},
{
"date": "2024-04-03",
"value": -0.54
},
{
"date": "2024-04-04",
"value": -0.62
},
{
"date": "2024-04-05",
"value": -0.7
},
{
"date": "2024-04-06",
"value": -0.76
},
{
"date": "2024-04-07",
"value": -0.81
},
{
"date": "2024-04-08",
"value": -0.84
},
{
"date": "2024-04-16",
"value": -0.6
},
{
"date": "2024-04-17",
"value": -0.51
},
{
"date": "2024-04-18",
"value": -0.42
},
{
"date": "2024-04-19",
"value": -0.32
},
{
"date": "2024-04-20",
"value": -0.22
},
{
"date": "2024-04-21",
"value": -0.11
},
{
"date": "2024-04-22",
"value": 0
},
{
"date": "2024-04-23",
"value": 0.11
},
{
"date": "2024-04-24",
"value": 0.22
},
{
"date": "2024-04-25",
"value": 0.33
},
{
"date": "2024-04-26",
"value": 0.43
},
{
"date": "2024-04-27",
"value": 0.53
},
{
"date": "2024-04-28",
"value": 0.62
},
{
"date": "2024-04-29",
"value": 0.7
},
{
"date": "2024-04-30",
"value": 0.77
},
{
"date": "2024-05-01",
"value": 0.83
},
{
"date": "2024-05-02",
"value": 0.88
},
{
"date": "2024-05-03",
"value": 0.92
},
{
"date": "2024-05-04",
"value": 0.94
},
{
"date": "2024-05-05",
"value": 0.95
},
{
"date": "2024-05-06",
"value": 0.95
},
{
"date": "2024-05-07",
"value": 0.93
},
{
"date": "2024-05-08",
"value": 0.9
},
{
"date": "2024-05-09",
"value": 0.85
},
{
"date": "2024-05-10",
"value": 0.79
},
{
"date": "2024-05-11",
"value": 0.72
},
{
"date": "2024-05-12",
"value": 0.63
},
{
"date": "2024-05-13",
"value": 0.54
},
{
"date": "2024-05-14",
"value": 0.43
},
{
"date": "2024-05-15",
"value": 0.32
},
{
"date": "2024-05-16",
"value": 0.19
},
{
"date": "2024-05-17",
"value": 0.07
},
{
"date": "2024-05-18",
"value": -0.07
},
{
"date": "2024-05-19",
"value": -0.2
},
{
"date": "2024-05-20",
"value": -0.34
},
{
"date": "2024-05-21",
"value": -0.48
},
{
"date": "2024-05-22",
"value": -0.61
},
{
"date": "2024-05-23",
"value": -0.74
},
{
"date": "2024-05-24",
"value": -0.87
},
{
"date": "2024-05-25",
"value": -0.99
},
{
"date": "2024-05-26",
"value": -1.1
},
{
"date": "2024-05-27",
"value": -1.2
},
{
"date": "2024-05-28",
"value": -1.3
},
{
"date": "2024-05-29",
"value": -1.38
},
{
"date": "2024-05-30",
"value": -1.44
},
{
"date": "2024-05-31",
"value": -1.5
},
{
"date": "2024-06-01",
"value": -1.53
},
{
"date": "2024-06-02",
"value": -1.56
},
{
"date": "2024-06-03",
"value": -1.57
},
{
"date": "2024-06-04",
"value": -1.56
},
{
"date": "2024-06-05",
"value": -1.53
},
{
"date": "2024-06-06",
"value": -1.5
},
{
"date": "2024-06-07",
"value": -1.44
},
{
"date": "2024-06-08",
"value": -1.37
},
{
"date": "2024-06-09",
"value": -1.29
},
{
"date": "2024-06-10",
"value": -1.2
},
{
"date": "2024-06-11",
"value": -1.09
},
{
"date": "2024-06-12",
"value": -0.97
},
{
"date": "2024-06-13",
"value": -0.85
},
{
"date": "2024-06-14",
"value": -0.71
},
{
"date": "2024-06-15",
"value": -0.57
},
{
"date": "2024-06-16",
"value": -0.43
},
{
"date": "2024-06-17",
"value": -0.28
},
{
"date": "2024-06-18",
"value": -0.13
},
{
"date": "2024-06-19",
"value": 0.02
},
{
"date": "2024-06-20",
"value": 0.17
},
{
"date": "2024-06-21",
"value": 0.32
},
{
"date": "2024-06-22",
"value": 0.46
},
{
"date": "2024-06-23",
"value": 0.6
},
{
"date": "2024-06-24",
"value": 0.72
},
{
"date": "2024-06-25",
"value": 0.84
},
{
"date": "2024-06-26",
"value": 0.95
},
{
"date": "2024-06-27",
"value": 1.04
},
{
"date": "2024-06-28",
"value": 1.13
},
{
"date": "2024-06-29",
"value": 1.2
},
{
"date": "2024-06-30",
"value": 1.26
},
{
"date": "2024-07-01",
"value": 1.3
},
{
"date": "2024-07-02",
"value": 1.33
},
{
"date": "2024-07-03",
"value": 1.34
},
{
"date": "2024-07-04",
"value": 1.34
},
{
"date": "2024-07-05",
"value": 1.33
},
{
"date": "2024-07-06",
"value": 1.3
},
{
"date": "2024-07-07",
"value": 1.26
},
{
"date": "2024-07-08",
"value": 1.2
},
{
"date": "2024-07-09",
"value": 1.14
},
{
"date": "2024-07-10",
"value": 1.06
},
{
"date": "2024-07-11",
"value": 0.98
},
{
"date": "2024-07-12",
"value": 0.89
},
{
"date": "2024-07-13",
"value": 0.79
},
{
"date": "2024-07-14",
"value": 0.69
},
{
"date": "2024-07-15",
"value": 0.58
},
{
"date": "2024-07-16",
"value": 0.47
},
{
"date": "2024-07-17",
"value": 0.36
},
{
"date": "2024-07-18",
"value": 0.26
},
{
"date": "2024-07-19",
"value": 0.16
},
{
"date": "2024-07-20",
"value": 0.06
},
{
"date": "2024-07-21",
"value": -0.03
},
{
"date": "2024-07-22",
"value": -0.12
},
{
"date": "2024-07-23",
"value": -0.19
},
{
"date": "2024-07-24",
"value": -0.26
},
{
"date": "2024-07-25",
"value": -0.31
},
{
"date": "2024-07-26",
"value": -0.35
},
{
"date": "2024-07-27",
"value": -0.38
},
{
"date": "2024-07-28",
"value": -0.39
},
{
"date": "2024-07-29",
"value": -0.39
},
{
"date": "2024-07-30",
"value": -0.38
},
{
"date": "2024-07-31",
"value": -0.35
},
{
"date": "2024-08-01",
"value": -0.31
},
{
"date": "2024-08-02",
"value": -0.25
},
{
"date": "2024-08-03",
"value": -0.18
},
{
"date": "2024-08-04",
"value": -0.1
},
{
"date": "2024-08-05",
"value": 0
},
{
"date": "2024-08-06",
"value": 0.1
},
{
"date": "2024-08-07",
"value": 0.22
},
{
"date": "2024-08-08",
"value": 0.34
},
{
"date": "2024-08-09",
"value": 0.48
},
{
"date": "2024-08-10",
"value": 0.61
},
{
"date": "2024-08-11",
"value": 0.76
},
{
"date": "2024-08-12",
"value": 0.9
},
{
"date": "2024-08-13",
"value": 1.05
},
{
"date": "2024-08-14",
"value": 1.2
},
{
"date": "2024-08-15",
"value": 1.34
},
{
"date": "2024-08-16",
"value": 1.48
},
{
"date": "2024-08-17",
"value": 1.62
},
{
"date": "2024-08-18",
"value": 1.75
},
{
"date": "2024-08-19",
"value": 1.87
},
{
"date": "2024-08-20",
"value": 1.98
},
{
"date": "2024-08-21",
"value": 2.08
},
{
"date": "2024-08-22",
"value": 2.17
},
{
"date": "2024-08-23",
"value": 2.24
},
{
"date": "2024-08-24",
"value": 2.3
},
{
"date": "2024-08-25",
"value": 2.35
},
{
"date": "2024-08-26",
"value": 2.38
},
{
"date": "2024-08-27",
"value": 2.39
},
{
"date": "2024-08-28",
"value": 2.39
},
{
"date": "2024-08-29",
"value": 2.38
},
{
"date": "2024-08-30",
"value": 2.35
},
{
"date": "2024-08-31",
"value": 2.3
},
{
"date": "2024-09-01",
"value": 2.24
},
{
"date": "2024-09-02",
"value": 2.17
},
{
"date": "2024-09-03",
"value": 2.08
},
{
"date": "2024-09-04",
"value": 1.98
},
{
"date": "2024-09-05",
"value": 1.87
},
{
"date": "2024-09-06",
"value": 1.75
},
{
"date": "2024-09-07",
"value": 1.63
},
{
"date": "2024-09-08",
"value": 1.5
},
{
"date": "2024-09-09",
"value": 1.36
},
{
"date": "2024-09-10",
"value": 1.22
},
{
"date": "2024-09-11",
"value": 1.07
},
{
"date": "2024-09-12",
"value": 0.93
},
{
"date": "2024-09-13",
"value": 0.79
},
{
"date": "2024-09-14",
"value": 0.65
},
{
"date": "2024-09-15",
"value": 0.52
},
{
"date": "2024-09-16",
"value": 0.4
},
{
"date": "2024-09-17",
"value": 0.28
},
{
"date": "2024-09-18",
"value": 0.17
},
{
"date": "2024-09-19",
"value": 0.07
},
{
"date": "2024-09-20",
"value": -0.02
},
{
"date": "2024-09-21",
"value": -0.09
},
{
"date": "2024-09-22",
"value": -0.15
},
{
"date": "2024-09-23",
"value": -0.2
},
{
"date": "2024-09-24",
"value": -0.23
},
{
"date": "2024-09-25",
"value": -0.26
},
{
"date": "2024-09-26",
"value": -0.26
},
{
"date": "2024-09-27",
"value": -0.25
},
{
"date": "2024-09-28",
"value": -0.23
},
{
"date": "2024-09-29",
"value": -0.2
},
{
"date": "2024-09-30",
"value": -0.15
},
{
"date": "2024-10-01",
"value": -0.09
},
{
"date": "2024-10-02",
"value": -0.02
},
{
"date": "2024-10-03",
"value": 0.06
},
{
"date": "2024-10-04",
"value": 0.15
},
{
"date": "2024-10-05",
"value": 0.24
},
{
"date": "2024-10-06",
"value": 0.35
},
{
"date": "2024-10-07",
"value": 0.45
},
{
"date": "2024-10-08",
"value": 0.56
},
{
"date": "2024-10-09",
"value": 0.67
},
{
"date": "2024-10-10",
"value": 0.78
},
{
"date": "2024-10-11",
"value": 0.88
},
{
"date": "2024-10-12",
"value": 0.98
},
{
"date": "2024-10-13",
"value": 1.08
},
{
"date": "2024-10-14",
"value": 1.17
},
{
"date": "2024-10-15",
"value": 1.25
},
{
"date": "2024-10-16",
"value": 1.32
},
{
"date": "2024-10-17",
"value": 1.38
},
{
"date": "2024-10-18",
"value": 1.43
},
{
"date": "2024-10-19",
"value": 1.47
},
{
"date": "2024-10-20",
"value": 1.49
},
{
"date": "2024-10-21",
"value": 1.5
},
{
"date": "2024-10-22",
"value": 1.5
},
{
"date": "2024-10-23",
"value": 1.48
},
{
"date": "2024-10-24",
"value": 1.44
},
{
"date": "2024-10-25",
"value": 1.39
},
{
"date": "2024-10-26",
"value": 1.33
},
{
"date": "2024-10-27",
"value": 1.25
},
{
"date": "2024-10-28",
"value": 1.16
},
{
"date": "2024-10-29",
"value": 1.06
},
{
"date": "2024-10-30",
"value": 0.95
},
{
"date": "2024-10-31",
"value": 0.82
},
{
"date": "2024-11-01",
"value": 0.69
},
{
"date": "2024-11-02",
"value": 0.55
},
{
"date": "2024-11-03",
"value": 0.4
},
{
"date": "2024-11-04",
"value": 0.25
},
{
"date": "2024-11-05",
"value": 0.1
},
{
"date": "2024-11-06",
"value": -0.05
},
{
"date": "2024-11-07",
"value": -0.21
},
{
"date": "2024-11-08",
"value": -0.36
},
{
"date": "2024-11-09",
"value": -0.51
},
{
"date": "2024-11-10",
"value": -0.65
},
{
"date": "2024-11-11",
"value": -0.79
},
{
"date": "2024-11-12",
"value": -0.91
},
{
"date": "2024-11-13",
"value": -1.03
},
{
"date": "2024-11-14",
"value": -1.14
},
{
"date": "2024-11-15",
"value": -1.23
},
{
"date": "2024-11-16",
"value": -1.32
},
{
"date": "2024-11-17",
"value": -1.38
},
{
"date": "2024-11-18",
"value": -1.44
},
{
"date": "2024-11-19",
"value": -1.47
},
{
"date": "2024-11-20",
"value": -1.5
},
{
"date": "2024-11-21",
"value": -1.5
},
{
"date": "2024-11-22",
"value": -1.5
},
{
"date": "2024-11-23",
"value": -1.47
},
{
"date": "2024-11-24",
"value": -1.43
},
{
"date": "2024-11-25",
"value": -1.38
},
{
"date": "2024-11-26",
"value": -1.32
},
{
"date": "2024-11-27",
"value": -1.24
},
{
"date": "2024-11-28",
"value": -1.15
},
{
"date": "2024-11-29",
"value": -1.05
},
{
"date": "2024-11-30",
"value": -0.94
},
{
"date": "2024-12-01",
"value": -0.82
},
{
"date": "2024-12-02",
"value": -0.7
},
{
"date": "2024-12-03",
"value": -0.57
},
{
"date": "2024-12-04",
"value": -0.44
},
{
"date": "2024-12-05",
"value": -0.31
},
{
"date": "2024-12-06",
"value": -0.17
},
{
"date": "2024-12-07",
"value": -0.04
},
{
"date": "2024-12-08",
"value": 0.08
},
{
"date": "2024-12-09",
"value": 0.2
},
{
"date": "2024-12-10",
"value": 0.32
},
{
"date": "2024-12-11",
"value": 0.42
},
{
"date": "2024-12-12",
"value": 0.52
},
{
"date": "2024-12-13",
"value": 0.61
},
{
"date": "2024-12-14",
"value": 0.68
},
{
"date": "2024-12-15",
"value": 0.75
},
{
"date": "2024-12-16",
"value": 0.8
},
{
"date": "2024-12-17",
"value": 0.84
},
{
"date": "2024-12-18",
"value": 0.86
},
{
"date": "2024-12-19",
"value": 0.87
},
{
"date": "2024-12-20",
"value": 0.86
},
{
"date": "2024-12-21",
"value": 0.84
},
{
"date": "2024-12-22",
"value": 0.81
},
{
"date": "2024-12-23",
"value": 0.77
},
{
"date": "2024-12-24",
"value": 0.71
},
{
"date": "2024-12-25",
"value": 0.64
},
{
"date": "2024-12-26",
"value": 0.56
},
{
"date": "2024-12-27",
"value": 0.47
},
{
"date": "2024-12-28",
"value": 0.38
},
{
"date": "2024-12-29",
"value": 0.28
},
{
"date": "2024-12-30",
"value": 0.17
},
{
"date": "2024-12-31",
"value": 0.06
}
],
"reference": 0,
"min": -2.4,
"max": 2.4
}
}Source: Illustrative values, chartlet
Show chart data
| Date | Value |
|---|---|
| 2024-01-01 | 0.56 |
| 2024-01-02 | 0.72 |
| 2024-01-03 | 0.87 |
| 2024-01-04 | 1.02 |
| 2024-01-05 | 1.16 |
| 2024-01-06 | 1.3 |
| 2024-01-07 | 1.42 |
| 2024-01-08 | 1.54 |
| 2024-01-09 | 1.64 |
| 2024-01-10 | 1.73 |
| 2024-01-11 | 1.81 |
| 2024-01-12 | 1.87 |
| 2024-01-13 | 1.92 |
| 2024-01-14 | 1.95 |
| 2024-01-15 | 1.97 |
| 2024-01-16 | 1.97 |
| 2024-01-17 | 1.96 |
| 2024-01-18 | 1.93 |
| 2024-01-19 | 1.89 |
| 2024-01-20 | 1.84 |
| 2024-01-21 | 1.77 |
| 2024-01-22 | 1.69 |
| 2024-01-23 | 1.6 |
| 2024-01-24 | 1.51 |
| 2024-01-25 | 1.4 |
| 2024-01-26 | 1.3 |
| 2024-01-27 | 1.18 |
| 2024-01-28 | 1.06 |
| 2024-01-29 | 0.95 |
| 2024-01-30 | 0.83 |
| 2024-01-31 | 0.72 |
| 2024-02-01 | 0.6 |
| 2024-02-02 | 0.5 |
| 2024-02-03 | 0.4 |
| 2024-02-04 | 0.31 |
| 2024-02-05 | 0.23 |
| 2024-02-06 | 0.15 |
| 2024-02-07 | 0.09 |
| 2024-02-08 | 0.05 |
| 2024-02-09 | 0.01 |
| 2024-02-10 | −0.01 |
| 2024-02-11 | −0.02 |
| 2024-02-12 | −0.01 |
| 2024-02-13 | 0.01 |
| 2024-02-14 | 0.04 |
| 2024-02-15 | 0.09 |
| 2024-02-16 | 0.15 |
| 2024-02-17 | 0.22 |
| 2024-02-18 | 0.31 |
| 2024-02-19 | 0.4 |
| 2024-02-20 | 0.5 |
| 2024-02-21 | 0.61 |
| 2024-02-22 | 0.73 |
| 2024-02-23 | 0.85 |
| 2024-02-24 | 0.98 |
| 2024-02-25 | 1.1 |
| 2024-02-26 | 1.23 |
| 2024-02-27 | 1.36 |
| 2024-02-28 | 1.48 |
| 2024-02-29 | 1.6 |
| 2024-03-01 | 1.71 |
| 2024-03-02 | 1.81 |
| 2024-03-03 | 1.9 |
| 2024-03-04 | 1.99 |
| 2024-03-05 | 2.06 |
| 2024-03-06 | 2.12 |
| 2024-03-07 | 2.17 |
| 2024-03-08 | 2.2 |
| 2024-03-09 | 2.21 |
| 2024-03-10 | 2.21 |
| 2024-03-11 | 2.2 |
| 2024-03-12 | 2.17 |
| 2024-03-13 | 2.13 |
| 2024-03-14 | 2.07 |
| 2024-03-15 | 1.99 |
| 2024-03-16 | 1.91 |
| 2024-03-17 | 1.81 |
| 2024-03-18 | 1.69 |
| 2024-03-19 | 1.57 |
| 2024-03-20 | 1.44 |
| 2024-03-21 | 1.3 |
| 2024-03-22 | 1.15 |
| 2024-03-23 | 1 |
| 2024-03-24 | 0.84 |
| 2024-03-25 | 0.69 |
| 2024-03-26 | 0.53 |
| 2024-03-27 | 0.38 |
| 2024-03-28 | 0.22 |
| 2024-03-29 | 0.08 |
| 2024-03-30 | −0.06 |
| 2024-03-31 | −0.2 |
| 2024-04-01 | −0.32 |
| 2024-04-02 | −0.43 |
| 2024-04-03 | −0.54 |
| 2024-04-04 | −0.62 |
| 2024-04-05 | −0.7 |
| 2024-04-06 | −0.76 |
| 2024-04-07 | −0.81 |
| 2024-04-08 | −0.84 |
| 2024-04-16 | −0.6 |
| 2024-04-17 | −0.51 |
| 2024-04-18 | −0.42 |
| 2024-04-19 | −0.32 |
| 2024-04-20 | −0.22 |
| 2024-04-21 | −0.11 |
| 2024-04-22 | 0 |
| 2024-04-23 | 0.11 |
| 2024-04-24 | 0.22 |
| 2024-04-25 | 0.33 |
| 2024-04-26 | 0.43 |
| 2024-04-27 | 0.53 |
| 2024-04-28 | 0.62 |
| 2024-04-29 | 0.7 |
| 2024-04-30 | 0.77 |
| 2024-05-01 | 0.83 |
| 2024-05-02 | 0.88 |
| 2024-05-03 | 0.92 |
| 2024-05-04 | 0.94 |
| 2024-05-05 | 0.95 |
| 2024-05-06 | 0.95 |
| 2024-05-07 | 0.93 |
| 2024-05-08 | 0.9 |
| 2024-05-09 | 0.85 |
| 2024-05-10 | 0.79 |
| 2024-05-11 | 0.72 |
| 2024-05-12 | 0.63 |
| 2024-05-13 | 0.54 |
| 2024-05-14 | 0.43 |
| 2024-05-15 | 0.32 |
| 2024-05-16 | 0.19 |
| 2024-05-17 | 0.07 |
| 2024-05-18 | −0.07 |
| 2024-05-19 | −0.2 |
| 2024-05-20 | −0.34 |
| 2024-05-21 | −0.48 |
| 2024-05-22 | −0.61 |
| 2024-05-23 | −0.74 |
| 2024-05-24 | −0.87 |
| 2024-05-25 | −0.99 |
| 2024-05-26 | −1.1 |
| 2024-05-27 | −1.2 |
| 2024-05-28 | −1.3 |
| 2024-05-29 | −1.38 |
| 2024-05-30 | −1.44 |
| 2024-05-31 | −1.5 |
| 2024-06-01 | −1.53 |
| 2024-06-02 | −1.56 |
| 2024-06-03 | −1.57 |
| 2024-06-04 | −1.56 |
| 2024-06-05 | −1.53 |
| 2024-06-06 | −1.5 |
| 2024-06-07 | −1.44 |
| 2024-06-08 | −1.37 |
| 2024-06-09 | −1.29 |
| 2024-06-10 | −1.2 |
| 2024-06-11 | −1.09 |
| 2024-06-12 | −0.97 |
| 2024-06-13 | −0.85 |
| 2024-06-14 | −0.71 |
| 2024-06-15 | −0.57 |
| 2024-06-16 | −0.43 |
| 2024-06-17 | −0.28 |
| 2024-06-18 | −0.13 |
| 2024-06-19 | 0.02 |
| 2024-06-20 | 0.17 |
| 2024-06-21 | 0.32 |
| 2024-06-22 | 0.46 |
| 2024-06-23 | 0.6 |
| 2024-06-24 | 0.72 |
| 2024-06-25 | 0.84 |
| 2024-06-26 | 0.95 |
| 2024-06-27 | 1.04 |
| 2024-06-28 | 1.13 |
| 2024-06-29 | 1.2 |
| 2024-06-30 | 1.26 |
| 2024-07-01 | 1.3 |
| 2024-07-02 | 1.33 |
| 2024-07-03 | 1.34 |
| 2024-07-04 | 1.34 |
| 2024-07-05 | 1.33 |
| 2024-07-06 | 1.3 |
| 2024-07-07 | 1.26 |
| 2024-07-08 | 1.2 |
| 2024-07-09 | 1.14 |
| 2024-07-10 | 1.06 |
| 2024-07-11 | 0.98 |
| 2024-07-12 | 0.89 |
| 2024-07-13 | 0.79 |
| 2024-07-14 | 0.69 |
| 2024-07-15 | 0.58 |
| 2024-07-16 | 0.47 |
| 2024-07-17 | 0.36 |
| 2024-07-18 | 0.26 |
| 2024-07-19 | 0.16 |
| 2024-07-20 | 0.06 |
| 2024-07-21 | −0.03 |
| 2024-07-22 | −0.12 |
| 2024-07-23 | −0.19 |
| 2024-07-24 | −0.26 |
| 2024-07-25 | −0.31 |
| 2024-07-26 | −0.35 |
| 2024-07-27 | −0.38 |
| 2024-07-28 | −0.39 |
| 2024-07-29 | −0.39 |
| 2024-07-30 | −0.38 |
| 2024-07-31 | −0.35 |
| 2024-08-01 | −0.31 |
| 2024-08-02 | −0.25 |
| 2024-08-03 | −0.18 |
| 2024-08-04 | −0.1 |
| 2024-08-05 | 0 |
| 2024-08-06 | 0.1 |
| 2024-08-07 | 0.22 |
| 2024-08-08 | 0.34 |
| 2024-08-09 | 0.48 |
| 2024-08-10 | 0.61 |
| 2024-08-11 | 0.76 |
| 2024-08-12 | 0.9 |
| 2024-08-13 | 1.05 |
| 2024-08-14 | 1.2 |
| 2024-08-15 | 1.34 |
| 2024-08-16 | 1.48 |
| 2024-08-17 | 1.62 |
| 2024-08-18 | 1.75 |
| 2024-08-19 | 1.87 |
| 2024-08-20 | 1.98 |
| 2024-08-21 | 2.08 |
| 2024-08-22 | 2.17 |
| 2024-08-23 | 2.24 |
| 2024-08-24 | 2.3 |
| 2024-08-25 | 2.35 |
| 2024-08-26 | 2.38 |
| 2024-08-27 | 2.39 |
| 2024-08-28 | 2.39 |
| 2024-08-29 | 2.38 |
| 2024-08-30 | 2.35 |
| 2024-08-31 | 2.3 |
| 2024-09-01 | 2.24 |
| 2024-09-02 | 2.17 |
| 2024-09-03 | 2.08 |
| 2024-09-04 | 1.98 |
| 2024-09-05 | 1.87 |
| 2024-09-06 | 1.75 |
| 2024-09-07 | 1.63 |
| 2024-09-08 | 1.5 |
| 2024-09-09 | 1.36 |
| 2024-09-10 | 1.22 |
| 2024-09-11 | 1.07 |
| 2024-09-12 | 0.93 |
| 2024-09-13 | 0.79 |
| 2024-09-14 | 0.65 |
| 2024-09-15 | 0.52 |
| 2024-09-16 | 0.4 |
| 2024-09-17 | 0.28 |
| 2024-09-18 | 0.17 |
| 2024-09-19 | 0.07 |
| 2024-09-20 | −0.02 |
| 2024-09-21 | −0.09 |
| 2024-09-22 | −0.15 |
| 2024-09-23 | −0.2 |
| 2024-09-24 | −0.23 |
| 2024-09-25 | −0.26 |
| 2024-09-26 | −0.26 |
| 2024-09-27 | −0.25 |
| 2024-09-28 | −0.23 |
| 2024-09-29 | −0.2 |
| 2024-09-30 | −0.15 |
| 2024-10-01 | −0.09 |
| 2024-10-02 | −0.02 |
| 2024-10-03 | 0.06 |
| 2024-10-04 | 0.15 |
| 2024-10-05 | 0.24 |
| 2024-10-06 | 0.35 |
| 2024-10-07 | 0.45 |
| 2024-10-08 | 0.56 |
| 2024-10-09 | 0.67 |
| 2024-10-10 | 0.78 |
| 2024-10-11 | 0.88 |
| 2024-10-12 | 0.98 |
| 2024-10-13 | 1.08 |
| 2024-10-14 | 1.17 |
| 2024-10-15 | 1.25 |
| 2024-10-16 | 1.32 |
| 2024-10-17 | 1.38 |
| 2024-10-18 | 1.43 |
| 2024-10-19 | 1.47 |
| 2024-10-20 | 1.49 |
| 2024-10-21 | 1.5 |
| 2024-10-22 | 1.5 |
| 2024-10-23 | 1.48 |
| 2024-10-24 | 1.44 |
| 2024-10-25 | 1.39 |
| 2024-10-26 | 1.33 |
| 2024-10-27 | 1.25 |
| 2024-10-28 | 1.16 |
| 2024-10-29 | 1.06 |
| 2024-10-30 | 0.95 |
| 2024-10-31 | 0.82 |
| 2024-11-01 | 0.69 |
| 2024-11-02 | 0.55 |
| 2024-11-03 | 0.4 |
| 2024-11-04 | 0.25 |
| 2024-11-05 | 0.1 |
| 2024-11-06 | −0.05 |
| 2024-11-07 | −0.21 |
| 2024-11-08 | −0.36 |
| 2024-11-09 | −0.51 |
| 2024-11-10 | −0.65 |
| 2024-11-11 | −0.79 |
| 2024-11-12 | −0.91 |
| 2024-11-13 | −1.03 |
| 2024-11-14 | −1.14 |
| 2024-11-15 | −1.23 |
| 2024-11-16 | −1.32 |
| 2024-11-17 | −1.38 |
| 2024-11-18 | −1.44 |
| 2024-11-19 | −1.47 |
| 2024-11-20 | −1.5 |
| 2024-11-21 | −1.5 |
| 2024-11-22 | −1.5 |
| 2024-11-23 | −1.47 |
| 2024-11-24 | −1.43 |
| 2024-11-25 | −1.38 |
| 2024-11-26 | −1.32 |
| 2024-11-27 | −1.24 |
| 2024-11-28 | −1.15 |
| 2024-11-29 | −1.05 |
| 2024-11-30 | −0.94 |
| 2024-12-01 | −0.82 |
| 2024-12-02 | −0.7 |
| 2024-12-03 | −0.57 |
| 2024-12-04 | −0.44 |
| 2024-12-05 | −0.31 |
| 2024-12-06 | −0.17 |
| 2024-12-07 | −0.04 |
| 2024-12-08 | 0.08 |
| 2024-12-09 | 0.2 |
| 2024-12-10 | 0.32 |
| 2024-12-11 | 0.42 |
| 2024-12-12 | 0.52 |
| 2024-12-13 | 0.61 |
| 2024-12-14 | 0.68 |
| 2024-12-15 | 0.75 |
| 2024-12-16 | 0.8 |
| 2024-12-17 | 0.84 |
| 2024-12-18 | 0.86 |
| 2024-12-19 | 0.87 |
| 2024-12-20 | 0.86 |
| 2024-12-21 | 0.84 |
| 2024-12-22 | 0.81 |
| 2024-12-23 | 0.77 |
| 2024-12-24 | 0.71 |
| 2024-12-25 | 0.64 |
| 2024-12-26 | 0.56 |
| 2024-12-27 | 0.47 |
| 2024-12-28 | 0.38 |
| 2024-12-29 | 0.28 |
| 2024-12-30 | 0.17 |
| 2024-12-31 | 0.06 |
Product roadmap 2027
examples/product-roadmap.jsonDetail: Product roadmap 2027 →{
"schemaVersion": 1,
"type": "timeline",
"title": "Product roadmap 2027",
"source": "Illustrative plan",
"width": 900,
"height": 480,
"showValues": true,
"timeline": {
"items": [
{
"id": "discovery",
"label": "Discovery",
"start": "2027-01-11",
"end": "2027-04-02",
"group": "Discovery",
"rollup": [
"research",
"design"
]
},
{
"id": "research",
"label": "User research",
"start": "2027-01-11",
"end": "2027-02-19",
"group": "Discovery",
"progress": 1
},
{
"id": "design",
"label": "Design",
"start": "2027-02-22",
"end": "2027-04-02",
"group": "Discovery",
"after": [
"research"
],
"progress": 0.35
},
{
"id": "alpha",
"label": "Alpha build",
"start": "2027-04-05",
"end": "2027-06-11",
"group": "Build",
"after": [
"design"
]
},
{
"id": "review",
"label": "Security review",
"start": "2027-06-14",
"end": "2027-07-09",
"group": "Build",
"after": [
"alpha"
]
},
{
"id": "beta",
"label": "Beta",
"start": "2027-07-12",
"end": "2027-09-03",
"group": "Launch",
"after": [
"review"
]
},
{
"id": "freeze",
"label": "Feature freeze",
"at": "2027-07-30",
"group": "Launch",
"after": [
"review"
]
},
{
"id": "release",
"label": "General availability",
"at": "2027-09-20",
"group": "Launch",
"after": [
"beta",
"freeze"
]
}
],
"markers": [
{
"label": "Today",
"at": "2027-03-08"
}
]
},
"mobile": {
"width": 400,
"height": 480
}
}Source: Illustrative plan
Show chart data
| Item | Kind | Start | End | Group | After | Progress |
|---|---|---|---|---|---|---|
| Discovery | Phase | 2027-01-11 | 2027-04-02 | Discovery | 68% done | |
| User research | Phase | 2027-01-11 | 2027-02-19 | Discovery | 100% done | |
| Design | Phase | 2027-02-22 | 2027-04-02 | Discovery | User research | 35% done |
| Alpha build | Phase | 2027-04-05 | 2027-06-11 | Build | Design | |
| Security review | Phase | 2027-06-14 | 2027-07-09 | Build | Alpha build | |
| Beta | Phase | 2027-07-12 | 2027-09-03 | Launch | Security review | |
| Feature freeze | Milestone | 2027-07-30 | Launch | Security review | ||
| General availability | Milestone | 2027-09-20 | Launch | Beta, Feature freeze |
Ranges and distributions
Contributions to warming
examples/warming-contributions.jsonDetail: Contributions to warming →{
"schemaVersion": 1,
"type": "rangebar",
"orientation": "horizontal",
"title": "Contributions to warming",
"source": "Illustrative values, chartlet",
"valueAxis": {
"title": "°C"
},
"ranges": [
{
"label": "Observed",
"low": 0.9,
"high": 1.2,
"mid": 1.05
},
{
"label": "Human influence",
"low": 0.8,
"high": 1.3,
"mid": 1.05,
"modeled": true
},
{
"label": "Greenhouse gases",
"low": 1,
"high": 2,
"mid": 1.5,
"modeled": true
},
{
"label": "Other human drivers",
"low": -0.8,
"high": 0,
"mid": -0.4,
"modeled": true
},
{
"label": "Natural drivers",
"low": -0.1,
"high": 0.1,
"mid": 0,
"modeled": true
}
]
}Source: Illustrative values, chartlet
Show chart data
| Category | Low | Mid | High |
|---|---|---|---|
| Observed | 0.9 | 1.05 | 1.2 |
| Human influence (modelled) | 0.8 | 1.05 | 1.3 |
| Greenhouse gases (modelled) | 1 | 1.5 | 2 |
| Other human drivers (modelled) | −0.8 | −0.4 | 0 |
| Natural drivers (modelled) | −0.1 | 0 | 0.1 |
Soil animals under one square metre
examples/soil-animals.jsonDetail: Soil animals under one square metre →{
"schemaVersion": 1,
"type": "rangebar",
"title": "Soil animals under one square metre",
"source": "Sample data, rounded",
"orientation": "horizontal",
"valueAxis": {
"title": "Individuals per square metre",
"scale": "log",
"thousandsSeparator": true
},
"showValues": false,
"ranges": [
{
"label": "Nematodes",
"low": 1000000,
"high": 20000000,
"group": "Microfauna"
},
{
"label": "Rotifers",
"low": 25000,
"high": 600000,
"group": "Microfauna"
},
{
"label": "Springtails",
"low": 10000,
"high": 400000,
"group": "Mesofauna"
},
{
"label": "Mites",
"low": 20000,
"high": 400000,
"group": "Mesofauna"
},
{
"label": "Potworms",
"low": 3000,
"high": 300000,
"group": "Mesofauna"
},
{
"label": "Millipedes",
"low": 20,
"high": 700,
"group": "Macrofauna"
},
{
"label": "Centipedes",
"low": 20,
"high": 400,
"group": "Macrofauna"
},
{
"label": "Earthworms",
"low": 10,
"high": 1000,
"mid": 120,
"group": "Macrofauna"
}
]
}Source: Sample data, rounded
Show chart data
| Category | Low | Mid | High |
|---|---|---|---|
| Nematodes (Microfauna) | 1,000,000 | Missing | 20,000,000 |
| Rotifers (Microfauna) | 25,000 | Missing | 600,000 |
| Springtails (Mesofauna) | 10,000 | Missing | 400,000 |
| Mites (Mesofauna) | 20,000 | Missing | 400,000 |
| Potworms (Mesofauna) | 3,000 | Missing | 300,000 |
| Millipedes (Macrofauna) | 20 | Missing | 700 |
| Centipedes (Macrofauna) | 20 | Missing | 400 |
| Earthworms (Macrofauna) | 10 | 120 | 1,000 |
Effect of the intervention on systolic blood pressure
examples/trial-effects.jsonDetail: Effect of the intervention on systolic blood pressure →{
"schemaVersion": 1,
"type": "rangebar",
"orientation": "horizontal",
"title": "Effect of the intervention on systolic blood pressure",
"source": "Illustrative meta-analysis",
"width": 820,
"height": 380,
"showValues": true,
"valueAxis": {
"title": "Difference in mmHg (negative favors the intervention)",
"min": -12,
"max": 6
},
"references": [
{
"label": "No effect",
"value": 0
}
],
"ranges": [
{
"label": "Alvarez 2018 (n=240)",
"low": -7.8,
"high": -1.2,
"mid": -4.5,
"weight": 24
},
{
"label": "Berg 2019 (n=120)",
"low": -9.9,
"high": 1.7,
"mid": -4.1,
"weight": 11
},
{
"label": "Chen 2020 (n=410)",
"low": -5.4,
"high": -0.2,
"mid": -2.8,
"weight": 41
},
{
"label": "Dubois 2021 (n=95)",
"low": -6.5,
"high": 4.1,
"mid": -1.2,
"weight": 9
},
{
"label": "Evans 2022 (n=180)",
"low": -8.6,
"high": -0.4,
"mid": -4.5,
"weight": 15
},
{
"label": "Overall (random effects)",
"low": -4.7,
"high": -1.9,
"mid": -3.3,
"summary": true
}
],
"mobile": {
"width": 400,
"height": 420
}
}Source: Illustrative meta-analysis
Show chart data
| Category | Low | Mid | High | Weight |
|---|---|---|---|---|
| Alvarez 2018 (n=240) | −7.8 | −4.5 | −1.2 | 24 |
| Berg 2019 (n=120) | −9.9 | −4.1 | 1.7 | 11 |
| Chen 2020 (n=410) | −5.4 | −2.8 | −0.2 | 41 |
| Dubois 2021 (n=95) | −6.5 | −1.2 | 4.1 | 9 |
| Evans 2022 (n=180) | −8.6 | −4.5 | −0.4 | 15 |
| Overall (random effects) (summary) | −4.7 | −3.3 | −1.9 | Missing |
Response time by endpoint
examples/response-times.jsonDetail: Response time by endpoint →{
"schemaVersion": 1,
"type": "boxplot",
"title": "Response time by endpoint",
"source": "Illustrative measurements",
"width": 760,
"height": 420,
"showValues": true,
"valueAxis": {
"title": "Milliseconds"
},
"boxes": [
{
"label": "Search",
"values": [
42,
45,
47,
48,
50,
52,
53,
55,
58,
61,
64,
140
]
},
{
"label": "Checkout",
"values": [
88,
92,
95,
97,
101,
104,
108,
112,
118,
125,
131,
138
]
},
{
"label": "Profile",
"values": [
18,
19,
20,
21,
22,
22,
23,
24,
26,
27,
29,
33
]
},
{
"label": "Report export",
"min": 90,
"q1": 130,
"median": 160,
"q3": 210,
"max": 300,
"outliers": [
380,
450
]
}
],
"mobile": {
"width": 400,
"height": 420
}
}Source: Illustrative measurements
Show chart data
| Category | Minimum | Q1 | Median | Q3 | Maximum | Outliers |
|---|---|---|---|---|---|---|
| Search | 42 | 47.75 | 52.5 | 58.75 | 64 | 140 |
| Checkout | 88 | 96.5 | 106 | 119.75 | 138 | |
| Profile | 18 | 20.75 | 22.5 | 26.25 | 33 | |
| Report export | 90 | 130 | 160 | 210 | 300 | 380, 450 |
Response time by endpoint and region
examples/latency-by-region.jsonDetail: Response time by endpoint and region →{
"schemaVersion": 1,
"type": "boxplot",
"title": "Response time by endpoint and region",
"source": "Illustrative measurements",
"width": 780,
"height": 440,
"valueAxis": {
"title": "Milliseconds"
},
"showMean": true,
"boxes": [
{
"label": "Search EU",
"group": "Europe",
"values": [
42.4,
49.3,
55.8,
57.2,
55.1,
48.3,
50,
46.5,
40.2,
45.2,
53.7,
49.5,
46.1,
41.7,
47.5,
44.5,
48.2,
50.9,
34.4,
47.5,
39.3,
42.4,
40.6,
54.6
]
},
{
"label": "Search Asia",
"group": "Asia",
"values": [
104.3,
101.9,
84.7,
75,
89.7,
97.8,
94,
104.6,
90,
120,
104.1,
122.7,
98.4,
91.8,
83.2,
106.2,
109.6,
97.2,
100.7,
91.2,
89.2,
90.9,
68.8,
80.9
]
},
{
"label": "Pay EU",
"group": "Europe",
"values": [
110.4,
111.5,
122.9,
117.5,
115,
110.6,
83,
110.6,
99.4,
115.8,
106.6,
105.9,
103.5,
106.4,
86.6,
90.9,
124.4,
115.1,
104.6,
105.8,
105.5,
148.7,
116.1,
109.9
]
},
{
"label": "Pay Asia",
"group": "Asia",
"values": [
155.1,
118.1,
172.5,
200.1,
190.2,
175.6,
156.5,
143.9,
171.4,
160.7,
144.8,
206,
149.2,
157.8,
117.5,
207.1,
166.2,
168.1,
176,
151.3,
156.1,
176.2,
151.7,
176.7
]
},
{
"label": "Profile EU",
"group": "Europe",
"values": [
28.6,
27.2,
29.2,
28.2,
30.2,
25.8,
26.2,
21.7,
24.4,
22.8,
24.8,
21.9,
25.9,
32.7,
22.6,
26.7,
26.8,
22.8,
24.1,
23.4,
26.3,
23.1,
32.8,
27.5
]
},
{
"label": "Profile Asia",
"group": "Asia",
"values": [
61,
69.1,
62.9,
51.1,
54.8,
52.2,
54,
59.7,
36.1,
38.6,
49.3,
55.5,
48,
50.4,
60.7,
57.3,
51,
49.2,
40.1,
55.8,
52.7,
44.2,
55.7,
48.8
]
}
],
"mobile": {
"width": 440,
"height": 440
}
}Source: Illustrative measurements
Show chart data
| Category | Minimum | Q1 | Median | Mean | Q3 | Maximum | Group | Outliers |
|---|---|---|---|---|---|---|---|---|
| Search EU | 34.4 | 42.4 | 47.5 | 47.1208333333 | 50.225 | 57.2 | Europe | |
| Search Asia | 68.8 | 89.575 | 95.6 | 95.7041666667 | 104.15 | 122.7 | Asia | |
| Pay EU | 90.9 | 105.275 | 110.15 | 109.445833333 | 115.275 | 124.4 | Europe | 83, 86.6, 148.7 |
| Pay Asia | 117.5 | 151.6 | 163.45 | 164.533333333 | 176.05 | 207.1 | Asia | |
| Profile EU | 21.7 | 23.325 | 26.05 | 26.0708333333 | 27.675 | 32.8 | Europe | |
| Profile Asia | 38.6 | 49.1 | 52.45 | 52.425 | 56.175 | 62.9 | Asia | 36.1, 69.1 |
Customer satisfaction before and after the support redesign
examples/satisfaction-change.jsonDetail: Customer satisfaction before and after the support redesign →{
"schemaVersion": 1,
"type": "rangebar",
"display": "dumbbell",
"sort": "change",
"orientation": "horizontal",
"title": "Customer satisfaction before and after the support redesign",
"source": "Illustrative survey scores, 0 to 100",
"width": 760,
"height": 380,
"valueAxis": {
"title": "Satisfaction score",
"min": 40,
"max": 100
},
"ranges": [
{
"label": "Onboarding",
"low": 58,
"high": 81
},
{
"label": "Billing",
"low": 49,
"high": 64
},
{
"label": "Mobile app",
"low": 66,
"high": 86
},
{
"label": "Documentation",
"low": 61,
"high": 70
},
{
"label": "Live chat",
"low": 72,
"high": 79
},
{
"label": "Phone support",
"low": 69,
"high": 74
}
],
"mobile": {
"width": 380,
"height": 440
}
}Source: Illustrative survey scores, 0 to 100
Show chart data
| Category | Low | High |
|---|---|---|
| Onboarding | 58 | 81 |
| Mobile app | 66 | 86 |
| Billing | 49 | 64 |
| Documentation | 61 | 70 |
| Live chat | 72 | 79 |
| Phone support | 69 | 74 |
Response times by endpoint
examples/response-distribution.jsonDetail: Response times by endpoint →{
"schemaVersion": 1,
"type": "boxplot",
"boxDisplay": "violin",
"title": "Response times by endpoint",
"source": "Illustrative measurements, 60 requests each",
"width": 760,
"height": 440,
"valueAxis": {
"title": "Milliseconds"
},
"boxes": [
{
"label": "Search",
"values": [
33.5,
43.8,
33.8,
32.8,
26.4,
34,
54,
42.5,
52.6,
39.9,
42,
39.1,
20.4,
49.4,
43.7,
43.6,
20.2,
19.9,
26.8,
31.1,
40.7,
36,
43.9,
29.2,
40.8,
42,
29,
66.8,
44.5,
55.6,
29.5,
28.3,
32.4,
35.3,
45.7,
39.9,
31.3,
26.2,
30.5,
56.1,
27.6,
39.9,
42.5,
21.7,
37.2,
57.8,
18.1,
32.7,
35.3,
27.5,
43.6,
35.8,
21.9,
48.9,
46.3,
51,
60.6,
41.5,
38.2,
23.2
]
},
{
"label": "Checkout",
"values": [
42.5,
37.6,
38.2,
34.9,
36.1,
37.9,
45.2,
31.9,
34.2,
41,
45.8,
42.3,
32.4,
29.9,
41.4,
37.1,
35.5,
43.9,
44.4,
40.6,
41,
41.7,
46.4,
42.5,
42.1,
42.2,
33.7,
45.1,
43.8,
42.1,
64.2,
73.6,
83.9,
65.3,
76.7,
85.1,
68.8,
89.3,
81.9,
76.9,
80.3,
82.5,
78.8,
86,
73.4,
75.1,
85.3,
78.2,
71.8,
84.6,
88.3,
74.9,
68.3,
77.1,
77,
75.9,
87.8,
70.8,
86.8,
69.1
]
},
{
"label": "Profile",
"values": [
47.3,
55.8,
58.8,
57.2,
54.1,
52.9,
52.9,
55.5,
50.9,
53.7,
55.4,
52,
56.6,
55.4,
64.1,
53.9,
49.4,
49.8,
51.9,
57.5,
50,
54.3,
63,
36.6,
45.3,
53.5,
54.4,
53.4,
49.4,
55.9,
53.7,
48.9,
66.6,
54.1,
48.7,
51.4,
50.6,
51.6,
35.6,
49.1,
58.1,
45,
51.6,
57.7,
57.1,
60.9,
41.8,
49.9,
50,
55.7,
58.6,
35.9,
58.5,
43.3,
56.1,
43,
53.1,
59.2,
51.1,
53.1
]
}
],
"mobile": {
"width": 380,
"height": 480
},
"showMean": true
}Source: Illustrative measurements, 60 requests each
Show chart data
| Category | Minimum | Q1 | Median | Mean | Q3 | Maximum | Outliers |
|---|---|---|---|---|---|---|---|
| Search | 18.1 | 29.425 | 37.7 | 37.7416666667 | 43.725 | 60.6 | 66.8 |
| Checkout | 29.9 | 41.3 | 55.3 | 58.8516666667 | 77.025 | 89.3 | |
| Profile | 41.8 | 49.875 | 53.25 | 52.515 | 55.95 | 64.1 | 35.6, 35.9, 36.6, 66.6 |
Response times by endpoint, every request
examples/response-swarm.jsonDetail: Response times by endpoint, every request →{
"schemaVersion": 1,
"type": "boxplot",
"boxDisplay": "beeswarm",
"showBox": true,
"title": "Response times by endpoint, every request",
"source": "Illustrative measurements, 60 requests each",
"width": 760,
"height": 440,
"valueAxis": {
"title": "Milliseconds"
},
"boxes": [
{
"label": "Search",
"values": [
33.5,
43.8,
33.8,
32.8,
26.4,
34,
54,
42.5,
52.6,
39.9,
42,
39.1,
20.4,
49.4,
43.7,
43.6,
20.2,
19.9,
26.8,
31.1,
40.7,
36,
43.9,
29.2,
40.8,
42,
29,
66.8,
44.5,
55.6,
29.5,
28.3,
32.4,
35.3,
45.7,
39.9,
31.3,
26.2,
30.5,
56.1,
27.6,
39.9,
42.5,
21.7,
37.2,
57.8,
18.1,
32.7,
35.3,
27.5,
43.6,
35.8,
21.9,
48.9,
46.3,
51,
60.6,
41.5,
38.2,
23.2
]
},
{
"label": "Checkout",
"values": [
42.5,
37.6,
38.2,
34.9,
36.1,
37.9,
45.2,
31.9,
34.2,
41,
45.8,
42.3,
32.4,
29.9,
41.4,
37.1,
35.5,
43.9,
44.4,
40.6,
41,
41.7,
46.4,
42.5,
42.1,
42.2,
33.7,
45.1,
43.8,
42.1,
64.2,
73.6,
83.9,
65.3,
76.7,
85.1,
68.8,
89.3,
81.9,
76.9,
80.3,
82.5,
78.8,
86,
73.4,
75.1,
85.3,
78.2,
71.8,
84.6,
88.3,
74.9,
68.3,
77.1,
77,
75.9,
87.8,
70.8,
86.8,
69.1
]
},
{
"label": "Profile",
"values": [
47.3,
55.8,
58.8,
57.2,
54.1,
52.9,
52.9,
55.5,
50.9,
53.7,
55.4,
52,
56.6,
55.4,
64.1,
53.9,
49.4,
49.8,
51.9,
57.5,
50,
54.3,
63,
36.6,
45.3,
53.5,
54.4,
53.4,
49.4,
55.9,
53.7,
48.9,
66.6,
54.1,
48.7,
51.4,
50.6,
51.6,
35.6,
49.1,
58.1,
45,
51.6,
57.7,
57.1,
60.9,
41.8,
49.9,
50,
55.7,
58.6,
35.9,
58.5,
43.3,
56.1,
43,
53.1,
59.2,
51.1,
53.1
]
}
],
"mobile": {
"width": 380,
"height": 480
}
}Source: Illustrative measurements, 60 requests each
Show chart data
| Category | Minimum | Q1 | Median | Q3 | Maximum | Outliers |
|---|---|---|---|---|---|---|
| Search | 18.1 | 29.425 | 37.7 | 43.725 | 60.6 | 66.8 |
| Checkout | 29.9 | 41.3 | 55.3 | 77.025 | 89.3 | |
| Profile | 41.8 | 49.875 | 53.25 | 55.95 | 64.1 | 35.6, 35.9, 36.6, 66.6 |
Response time distribution by service
examples/response-ridges.jsonDetail: Response time distribution by service →{
"schemaVersion": 1,
"type": "boxplot",
"boxDisplay": "ridgeline",
"orientation": "horizontal",
"title": "Response time distribution by service",
"source": "Illustrative measurements, 90 requests each",
"width": 760,
"height": 460,
"valueAxis": {
"title": "Milliseconds"
},
"boxes": [
{
"label": "Search",
"values": [
42.4,
38.3,
27.3,
46.5,
40.8,
41.4,
39.7,
53.1,
46.9,
49.8,
35.4,
33.8,
28.4,
35.8,
12.3,
53.7,
39.5,
39,
46.5,
34.6,
40.6,
45.6,
23.2,
54.8,
39.6,
44.1,
28.2,
32.2,
54.5,
33.1,
34.3,
42.8,
52,
14.9,
52.4,
40.8,
46.8,
28.4,
41.2,
53.7,
37.3,
32.1,
34,
33.1,
45.9,
40.1,
33.4,
45.8,
27.7,
24.4,
61.9,
32.1,
53.9,
37.4,
36.1,
43.3,
29.9,
30.1,
36.2,
34.5,
45.1,
57,
26.8,
29.7,
45.5,
43.1,
49,
31,
44,
37.7,
22.5,
42.5,
23.1,
43.4,
33.8,
36.3,
58.9,
53,
42.3,
42,
30.7,
50.2,
44.2,
29.9,
22.1,
38.2,
36.5,
46.6,
28.3,
29.7
]
},
{
"label": "Checkout",
"values": [
42.4,
40.6,
45.2,
46.1,
35.3,
27.4,
40.4,
36.2,
41.4,
25.6,
39.6,
40.6,
37.1,
42.9,
40.7,
41.4,
47.1,
47.1,
46.6,
42.1,
40.9,
43.2,
41.8,
36.2,
42.2,
45,
37.9,
34.3,
43.2,
36.1,
32.1,
38.8,
32.3,
41.9,
37.4,
40.6,
46.2,
46.1,
39.6,
28,
37.6,
33.9,
44.9,
48.5,
43.9,
83.7,
83,
84.1,
75,
85.9,
75.6,
68.3,
78.6,
91.9,
76.6,
63.1,
88.8,
80.3,
82.9,
74.2,
82.3,
92,
72.7,
84.1,
81.2,
70.8,
79.8,
83.3,
71,
88.2,
68.7,
88.1,
83.5,
80.4,
71.5,
71.5,
59.3,
78,
77.1,
83,
87,
79.9,
75.4,
86.7,
78.2,
78,
68.2,
87.2,
72.5,
94.8
]
},
{
"label": "Profile",
"values": [
47.6,
50.1,
53.7,
48.7,
43.8,
45.9,
47.9,
51.7,
59.5,
57.4,
55.2,
58.4,
39.2,
49.2,
49.6,
46.6,
56.2,
49,
46.1,
58.9,
49,
51.6,
43.5,
58.9,
53.5,
62.4,
67.2,
57.4,
50.9,
48.1,
63.6,
51.9,
57.2,
54.7,
31.7,
54.1,
54.2,
54.4,
52.3,
54.7,
46.7,
57,
49.9,
54.2,
63.7,
54.6,
46.6,
55.5,
44,
54.3,
62.1,
46.4,
52.2,
47.6,
54.3,
55.3,
54.3,
51.4,
41.1,
47.5,
50.4,
58.4,
40.4,
60.1,
48.4,
42.5,
62.4,
55.3,
47.2,
54.8,
57,
44.1,
61.3,
47.8,
58.4,
49.6,
43.1,
49.4,
49.9,
53.9,
42.6,
46.8,
55.1,
50.7,
49.8,
55.9,
44.8,
65.8,
48.4,
55.5
]
},
{
"label": "Upload",
"values": [
91.7,
118.5,
85.3,
77.4,
101.1,
109.5,
92,
142.8,
112.9,
127.2,
125,
119.3,
91.2,
133.1,
86.9,
98.7,
127.7,
117.1,
70.5,
88.4,
74.8,
122,
87.2,
95.9,
79.6,
83.7,
110.8,
72.2,
96.7,
84,
87,
65.9,
122.1,
58.2,
67.1,
85.6,
96.8,
77.9,
57.8,
84.2,
72.2,
79.6,
131.9,
47.9,
94.5,
103.7,
85.6,
86.8,
119.5,
90.3,
55.4,
86.4,
103.3,
86.1,
81.7,
99,
83.6,
97.9,
109.8,
80.6,
59,
125.1,
103.9,
77.2,
62.5,
95,
99.5,
106,
103.2,
84.8,
85.6,
60.3,
78,
84,
119.2,
64.9,
137.3,
115.3,
83.1,
81.2,
99.9,
103.7,
111.1,
55.4,
87,
106.3,
115.4,
105.1,
92.9,
101.9
]
},
{
"label": "Reports",
"values": [
54.3,
86.8,
75.1,
67.7,
53.7,
61.3,
67.4,
63.2,
85.5,
91.8,
76.1,
45.3,
72,
54.7,
62.1,
90.3,
37.1,
42.3,
52.9,
73.2,
56.2,
33.6,
67.5,
71.4,
79.9,
63.5,
78.1,
53.6,
74.8,
79.3,
58.1,
56.7,
79.6,
51.4,
49.2,
62.8,
70.4,
75.3,
55.2,
69.6,
49.5,
45.6,
97.3,
51.6,
40.3,
66.7,
51.4,
72.5,
26,
45.9,
77.1,
66.1,
48.9,
83.7,
77.1,
57.2,
78.5,
71,
44,
50.9,
111.9,
99,
93.7,
104.8,
117.3,
111.3,
99.5,
84.5,
117.6,
107.2,
118,
108.6,
104.4,
111.7,
102,
104,
100,
87,
120.2,
120.5,
103.6,
105.2,
133.1,
115.2,
105.3,
96.8,
127.2,
122.9,
101,
116.6
]
}
],
"mobile": {
"width": 380,
"height": 520
}
}Source: Illustrative measurements, 90 requests each
Show chart data
| Category | Minimum | Q1 | Median | Q3 | Maximum | Outliers |
|---|---|---|---|---|---|---|
| Search | 12.3 | 32.125 | 39.25 | 45.575 | 61.9 | |
| Checkout | 25.6 | 40.75 | 53.9 | 79.875 | 94.8 | |
| Profile | 39.2 | 47.65 | 51.8 | 55.5 | 67.2 | 31.7 |
| Upload | 47.9 | 81.325 | 91.45 | 106.225 | 142.8 | |
| Reports | 26 | 56.325 | 75.2 | 100.75 | 133.1 |
From revenue to profit
examples/revenue-to-profit.jsonDetail: From revenue to profit →{
"schemaVersion": 1,
"type": "waterfall",
"title": "From revenue to profit",
"source": "Illustrative figures, in thousands",
"width": 860,
"height": 420,
"showValues": true,
"valueAxis": {
"title": "Thousands of euros",
"thousandsSeparator": true
},
"waterfall": {
"steps": [
{
"label": "Revenue",
"value": 1250,
"kind": "start"
},
{
"label": "Materials",
"value": -420
},
{
"label": "Staff",
"value": -380
},
{
"label": "Gross margin",
"kind": "total"
},
{
"label": "Marketing",
"value": -140
},
{
"label": "Licenses",
"value": 60
},
{
"label": "Depreciation",
"value": -95
},
{
"label": "Operating profit",
"kind": "total"
}
]
},
"mobile": {
"width": 400,
"height": 440
}
}Source: Illustrative figures, in thousands
Show chart data
| Step | Kind | Value | Total |
|---|---|---|---|
| Revenue | Start | 1,250 | 1,250 |
| Materials | Change | −420 | 830 |
| Staff | Change | −380 | 450 |
| Gross margin | Total | 450 | 450 |
| Marketing | Change | −140 | 310 |
| Licenses | Change | +60 | 370 |
| Depreciation | Change | −95 | 275 |
| Operating profit | Total | 275 | 275 |
Two storage engines compared
examples/framework-profile.jsonDetail: Two storage engines compared →{
"schemaVersion": 1,
"type": "radar",
"title": "Two storage engines compared",
"source": "Illustrative benchmark scores, 0 to 100",
"width": 680,
"height": 480,
"radar": {
"axes": [
{
"label": "Read",
"max": 100
},
{
"label": "Write",
"max": 100
},
{
"label": "Durability",
"max": 100
},
{
"label": "Memory",
"max": 100
},
{
"label": "Tooling",
"max": 100
},
{
"label": "Ease of use",
"max": 100
}
],
"series": [
{
"name": "Engine A",
"values": [
92,
58,
74,
40,
85,
66
]
},
{
"name": "Engine B",
"values": [
64,
88,
90,
72,
55,
48
]
}
]
},
"mobile": {
"width": 380,
"height": 460
}
}Source: Illustrative benchmark scores, 0 to 100
Show chart data
| Axis | Range | Engine A | Engine B |
|---|---|---|---|
| Read | 0–100 | 92 | 64 |
| Write | 0–100 | 58 | 88 |
| Durability | 0–100 | 74 | 90 |
| Memory | 0–100 | 40 | 72 |
| Tooling | 0–100 | 85 | 55 |
| Ease of use | 0–100 | 66 | 48 |
Rainfall by month
examples/monthly-rainfall.jsonDetail: Rainfall by month →{
"schemaVersion": 1,
"type": "polar",
"title": "Rainfall by month",
"source": "Illustrative monthly totals of one weather station",
"width": 640,
"height": 480,
"polar": {
"valueLabel": "Millimeters",
"points": [
{
"label": "Jan",
"value": 52
},
{
"label": "Feb",
"value": 41
},
{
"label": "Mar",
"value": 47
},
{
"label": "Apr",
"value": 43
},
{
"label": "May",
"value": 62
},
{
"label": "Jun",
"value": 78
},
{
"label": "Jul",
"value": 85
},
{
"label": "Aug",
"value": 71
},
{
"label": "Sep",
"value": 58
},
{
"label": "Oct",
"value": 55
},
{
"label": "Nov",
"value": 60
},
{
"label": "Dec",
"value": 57
}
]
},
"mobile": {
"width": 380,
"height": 420
}
}Source: Illustrative monthly totals of one weather station
Show chart data
| Category | Millimeters |
|---|---|
| Jan | 52 |
| Feb | 41 |
| Mar | 47 |
| Apr | 43 |
| May | 62 |
| Jun | 78 |
| Jul | 85 |
| Aug | 71 |
| Sep | 58 |
| Oct | 55 |
| Nov | 60 |
| Dec | 57 |
Wind by direction
examples/wind-directions.jsonDetail: Wind by direction →{
"schemaVersion": 1,
"type": "polar",
"title": "Wind by direction",
"source": "Illustrative share of hours per year the wind blows from each direction",
"width": 640,
"height": 480,
"polar": {
"display": "lollipops",
"valueLabel": "Percent of hours",
"points": [
{
"label": "N",
"value": 6
},
{
"label": "NE",
"value": 9
},
{
"label": "E",
"value": 8
},
{
"label": "SE",
"value": 7
},
{
"label": "S",
"value": 11
},
{
"label": "SW",
"value": 24
},
{
"label": "W",
"value": 21
},
{
"label": "NW",
"value": 14
}
]
},
"mobile": {
"width": 380,
"height": 420
}
}Source: Illustrative share of hours per year the wind blows from each direction
Show chart data
| Category | Percent of hours |
|---|---|
| N | 6 |
| NE | 9 |
| E | 8 |
| SE | 7 |
| S | 11 |
| SW | 24 |
| W | 21 |
| NW | 14 |
Product portfolio: growth, margin and revenue
examples/product-portfolio.jsonDetail: Product portfolio: growth, margin and revenue →{
"schemaVersion": 1,
"type": "scatter",
"title": "Product portfolio: growth, margin and revenue",
"source": "Illustrative figures of a product line",
"width": 760,
"height": 480,
"scatter": {
"points": [
{
"x": 4,
"y": 38,
"size": 420,
"group": "Software",
"label": "Analytics"
},
{
"x": 12,
"y": 31,
"size": 180,
"group": "Software",
"label": "Billing"
},
{
"x": 22,
"y": 24,
"size": 90,
"group": "Software",
"label": "Search"
},
{
"x": 2,
"y": 12,
"size": 650,
"group": "Hardware",
"label": "Gateways"
},
{
"x": 8,
"y": 9,
"size": 240,
"group": "Hardware",
"label": "Sensors"
},
{
"x": 16,
"y": 17,
"size": 60,
"group": "Hardware",
"label": "Displays"
},
{
"x": 27,
"y": 6,
"size": 30,
"group": "Hardware",
"label": "Wearables"
}
],
"xTitle": "Market growth, percent per year",
"yTitle": "Operating margin, percent",
"sizeTitle": "Revenue, million euros"
},
"mobile": {
"width": 380,
"height": 480
}
}Source: Illustrative figures of a product line
Show chart data
| Point | Group | Market growth, percent per year | Operating margin, percent | Revenue, million euros |
|---|---|---|---|---|
| Analytics | Software | 4 | 38 | 420 |
| Billing | Software | 12 | 31 | 180 |
| Search | Software | 22 | 24 | 90 |
| Gateways | Hardware | 2 | 12 | 650 |
| Sensors | Hardware | 8 | 9 | 240 |
| Displays | Hardware | 16 | 17 | 60 |
| Wearables | Hardware | 27 | 6 | 30 |
Median first response, in minutes
examples/weekly-response.jsonDetail: Median first response, in minutes →{
"schemaVersion": 1,
"type": "heatmap",
"title": "Median first response, in minutes",
"source": "Illustrative support data of one week",
"width": 760,
"height": 420,
"heatmap": {
"rows": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"columns": [
"08–10",
"10–12",
"12–14",
"14–16",
"16–18"
],
"valueLabel": "Minutes",
"cells": [
{
"row": "Monday",
"column": "08–10",
"value": 42
},
{
"row": "Monday",
"column": "10–12",
"value": 35
},
{
"row": "Monday",
"column": "12–14",
"value": 28
},
{
"row": "Monday",
"column": "14–16",
"value": 31
},
{
"row": "Monday",
"column": "16–18",
"value": 47
},
{
"row": "Tuesday",
"column": "08–10",
"value": 30
},
{
"row": "Tuesday",
"column": "10–12",
"value": 22
},
{
"row": "Tuesday",
"column": "12–14",
"value": 19
},
{
"row": "Tuesday",
"column": "14–16",
"value": 24
},
{
"row": "Tuesday",
"column": "16–18",
"value": 38
},
{
"row": "Wednesday",
"column": "08–10",
"value": 27
},
{
"row": "Wednesday",
"column": "10–12",
"value": 18
},
{
"row": "Wednesday",
"column": "14–16",
"value": 21
},
{
"row": "Wednesday",
"column": "16–18",
"value": 36
},
{
"row": "Thursday",
"column": "08–10",
"value": 33
},
{
"row": "Thursday",
"column": "10–12",
"value": 25
},
{
"row": "Thursday",
"column": "12–14",
"value": 23
},
{
"row": "Thursday",
"column": "14–16",
"value": 29
},
{
"row": "Thursday",
"column": "16–18",
"value": 44
},
{
"row": "Friday",
"column": "08–10",
"value": 39
},
{
"row": "Friday",
"column": "10–12",
"value": 34
},
{
"row": "Friday",
"column": "12–14",
"value": 41
},
{
"row": "Friday",
"column": "14–16",
"value": 52
},
{
"row": "Friday",
"column": "16–18",
"value": 61
}
]
},
"mobile": {
"width": 380,
"height": 460
}
}Source: Illustrative support data of one week
Show chart data
| Row | Column | Minutes |
|---|---|---|
| Monday | 08–10 | 42 |
| Monday | 10–12 | 35 |
| Monday | 12–14 | 28 |
| Monday | 14–16 | 31 |
| Monday | 16–18 | 47 |
| Tuesday | 08–10 | 30 |
| Tuesday | 10–12 | 22 |
| Tuesday | 12–14 | 19 |
| Tuesday | 14–16 | 24 |
| Tuesday | 16–18 | 38 |
| Wednesday | 08–10 | 27 |
| Wednesday | 10–12 | 18 |
| Wednesday | 12–14 | no value |
| Wednesday | 14–16 | 21 |
| Wednesday | 16–18 | 36 |
| Thursday | 08–10 | 33 |
| Thursday | 10–12 | 25 |
| Thursday | 12–14 | 23 |
| Thursday | 14–16 | 29 |
| Thursday | 16–18 | 44 |
| Friday | 08–10 | 39 |
| Friday | 10–12 | 34 |
| Friday | 12–14 | 41 |
| Friday | 14–16 | 52 |
| Friday | 16–18 | 61 |
Who may do what
examples/permission-matrix.jsonDetail: Who may do what →{
"schemaVersion": 1,
"type": "heatmap",
"title": "Who may do what",
"source": "Illustrative roles of a documentation project",
"width": 760,
"height": 380,
"heatmap": {
"rows": [
"Reader",
"Contributor",
"Maintainer",
"Owner"
],
"columns": [
"Pages",
"Comments",
"Releases",
"Settings"
],
"categories": [
"Read",
"Write",
"None"
],
"cells": [
{
"row": "Reader",
"column": "Pages",
"category": "Read"
},
{
"row": "Reader",
"column": "Comments",
"category": "Read"
},
{
"row": "Reader",
"column": "Releases",
"category": "None"
},
{
"row": "Reader",
"column": "Settings",
"category": "None"
},
{
"row": "Contributor",
"column": "Pages",
"category": "Write"
},
{
"row": "Contributor",
"column": "Comments",
"category": "Write"
},
{
"row": "Contributor",
"column": "Releases",
"category": "Read"
},
{
"row": "Contributor",
"column": "Settings",
"category": "None"
},
{
"row": "Maintainer",
"column": "Pages",
"category": "Write"
},
{
"row": "Maintainer",
"column": "Comments",
"category": "Write"
},
{
"row": "Maintainer",
"column": "Releases",
"category": "Write"
},
{
"row": "Maintainer",
"column": "Settings",
"category": "Read"
},
{
"row": "Owner",
"column": "Pages",
"category": "Write"
},
{
"row": "Owner",
"column": "Comments",
"category": "Write"
},
{
"row": "Owner",
"column": "Releases",
"category": "Write"
}
]
},
"mobile": {
"width": 380,
"height": 460
}
}Source: Illustrative roles of a documentation project
Show chart data
| Row | Column | Category |
|---|---|---|
| Reader | Pages | Read |
| Reader | Comments | Read |
| Reader | Releases | None |
| Reader | Settings | None |
| Contributor | Pages | Write |
| Contributor | Comments | Write |
| Contributor | Releases | Read |
| Contributor | Settings | None |
| Maintainer | Pages | Write |
| Maintainer | Comments | Write |
| Maintainer | Releases | Write |
| Maintainer | Settings | Read |
| Owner | Pages | Write |
| Owner | Comments | Write |
| Owner | Releases | Write |
| Owner | Settings | no value |
Scatter plots and survival
Differential expression after treatment
examples/gene-expression.jsonDetail: Differential expression after treatment →{
"schemaVersion": 1,
"type": "scatter",
"title": "Differential expression after treatment",
"source": "Illustrative data, 700 genes",
"width": 760,
"height": 520,
"scatter": {
"points": [
{
"x": -1.3,
"y": 3.38,
"group": "Down"
},
{
"x": 1.69,
"y": 4.19,
"group": "Up"
},
{
"x": -0.81,
"y": 1.44,
"group": "Not significant"
},
{
"x": 1.21,
"y": 2.92,
"group": "Up"
},
{
"x": -1.4,
"y": 2.41,
"group": "Down"
},
{
"x": -0.16,
"y": 0.23,
"group": "Not significant"
},
{
"x": -0.45,
"y": 2.23,
"group": "Not significant"
},
{
"x": 1.06,
"y": 1.98,
"group": "Up"
},
{
"x": -0.42,
"y": 0.55,
"group": "Not significant"
},
{
"x": 0.52,
"y": 0.89,
"group": "Not significant"
},
{
"x": 2.22,
"y": 2.94,
"group": "Up"
},
{
"x": 1.33,
"y": 2.68,
"group": "Up"
},
{
"x": 0.73,
"y": 2.77,
"group": "Not significant"
},
{
"x": 2.28,
"y": 3.18,
"group": "Up"
},
{
"x": -0.43,
"y": 0.72,
"group": "Not significant"
},
{
"x": 0.85,
"y": 1.71,
"group": "Not significant"
},
{
"x": 1.66,
"y": 2.24,
"group": "Up"
},
{
"x": -0.75,
"y": 2.2,
"group": "Not significant"
},
{
"x": -0.51,
"y": 1.61,
"group": "Not significant"
},
{
"x": 2.8,
"y": 2.91,
"group": "Up"
},
{
"x": 0,
"y": 1.16,
"group": "Not significant"
},
{
"x": 0.25,
"y": 0.98,
"group": "Not significant"
},
{
"x": 0.34,
"y": 0.38,
"group": "Not significant"
},
{
"x": 0.7,
"y": 1.51,
"group": "Not significant"
},
{
"x": 2.37,
"y": 3.82,
"group": "Up"
},
{
"x": -0.82,
"y": 2.25,
"group": "Not significant"
},
{
"x": 1.42,
"y": 3.58,
"group": "Up"
},
{
"x": 0.19,
"y": 0.57,
"group": "Not significant"
},
{
"x": 0.84,
"y": 1.8,
"group": "Not significant"
},
{
"x": 0.87,
"y": 2.26,
"group": "Not significant"
},
{
"x": -0.91,
"y": 1.34,
"group": "Not significant"
},
{
"x": 0.2,
"y": 0.42,
"group": "Not significant"
},
{
"x": -1.39,
"y": 3.35,
"group": "Down"
},
{
"x": 3.08,
"y": 5.63,
"group": "Up",
"label": "CDK4"
},
{
"x": -0.67,
"y": 1.42,
"group": "Not significant"
},
{
"x": 0.56,
"y": 1.41,
"group": "Not significant"
},
{
"x": 2.3,
"y": 2.42,
"group": "Up"
},
{
"x": -2.1,
"y": 2.16,
"group": "Down"
},
{
"x": -0.31,
"y": 2.02,
"group": "Not significant"
},
{
"x": 0.12,
"y": 0.46,
"group": "Not significant"
},
{
"x": 1.26,
"y": 2.53,
"group": "Up"
},
{
"x": -4.01,
"y": 9.34,
"group": "Down",
"label": "BRCA1"
},
{
"x": 1.2,
"y": 1.99,
"group": "Up"
},
{
"x": -0.16,
"y": 0.88,
"group": "Not significant"
},
{
"x": -0.51,
"y": 0.91,
"group": "Not significant"
},
{
"x": 2.78,
"y": 5.13,
"group": "Up"
},
{
"x": -1,
"y": 0.94,
"group": "Not significant"
},
{
"x": -0.27,
"y": 1.62,
"group": "Not significant"
},
{
"x": -1.24,
"y": 3.34,
"group": "Down"
},
{
"x": -0.55,
"y": 1.95,
"group": "Not significant"
},
{
"x": -1.12,
"y": 2.11,
"group": "Down"
},
{
"x": -1.88,
"y": 3.67,
"group": "Down"
},
{
"x": -0.72,
"y": 2.72,
"group": "Not significant"
},
{
"x": -0.15,
"y": 0.29,
"group": "Not significant"
},
{
"x": -0.01,
"y": 0.91,
"group": "Not significant"
},
{
"x": 0.65,
"y": 2.13,
"group": "Not significant"
},
{
"x": -0.91,
"y": 2.51,
"group": "Not significant"
},
{
"x": 0.48,
"y": 1.53,
"group": "Not significant"
},
{
"x": 1.15,
"y": 3.38,
"group": "Up"
},
{
"x": 1.28,
"y": 2.3,
"group": "Up"
},
{
"x": 1.05,
"y": 3.41,
"group": "Up"
},
{
"x": -1.67,
"y": 3.39,
"group": "Down"
},
{
"x": -0.08,
"y": 0.54,
"group": "Not significant"
},
{
"x": -1.42,
"y": 2.53,
"group": "Down"
},
{
"x": -1.35,
"y": 3.19,
"group": "Down"
},
{
"x": -0.05,
"y": 0.19,
"group": "Not significant"
},
{
"x": -1.49,
"y": 2.02,
"group": "Down"
},
{
"x": -0.61,
"y": 1.31,
"group": "Not significant"
},
{
"x": -0.78,
"y": 0.76,
"group": "Not significant"
},
{
"x": 0.64,
"y": 1.09,
"group": "Not significant"
},
{
"x": 0.1,
"y": 0.31,
"group": "Not significant"
},
{
"x": -1.11,
"y": 2.49,
"group": "Down"
},
{
"x": 0.18,
"y": 1.44,
"group": "Not significant"
},
{
"x": -0.74,
"y": 1.34,
"group": "Not significant"
},
{
"x": 1.56,
"y": 2.92,
"group": "Up"
},
{
"x": 1.48,
"y": 1.59,
"group": "Up"
},
{
"x": -0.96,
"y": 1.82,
"group": "Not significant"
},
{
"x": 1.96,
"y": 3.17,
"group": "Up"
},
{
"x": 0.61,
"y": 1.64,
"group": "Not significant"
},
{
"x": 0.93,
"y": 2.21,
"group": "Not significant"
},
{
"x": 2.78,
"y": 5.35,
"group": "Up"
},
{
"x": -1.38,
"y": 2.13,
"group": "Down"
},
{
"x": 1.11,
"y": 2.46,
"group": "Up"
},
{
"x": 0.98,
"y": 2.84,
"group": "Not significant"
},
{
"x": -0.83,
"y": 1.41,
"group": "Not significant"
},
{
"x": -0.76,
"y": 2.62,
"group": "Not significant"
},
{
"x": 2.36,
"y": 4.46,
"group": "Up"
},
{
"x": -0.19,
"y": 1.99,
"group": "Not significant"
},
{
"x": -0.83,
"y": 2.24,
"group": "Not significant"
},
{
"x": -0.9,
"y": 1.44,
"group": "Not significant"
},
{
"x": 1.11,
"y": 2.25,
"group": "Up"
},
{
"x": -0.51,
"y": 2.1,
"group": "Not significant"
},
{
"x": 1.35,
"y": 1.74,
"group": "Up"
},
{
"x": 1.76,
"y": 2.52,
"group": "Up"
},
{
"x": -0.07,
"y": 0.51,
"group": "Not significant"
},
{
"x": -0.4,
"y": 1.42,
"group": "Not significant"
},
{
"x": -0.92,
"y": 2.47,
"group": "Not significant"
},
{
"x": 1.37,
"y": 2.44,
"group": "Up"
},
{
"x": -0.97,
"y": 1.35,
"group": "Not significant"
},
{
"x": -1.21,
"y": 1.79,
"group": "Down"
},
{
"x": -0.05,
"y": 0.84,
"group": "Not significant"
},
{
"x": -0.02,
"y": 0.7,
"group": "Not significant"
},
{
"x": 1.05,
"y": 1.35,
"group": "Up"
},
{
"x": 0.21,
"y": 0.98,
"group": "Not significant"
},
{
"x": -0.4,
"y": 1.45,
"group": "Not significant"
},
{
"x": 0.92,
"y": 1.63,
"group": "Not significant"
},
{
"x": 0.43,
"y": 0.87,
"group": "Not significant"
},
{
"x": 0.2,
"y": 0.61,
"group": "Not significant"
},
{
"x": -0.4,
"y": 1.1,
"group": "Not significant"
},
{
"x": 0.46,
"y": 1.77,
"group": "Not significant"
},
{
"x": -1.38,
"y": 2.3,
"group": "Down"
},
{
"x": -0.31,
"y": 0.84,
"group": "Not significant"
},
{
"x": 0.16,
"y": 0.39,
"group": "Not significant"
},
{
"x": 0.83,
"y": 2.5,
"group": "Not significant"
},
{
"x": 1.74,
"y": 4.27,
"group": "Up"
},
{
"x": 1.71,
"y": 1.51,
"group": "Up"
},
{
"x": 0.42,
"y": 1.13,
"group": "Not significant"
},
{
"x": 1.66,
"y": 1.96,
"group": "Up"
},
{
"x": -0.65,
"y": 1.97,
"group": "Not significant"
},
{
"x": -0.87,
"y": 1.32,
"group": "Not significant"
},
{
"x": -0.24,
"y": 0.35,
"group": "Not significant"
},
{
"x": -0.31,
"y": 0.43,
"group": "Not significant"
},
{
"x": -1.61,
"y": 4.01,
"group": "Down"
},
{
"x": 0.78,
"y": 1.49,
"group": "Not significant"
},
{
"x": -1.03,
"y": 2.78,
"group": "Down"
},
{
"x": -0.26,
"y": 0.65,
"group": "Not significant"
},
{
"x": 0.9,
"y": 2.15,
"group": "Not significant"
},
{
"x": 1.18,
"y": 2.53,
"group": "Up"
},
{
"x": -0.12,
"y": 0.9,
"group": "Not significant"
},
{
"x": 0,
"y": 0.73,
"group": "Not significant"
},
{
"x": 0.1,
"y": 0.78,
"group": "Not significant"
},
{
"x": 0.75,
"y": 2.24,
"group": "Not significant"
},
{
"x": 1.4,
"y": 1.78,
"group": "Up"
},
{
"x": 1.05,
"y": 1.8,
"group": "Up"
},
{
"x": 0.9,
"y": 1.67,
"group": "Not significant"
},
{
"x": 0.08,
"y": 0.29,
"group": "Not significant"
},
{
"x": 0.59,
"y": 1.49,
"group": "Not significant"
},
{
"x": -0.33,
"y": 0.71,
"group": "Not significant"
},
{
"x": 1.6,
"y": 3.54,
"group": "Up"
},
{
"x": 0.98,
"y": 1.99,
"group": "Not significant"
},
{
"x": 0.09,
"y": 0.7,
"group": "Not significant"
},
{
"x": -0.63,
"y": 1.12,
"group": "Not significant"
},
{
"x": 0.78,
"y": 2.37,
"group": "Not significant"
},
{
"x": -1.96,
"y": 3.67,
"group": "Down"
},
{
"x": -1.2,
"y": 2.81,
"group": "Down"
},
{
"x": -0.39,
"y": 0.5,
"group": "Not significant"
},
{
"x": 0.09,
"y": 0.37,
"group": "Not significant"
},
{
"x": -1.85,
"y": 1.6,
"group": "Down"
},
{
"x": -2.27,
"y": 4.3,
"group": "Down"
},
{
"x": -1.11,
"y": 1.36,
"group": "Down"
},
{
"x": 0.37,
"y": 0.8,
"group": "Not significant"
},
{
"x": -1.71,
"y": 2.59,
"group": "Down"
},
{
"x": -0.02,
"y": 0.51,
"group": "Not significant"
},
{
"x": -0.19,
"y": 0.72,
"group": "Not significant"
},
{
"x": 2.45,
"y": 3.68,
"group": "Up"
},
{
"x": 1.55,
"y": 3.26,
"group": "Up"
},
{
"x": -2.61,
"y": 2.84,
"group": "Down"
},
{
"x": -0.45,
"y": 1.27,
"group": "Not significant"
},
{
"x": -0.09,
"y": 0.45,
"group": "Not significant"
},
{
"x": 0.79,
"y": 0.8,
"group": "Not significant"
},
{
"x": -2.41,
"y": 4.28,
"group": "Down"
},
{
"x": -0.47,
"y": 1.21,
"group": "Not significant"
},
{
"x": -0.19,
"y": 1.15,
"group": "Not significant"
},
{
"x": 0.1,
"y": 1.12,
"group": "Not significant"
},
{
"x": -0.71,
"y": 2.18,
"group": "Not significant"
},
{
"x": 0.39,
"y": 0.81,
"group": "Not significant"
},
{
"x": -0.28,
"y": 0.57,
"group": "Not significant"
},
{
"x": 1.33,
"y": 1.85,
"group": "Up"
},
{
"x": 0.35,
"y": 0.91,
"group": "Not significant"
},
{
"x": -2.57,
"y": 2.36,
"group": "Down"
},
{
"x": 0.01,
"y": 0.21,
"group": "Not significant"
},
{
"x": 0.79,
"y": 1.31,
"group": "Not significant"
},
{
"x": -0.12,
"y": 0.29,
"group": "Not significant"
},
{
"x": 0.68,
"y": 1.17,
"group": "Not significant"
},
{
"x": -1.11,
"y": 1.46,
"group": "Down"
},
{
"x": -0.21,
"y": 0.61,
"group": "Not significant"
},
{
"x": 1.31,
"y": 3.22,
"group": "Up"
},
{
"x": 0.05,
"y": 0.19,
"group": "Not significant"
},
{
"x": -1.43,
"y": 2.07,
"group": "Down"
},
{
"x": -1.25,
"y": 3.51,
"group": "Down"
},
{
"x": -0.43,
"y": 1.52,
"group": "Not significant"
},
{
"x": 0.09,
"y": 0.41,
"group": "Not significant"
},
{
"x": 1.61,
"y": 3.95,
"group": "Up"
},
{
"x": -0.22,
"y": 0.5,
"group": "Not significant"
},
{
"x": 0.01,
"y": 0.27,
"group": "Not significant"
},
{
"x": -0.73,
"y": 0.87,
"group": "Not significant"
},
{
"x": -0.11,
"y": 0.3,
"group": "Not significant"
},
{
"x": -0.24,
"y": 0.79,
"group": "Not significant"
},
{
"x": -0.84,
"y": 1.93,
"group": "Not significant"
},
{
"x": -2.2,
"y": 4.5,
"group": "Down"
},
{
"x": 0.09,
"y": 0.92,
"group": "Not significant"
},
{
"x": 0.65,
"y": 2.32,
"group": "Not significant"
},
{
"x": -0.24,
"y": 1.21,
"group": "Not significant"
},
{
"x": 0.41,
"y": 0.96,
"group": "Not significant"
},
{
"x": 0.61,
"y": 0.9,
"group": "Not significant"
},
{
"x": -0.4,
"y": 0.8,
"group": "Not significant"
},
{
"x": 0.12,
"y": 0.87,
"group": "Not significant"
},
{
"x": 0.55,
"y": 0.86,
"group": "Not significant"
},
{
"x": 1.71,
"y": 4.17,
"group": "Up"
},
{
"x": 0.14,
"y": 0.82,
"group": "Not significant"
},
{
"x": -0.08,
"y": 0.23,
"group": "Not significant"
},
{
"x": 0.82,
"y": 1.64,
"group": "Not significant"
},
{
"x": -0.66,
"y": 1.35,
"group": "Not significant"
},
{
"x": -2.45,
"y": 5.55,
"group": "Down"
},
{
"x": 0.71,
"y": 1.96,
"group": "Not significant"
},
{
"x": -1.14,
"y": 1.87,
"group": "Down"
},
{
"x": 0.28,
"y": 1.87,
"group": "Not significant"
},
{
"x": 1.45,
"y": 1.56,
"group": "Up"
},
{
"x": 0.45,
"y": 0.97,
"group": "Not significant"
},
{
"x": 0.28,
"y": 0.51,
"group": "Not significant"
},
{
"x": -2.26,
"y": 3.37,
"group": "Down"
},
{
"x": 0.19,
"y": 0.69,
"group": "Not significant"
},
{
"x": -0.96,
"y": 2.13,
"group": "Not significant"
},
{
"x": 0.05,
"y": 0.62,
"group": "Not significant"
},
{
"x": 2.09,
"y": 4.65,
"group": "Up"
},
{
"x": -0.82,
"y": 1.25,
"group": "Not significant"
},
{
"x": 0.63,
"y": 1.15,
"group": "Not significant"
},
{
"x": 0.24,
"y": 0.71,
"group": "Not significant"
},
{
"x": 0.59,
"y": 1.47,
"group": "Not significant"
},
{
"x": -0.75,
"y": 2.44,
"group": "Not significant"
},
{
"x": -1.41,
"y": 2.73,
"group": "Down"
},
{
"x": 1.31,
"y": 2.33,
"group": "Up"
},
{
"x": 0.44,
"y": 1.12,
"group": "Not significant"
},
{
"x": 0.94,
"y": 1.41,
"group": "Not significant"
},
{
"x": -1.7,
"y": 2.58,
"group": "Down"
},
{
"x": 2.01,
"y": 4.7,
"group": "Up"
},
{
"x": -0.58,
"y": 1.79,
"group": "Not significant"
},
{
"x": 0.31,
"y": 1.09,
"group": "Not significant"
},
{
"x": -0.57,
"y": 1.38,
"group": "Not significant"
},
{
"x": 0.42,
"y": 0.69,
"group": "Not significant"
},
{
"x": -1.63,
"y": 3.65,
"group": "Down"
},
{
"x": -0.88,
"y": 2.39,
"group": "Not significant"
},
{
"x": -0.09,
"y": 0.41,
"group": "Not significant"
},
{
"x": -1.33,
"y": 4.29,
"group": "Down"
},
{
"x": -0.8,
"y": 2.65,
"group": "Not significant"
},
{
"x": -0.58,
"y": 1.2,
"group": "Not significant"
},
{
"x": 0.65,
"y": 1.79,
"group": "Not significant"
},
{
"x": -1.06,
"y": 1.02,
"group": "Not significant"
},
{
"x": -0.53,
"y": 1.22,
"group": "Not significant"
},
{
"x": 1.95,
"y": 4.25,
"group": "Up"
},
{
"x": -0.4,
"y": 0.95,
"group": "Not significant"
},
{
"x": -1.65,
"y": 2.62,
"group": "Down"
},
{
"x": 0.58,
"y": 1.01,
"group": "Not significant"
},
{
"x": -0.17,
"y": 1.21,
"group": "Not significant"
},
{
"x": 0.77,
"y": 2.3,
"group": "Not significant"
},
{
"x": 0.06,
"y": 0.32,
"group": "Not significant"
},
{
"x": 1.09,
"y": 3.22,
"group": "Up"
},
{
"x": -1,
"y": 1.97,
"group": "Down"
},
{
"x": 0.77,
"y": 1.25,
"group": "Not significant"
},
{
"x": -2.26,
"y": 3.45,
"group": "Down"
},
{
"x": 0.54,
"y": 0.97,
"group": "Not significant"
},
{
"x": -0.56,
"y": 0.85,
"group": "Not significant"
},
{
"x": -1.31,
"y": 2.99,
"group": "Down"
},
{
"x": -0.05,
"y": 0.29,
"group": "Not significant"
},
{
"x": 1.4,
"y": 3.13,
"group": "Up"
},
{
"x": 0.93,
"y": 2.83,
"group": "Not significant"
},
{
"x": 0.22,
"y": 1.4,
"group": "Not significant"
},
{
"x": -0.5,
"y": 0.6,
"group": "Not significant"
},
{
"x": 0.27,
"y": 0.5,
"group": "Not significant"
},
{
"x": -0.39,
"y": 0.97,
"group": "Not significant"
},
{
"x": -0.18,
"y": 1.47,
"group": "Not significant"
},
{
"x": -0.57,
"y": 2.66,
"group": "Not significant"
},
{
"x": -2.01,
"y": 3.04,
"group": "Down"
},
{
"x": 0.32,
"y": 0.49,
"group": "Not significant"
},
{
"x": -0.86,
"y": 2.09,
"group": "Not significant"
},
{
"x": -0.02,
"y": 0.28,
"group": "Not significant"
},
{
"x": -1.03,
"y": 1.17,
"group": "Not significant"
},
{
"x": -0.87,
"y": 1.99,
"group": "Not significant"
},
{
"x": -2.82,
"y": 6.56,
"group": "Down",
"label": "TP53"
},
{
"x": 1.67,
"y": 3.71,
"group": "Up"
},
{
"x": -0.16,
"y": 0.53,
"group": "Not significant"
},
{
"x": -1.09,
"y": 3.26,
"group": "Down"
},
{
"x": -0.67,
"y": 1.41,
"group": "Not significant"
},
{
"x": -0.64,
"y": 2.09,
"group": "Not significant"
},
{
"x": -0.28,
"y": 1.13,
"group": "Not significant"
},
{
"x": -0.35,
"y": 0.54,
"group": "Not significant"
},
{
"x": 0.12,
"y": 1,
"group": "Not significant"
},
{
"x": -0.07,
"y": 0.37,
"group": "Not significant"
},
{
"x": 1.37,
"y": 2.01,
"group": "Up"
},
{
"x": 0.44,
"y": 0.71,
"group": "Not significant"
},
{
"x": 0.04,
"y": 0.14,
"group": "Not significant"
},
{
"x": -0.13,
"y": 0.24,
"group": "Not significant"
},
{
"x": -1.04,
"y": 1.85,
"group": "Down"
},
{
"x": 0.73,
"y": 1.86,
"group": "Not significant"
},
{
"x": -1.16,
"y": 1.33,
"group": "Down"
},
{
"x": -0.5,
"y": 2.42,
"group": "Not significant"
},
{
"x": -0.36,
"y": 0.53,
"group": "Not significant"
},
{
"x": 0.21,
"y": 1,
"group": "Not significant"
},
{
"x": 1.29,
"y": 2.85,
"group": "Up"
},
{
"x": 0.24,
"y": 0.51,
"group": "Not significant"
},
{
"x": -1.92,
"y": 4.7,
"group": "Down"
},
{
"x": 0.92,
"y": 2.51,
"group": "Not significant"
},
{
"x": 0.09,
"y": 1.36,
"group": "Not significant"
},
{
"x": 0.22,
"y": 1.14,
"group": "Not significant"
},
{
"x": 0.77,
"y": 1.15,
"group": "Not significant"
},
{
"x": -0.16,
"y": 0.87,
"group": "Not significant"
},
{
"x": -0.28,
"y": 0.57,
"group": "Not significant"
},
{
"x": -0.42,
"y": 0.65,
"group": "Not significant"
},
{
"x": 1.83,
"y": 2.79,
"group": "Up"
},
{
"x": 2.05,
"y": 4.92,
"group": "Up"
},
{
"x": -0.48,
"y": 0.76,
"group": "Not significant"
},
{
"x": 2.27,
"y": 2.61,
"group": "Up"
},
{
"x": 0.46,
"y": 1.15,
"group": "Not significant"
},
{
"x": 0.03,
"y": 0.63,
"group": "Not significant"
},
{
"x": 0.77,
"y": 2.4,
"group": "Not significant"
},
{
"x": -0.14,
"y": 0.39,
"group": "Not significant"
},
{
"x": -0.66,
"y": 1.38,
"group": "Not significant"
},
{
"x": -1.44,
"y": 3.48,
"group": "Down"
},
{
"x": 0.08,
"y": 0.88,
"group": "Not significant"
},
{
"x": -1.71,
"y": 2.01,
"group": "Down"
},
{
"x": -1.71,
"y": 1.5,
"group": "Down"
},
{
"x": 0.15,
"y": 0.86,
"group": "Not significant"
},
{
"x": -1.5,
"y": 2.02,
"group": "Down"
},
{
"x": -0.31,
"y": 0.44,
"group": "Not significant"
},
{
"x": -0.13,
"y": 0.27,
"group": "Not significant"
},
{
"x": -1.53,
"y": 3.75,
"group": "Down"
},
{
"x": -0.93,
"y": 2.34,
"group": "Not significant"
},
{
"x": 2.48,
"y": 6.48,
"group": "Up",
"label": "MYC"
},
{
"x": -0.21,
"y": 0.83,
"group": "Not significant"
},
{
"x": 1.06,
"y": 2.41,
"group": "Up"
},
{
"x": -1.07,
"y": 2.55,
"group": "Down"
},
{
"x": -0.42,
"y": 1.63,
"group": "Not significant"
},
{
"x": 0.66,
"y": 1.48,
"group": "Not significant"
},
{
"x": -0.69,
"y": 1.21,
"group": "Not significant"
},
{
"x": 0.44,
"y": 0.69,
"group": "Not significant"
},
{
"x": 1.78,
"y": 3.41,
"group": "Up"
},
{
"x": -0.31,
"y": 1.65,
"group": "Not significant"
},
{
"x": -0.16,
"y": 1.41,
"group": "Not significant"
},
{
"x": -1.18,
"y": 1.96,
"group": "Down"
},
{
"x": -0.19,
"y": 1.51,
"group": "Not significant"
},
{
"x": 0.55,
"y": 0.78,
"group": "Not significant"
},
{
"x": 1.71,
"y": 3.22,
"group": "Up"
},
{
"x": 0.33,
"y": 0.7,
"group": "Not significant"
},
{
"x": -2.23,
"y": 1.97,
"group": "Down"
},
{
"x": -0.47,
"y": 1.07,
"group": "Not significant"
},
{
"x": -1.16,
"y": 1.87,
"group": "Down"
},
{
"x": 0.51,
"y": 0.55,
"group": "Not significant"
},
{
"x": -0.2,
"y": 0.42,
"group": "Not significant"
},
{
"x": -1.54,
"y": 3.65,
"group": "Down"
},
{
"x": -0.08,
"y": 0.36,
"group": "Not significant"
},
{
"x": 0.31,
"y": 0.87,
"group": "Not significant"
},
{
"x": -0.05,
"y": 0.55,
"group": "Not significant"
},
{
"x": 0.07,
"y": 0.87,
"group": "Not significant"
},
{
"x": -0.62,
"y": 0.79,
"group": "Not significant"
},
{
"x": -0.22,
"y": 1.7,
"group": "Not significant"
},
{
"x": 0.87,
"y": 1.1,
"group": "Not significant"
},
{
"x": -1.37,
"y": 2.9,
"group": "Down"
},
{
"x": 0.27,
"y": 0.73,
"group": "Not significant"
},
{
"x": -0.46,
"y": 1.39,
"group": "Not significant"
},
{
"x": 0.52,
"y": 0.82,
"group": "Not significant"
},
{
"x": -1.36,
"y": 3.08,
"group": "Down"
},
{
"x": -1.52,
"y": 2.54,
"group": "Down"
},
{
"x": 0.45,
"y": 1.68,
"group": "Not significant"
},
{
"x": 0.66,
"y": 1.2,
"group": "Not significant"
},
{
"x": 0.66,
"y": 1.5,
"group": "Not significant"
},
{
"x": -1.75,
"y": 2.88,
"group": "Down"
},
{
"x": 0.12,
"y": 0.66,
"group": "Not significant"
},
{
"x": -1.43,
"y": 3.33,
"group": "Down"
},
{
"x": 2.8,
"y": 4.46,
"group": "Up"
},
{
"x": -1.16,
"y": 2.13,
"group": "Down"
},
{
"x": -0.82,
"y": 1.08,
"group": "Not significant"
},
{
"x": 1.61,
"y": 2.72,
"group": "Up"
},
{
"x": 0.27,
"y": 0.5,
"group": "Not significant"
},
{
"x": 1.12,
"y": 3.62,
"group": "Up"
},
{
"x": 1.04,
"y": 1.44,
"group": "Up"
},
{
"x": -0.68,
"y": 0.79,
"group": "Not significant"
},
{
"x": -0.84,
"y": 1.01,
"group": "Not significant"
},
{
"x": -2.55,
"y": 6.01,
"group": "Down"
},
{
"x": -0.5,
"y": 1.08,
"group": "Not significant"
},
{
"x": 1.03,
"y": 1.45,
"group": "Up"
},
{
"x": 1.37,
"y": 2.12,
"group": "Up"
},
{
"x": -0.19,
"y": 1.21,
"group": "Not significant"
},
{
"x": -0.68,
"y": 1.28,
"group": "Not significant"
},
{
"x": 0.94,
"y": 1.99,
"group": "Not significant"
},
{
"x": 0.85,
"y": 2.05,
"group": "Not significant"
},
{
"x": -0.59,
"y": 0.58,
"group": "Not significant"
},
{
"x": 1.14,
"y": 1.98,
"group": "Up"
},
{
"x": 1.25,
"y": 2.39,
"group": "Up"
},
{
"x": -0.39,
"y": 1.44,
"group": "Not significant"
},
{
"x": -1.82,
"y": 3.41,
"group": "Down"
},
{
"x": 0.49,
"y": 1.24,
"group": "Not significant"
},
{
"x": -0.07,
"y": 0.44,
"group": "Not significant"
},
{
"x": 0.45,
"y": 0.69,
"group": "Not significant"
},
{
"x": -1.44,
"y": 3.41,
"group": "Down"
},
{
"x": 0.88,
"y": 1.65,
"group": "Not significant"
},
{
"x": -0.73,
"y": 1.23,
"group": "Not significant"
},
{
"x": 1.66,
"y": 1.97,
"group": "Up"
},
{
"x": 0.09,
"y": 0.7,
"group": "Not significant"
},
{
"x": -0.82,
"y": 2.33,
"group": "Not significant"
},
{
"x": 0.78,
"y": 1.28,
"group": "Not significant"
},
{
"x": 0.42,
"y": 0.84,
"group": "Not significant"
},
{
"x": -2.59,
"y": 3.44,
"group": "Down"
},
{
"x": -1.04,
"y": 2.88,
"group": "Down"
},
{
"x": 2.64,
"y": 3.44,
"group": "Up"
},
{
"x": 0.98,
"y": 2.14,
"group": "Not significant"
},
{
"x": 0.86,
"y": 1.93,
"group": "Not significant"
},
{
"x": -0.15,
"y": 1,
"group": "Not significant"
},
{
"x": -1.48,
"y": 2.26,
"group": "Down"
},
{
"x": -0.05,
"y": 0.11,
"group": "Not significant"
},
{
"x": 0.28,
"y": 1.38,
"group": "Not significant"
},
{
"x": -1.22,
"y": 1.36,
"group": "Down"
},
{
"x": 0.87,
"y": 3.44,
"group": "Not significant"
},
{
"x": 0.15,
"y": 1.41,
"group": "Not significant"
},
{
"x": -1.19,
"y": 1.96,
"group": "Down"
},
{
"x": -0.02,
"y": 0.13,
"group": "Not significant"
},
{
"x": -1.58,
"y": 3.03,
"group": "Down"
},
{
"x": -0.86,
"y": 1.91,
"group": "Not significant"
},
{
"x": -1.03,
"y": 2.66,
"group": "Down"
},
{
"x": -1.57,
"y": 1.73,
"group": "Down"
},
{
"x": -0.14,
"y": 1.29,
"group": "Not significant"
},
{
"x": 0.18,
"y": 0.39,
"group": "Not significant"
},
{
"x": 0.96,
"y": 1.85,
"group": "Not significant"
},
{
"x": 0.41,
"y": 1.31,
"group": "Not significant"
},
{
"x": 1.94,
"y": 4.09,
"group": "Up"
},
{
"x": -1.49,
"y": 3.45,
"group": "Down"
},
{
"x": -0.45,
"y": 1.96,
"group": "Not significant"
},
{
"x": 2.27,
"y": 5.56,
"group": "Up"
},
{
"x": 0.12,
"y": 0.38,
"group": "Not significant"
},
{
"x": 0.85,
"y": 1.14,
"group": "Not significant"
},
{
"x": 0.02,
"y": 0.07,
"group": "Not significant"
},
{
"x": -0.55,
"y": 1.7,
"group": "Not significant"
},
{
"x": 1.37,
"y": 4.34,
"group": "Up"
},
{
"x": -0.29,
"y": 0.8,
"group": "Not significant"
},
{
"x": -1.07,
"y": 1.09,
"group": "Not significant"
},
{
"x": -1.81,
"y": 3.73,
"group": "Down"
},
{
"x": 1.07,
"y": 2.85,
"group": "Up"
},
{
"x": 1.69,
"y": 4.47,
"group": "Up"
},
{
"x": -1.4,
"y": 3.03,
"group": "Down"
},
{
"x": 1.29,
"y": 2.58,
"group": "Up"
},
{
"x": 0.36,
"y": 0.93,
"group": "Not significant"
},
{
"x": -0.78,
"y": 1.8,
"group": "Not significant"
},
{
"x": -2.06,
"y": 3.09,
"group": "Down"
},
{
"x": 1.24,
"y": 2.17,
"group": "Up"
},
{
"x": 0.56,
"y": 0.84,
"group": "Not significant"
},
{
"x": 0.69,
"y": 1.17,
"group": "Not significant"
},
{
"x": 1.39,
"y": 3.27,
"group": "Up"
},
{
"x": 0.49,
"y": 1.58,
"group": "Not significant"
},
{
"x": 0.55,
"y": 0.61,
"group": "Not significant"
},
{
"x": 1.39,
"y": 3.09,
"group": "Up"
},
{
"x": -1.96,
"y": 3.14,
"group": "Down"
},
{
"x": 1.31,
"y": 2.58,
"group": "Up"
},
{
"x": 0.55,
"y": 1.39,
"group": "Not significant"
},
{
"x": 0.35,
"y": 0.83,
"group": "Not significant"
},
{
"x": 0.17,
"y": 0.49,
"group": "Not significant"
},
{
"x": 0.31,
"y": 1.41,
"group": "Not significant"
},
{
"x": 1.48,
"y": 2.69,
"group": "Up"
},
{
"x": -0.93,
"y": 2.97,
"group": "Not significant"
},
{
"x": -0.6,
"y": 1.44,
"group": "Not significant"
},
{
"x": -0.45,
"y": 0.86,
"group": "Not significant"
},
{
"x": 1.35,
"y": 1.6,
"group": "Up"
},
{
"x": -1.23,
"y": 1.92,
"group": "Down"
},
{
"x": 0.52,
"y": 1.18,
"group": "Not significant"
},
{
"x": 1.49,
"y": 2.16,
"group": "Up"
},
{
"x": -0.12,
"y": 0.41,
"group": "Not significant"
},
{
"x": 0.83,
"y": 1,
"group": "Not significant"
},
{
"x": -1.5,
"y": 2.6,
"group": "Down"
},
{
"x": -0.41,
"y": 1.13,
"group": "Not significant"
},
{
"x": -0.49,
"y": 1.12,
"group": "Not significant"
},
{
"x": -0.79,
"y": 2.01,
"group": "Not significant"
},
{
"x": 0.26,
"y": 0.46,
"group": "Not significant"
},
{
"x": -0.19,
"y": 0.86,
"group": "Not significant"
},
{
"x": -1.01,
"y": 1.64,
"group": "Down"
},
{
"x": 0.81,
"y": 1.87,
"group": "Not significant"
},
{
"x": -0.84,
"y": 1.91,
"group": "Not significant"
},
{
"x": -0.52,
"y": 0.93,
"group": "Not significant"
},
{
"x": 0.68,
"y": 1.3,
"group": "Not significant"
},
{
"x": -1.17,
"y": 1.75,
"group": "Down"
},
{
"x": -1.69,
"y": 1.79,
"group": "Down"
},
{
"x": 1.43,
"y": 3.85,
"group": "Up"
},
{
"x": 0.41,
"y": 0.85,
"group": "Not significant"
},
{
"x": -0.35,
"y": 1.15,
"group": "Not significant"
},
{
"x": -0.63,
"y": 0.93,
"group": "Not significant"
},
{
"x": -0.46,
"y": 1.66,
"group": "Not significant"
},
{
"x": 0.83,
"y": 2.5,
"group": "Not significant"
},
{
"x": 0.55,
"y": 1.33,
"group": "Not significant"
},
{
"x": -0.38,
"y": 1.04,
"group": "Not significant"
},
{
"x": -1.32,
"y": 3.82,
"group": "Down"
},
{
"x": 1.02,
"y": 2.43,
"group": "Up"
},
{
"x": 0.58,
"y": 1.17,
"group": "Not significant"
},
{
"x": -0.17,
"y": 0.87,
"group": "Not significant"
},
{
"x": 0.52,
"y": 1.75,
"group": "Not significant"
},
{
"x": -0.69,
"y": 1.5,
"group": "Not significant"
},
{
"x": -1.4,
"y": 2.46,
"group": "Down"
},
{
"x": -0.07,
"y": 0.3,
"group": "Not significant"
},
{
"x": -0.44,
"y": 1.09,
"group": "Not significant"
},
{
"x": -1.14,
"y": 2.89,
"group": "Down"
},
{
"x": 0.17,
"y": 0.73,
"group": "Not significant"
},
{
"x": -0.5,
"y": 1.38,
"group": "Not significant"
},
{
"x": 1.24,
"y": 1.74,
"group": "Up"
},
{
"x": -0.33,
"y": 0.41,
"group": "Not significant"
},
{
"x": 1.93,
"y": 2.3,
"group": "Up"
},
{
"x": -0.27,
"y": 0.31,
"group": "Not significant"
},
{
"x": 1.13,
"y": 3.09,
"group": "Up"
},
{
"x": 0.01,
"y": 0.23,
"group": "Not significant"
},
{
"x": 1.81,
"y": 4.13,
"group": "Up"
},
{
"x": 0.99,
"y": 2.09,
"group": "Not significant"
},
{
"x": 0.42,
"y": 0.8,
"group": "Not significant"
},
{
"x": 0.79,
"y": 2.11,
"group": "Not significant"
},
{
"x": 0.94,
"y": 2.05,
"group": "Not significant"
},
{
"x": 1.05,
"y": 2.86,
"group": "Up"
},
{
"x": 1.19,
"y": 2.09,
"group": "Up"
},
{
"x": -0.8,
"y": 0.91,
"group": "Not significant"
},
{
"x": -0.08,
"y": 0.74,
"group": "Not significant"
},
{
"x": 0.73,
"y": 1.23,
"group": "Not significant"
},
{
"x": 1.22,
"y": 2.81,
"group": "Up"
},
{
"x": -0.05,
"y": 0.87,
"group": "Not significant"
},
{
"x": -0.75,
"y": 1.69,
"group": "Not significant"
},
{
"x": 1.19,
"y": 2.36,
"group": "Up"
},
{
"x": 0.09,
"y": 0.22,
"group": "Not significant"
},
{
"x": 0.02,
"y": 0.08,
"group": "Not significant"
},
{
"x": 0.1,
"y": 0.59,
"group": "Not significant"
},
{
"x": -0.77,
"y": 1.77,
"group": "Not significant"
},
{
"x": 0.67,
"y": 1.97,
"group": "Not significant"
},
{
"x": -1.44,
"y": 3.35,
"group": "Down"
},
{
"x": -2.22,
"y": 4.11,
"group": "Down"
},
{
"x": -0.16,
"y": 0.41,
"group": "Not significant"
},
{
"x": -1.35,
"y": 1.45,
"group": "Down"
},
{
"x": -0.05,
"y": 0.64,
"group": "Not significant"
},
{
"x": -2.08,
"y": 2.83,
"group": "Down"
},
{
"x": -1.4,
"y": 2.88,
"group": "Down"
},
{
"x": -0.34,
"y": 0.98,
"group": "Not significant"
},
{
"x": -1.27,
"y": 1.8,
"group": "Down"
},
{
"x": -1.33,
"y": 1.73,
"group": "Down"
},
{
"x": 2.03,
"y": 2.51,
"group": "Up"
},
{
"x": -0.92,
"y": 0.79,
"group": "Not significant"
},
{
"x": -0.08,
"y": 0.47,
"group": "Not significant"
},
{
"x": 0.38,
"y": 0.65,
"group": "Not significant"
},
{
"x": -0.52,
"y": 1.23,
"group": "Not significant"
},
{
"x": 0.12,
"y": 0.75,
"group": "Not significant"
},
{
"x": -0.79,
"y": 1.41,
"group": "Not significant"
},
{
"x": -0.62,
"y": 1.2,
"group": "Not significant"
},
{
"x": -0.23,
"y": 1.05,
"group": "Not significant"
},
{
"x": 0.35,
"y": 2.12,
"group": "Not significant"
},
{
"x": 1.25,
"y": 2.53,
"group": "Up"
},
{
"x": -0.81,
"y": 1.92,
"group": "Not significant"
},
{
"x": -1.13,
"y": 2.67,
"group": "Down"
},
{
"x": 1.54,
"y": 3.4,
"group": "Up"
},
{
"x": -0.23,
"y": 0.82,
"group": "Not significant"
},
{
"x": -0.28,
"y": 0.72,
"group": "Not significant"
},
{
"x": 0.19,
"y": 1,
"group": "Not significant"
},
{
"x": -0.33,
"y": 1.51,
"group": "Not significant"
},
{
"x": 1.11,
"y": 2.13,
"group": "Up"
},
{
"x": 0.97,
"y": 1.92,
"group": "Not significant"
},
{
"x": 0.44,
"y": 0.98,
"group": "Not significant"
},
{
"x": -0.79,
"y": 2.24,
"group": "Not significant"
},
{
"x": 0.39,
"y": 0.88,
"group": "Not significant"
},
{
"x": -1.28,
"y": 3.59,
"group": "Down"
},
{
"x": 0.67,
"y": 1.67,
"group": "Not significant"
},
{
"x": -2.18,
"y": 5.63,
"group": "Down"
},
{
"x": 0.04,
"y": 0.62,
"group": "Not significant"
},
{
"x": -1.6,
"y": 3.09,
"group": "Down"
},
{
"x": 1.15,
"y": 3.42,
"group": "Up"
},
{
"x": -1.28,
"y": 2.4,
"group": "Down"
},
{
"x": -0.32,
"y": 0.83,
"group": "Not significant"
},
{
"x": -0.54,
"y": 1.11,
"group": "Not significant"
},
{
"x": 0.93,
"y": 2.43,
"group": "Not significant"
},
{
"x": -0.6,
"y": 1.76,
"group": "Not significant"
},
{
"x": -0.71,
"y": 2.25,
"group": "Not significant"
},
{
"x": -0.97,
"y": 1.26,
"group": "Not significant"
},
{
"x": -0.01,
"y": 0.02,
"group": "Not significant"
},
{
"x": 0.57,
"y": 1.57,
"group": "Not significant"
},
{
"x": 0.96,
"y": 1.35,
"group": "Not significant"
},
{
"x": -0.42,
"y": 1.47,
"group": "Not significant"
},
{
"x": 0.99,
"y": 1.71,
"group": "Not significant"
},
{
"x": 1.19,
"y": 1.98,
"group": "Up"
},
{
"x": -1.74,
"y": 3.28,
"group": "Down"
},
{
"x": 0.67,
"y": 1.93,
"group": "Not significant"
},
{
"x": 2.25,
"y": 3.67,
"group": "Up"
},
{
"x": 0.85,
"y": 2.04,
"group": "Not significant"
},
{
"x": -0.38,
"y": 1.75,
"group": "Not significant"
},
{
"x": 0.94,
"y": 1.47,
"group": "Not significant"
},
{
"x": 2.02,
"y": 2.81,
"group": "Up"
},
{
"x": 1.39,
"y": 1.86,
"group": "Up"
},
{
"x": 1.01,
"y": 1.96,
"group": "Up"
},
{
"x": -0.91,
"y": 2.25,
"group": "Not significant"
},
{
"x": -0.93,
"y": 1.98,
"group": "Not significant"
},
{
"x": 0.04,
"y": 0.67,
"group": "Not significant"
},
{
"x": 0.28,
"y": 2.54,
"group": "Not significant"
},
{
"x": -1.63,
"y": 3.18,
"group": "Down"
},
{
"x": -1.04,
"y": 1.16,
"group": "Not significant"
},
{
"x": 0.55,
"y": 0.85,
"group": "Not significant"
},
{
"x": 1.64,
"y": 2.26,
"group": "Up"
},
{
"x": 0.1,
"y": 0.67,
"group": "Not significant"
},
{
"x": 0.54,
"y": 1.99,
"group": "Not significant"
},
{
"x": 0.42,
"y": 1.04,
"group": "Not significant"
},
{
"x": -0.8,
"y": 1.8,
"group": "Not significant"
},
{
"x": 2.21,
"y": 5.44,
"group": "Up"
},
{
"x": -0.18,
"y": 0.43,
"group": "Not significant"
},
{
"x": 0.77,
"y": 1.56,
"group": "Not significant"
},
{
"x": 0.04,
"y": 0.28,
"group": "Not significant"
},
{
"x": 0.5,
"y": 1.71,
"group": "Not significant"
},
{
"x": 1.04,
"y": 2.54,
"group": "Up"
},
{
"x": 1.78,
"y": 4.98,
"group": "Up"
},
{
"x": -2.28,
"y": 3.04,
"group": "Down"
},
{
"x": 0.96,
"y": 2.26,
"group": "Not significant"
},
{
"x": 1.34,
"y": 3.82,
"group": "Up"
},
{
"x": 0.8,
"y": 1.69,
"group": "Not significant"
},
{
"x": 1.4,
"y": 1.7,
"group": "Up"
},
{
"x": -0.58,
"y": 1.08,
"group": "Not significant"
},
{
"x": 0.21,
"y": 1,
"group": "Not significant"
},
{
"x": -0.12,
"y": 0.9,
"group": "Not significant"
},
{
"x": -1.51,
"y": 4.03,
"group": "Down"
},
{
"x": 2.22,
"y": 2.36,
"group": "Up"
},
{
"x": 0.6,
"y": 2.13,
"group": "Not significant"
},
{
"x": -0.94,
"y": 2.29,
"group": "Not significant"
},
{
"x": -0.65,
"y": 0.92,
"group": "Not significant"
},
{
"x": 0.23,
"y": 0.64,
"group": "Not significant"
},
{
"x": 0.97,
"y": 1.59,
"group": "Not significant"
},
{
"x": -0.35,
"y": 1.58,
"group": "Not significant"
},
{
"x": 1.09,
"y": 3.6,
"group": "Up"
},
{
"x": 1.17,
"y": 1.54,
"group": "Up"
},
{
"x": -0.67,
"y": 1.28,
"group": "Not significant"
},
{
"x": -0.49,
"y": 1.56,
"group": "Not significant"
},
{
"x": -1.66,
"y": 2.65,
"group": "Down"
},
{
"x": 1.12,
"y": 2.52,
"group": "Up"
},
{
"x": 1.39,
"y": 2.78,
"group": "Up"
},
{
"x": 0.43,
"y": 1.39,
"group": "Not significant"
},
{
"x": -0.56,
"y": 0.64,
"group": "Not significant"
},
{
"x": -0.38,
"y": 0.95,
"group": "Not significant"
},
{
"x": 0.23,
"y": 0.46,
"group": "Not significant"
},
{
"x": -0.74,
"y": 1.89,
"group": "Not significant"
},
{
"x": 1.43,
"y": 2.16,
"group": "Up"
},
{
"x": 0.7,
"y": 1.24,
"group": "Not significant"
},
{
"x": -0.56,
"y": 1.63,
"group": "Not significant"
},
{
"x": -1.33,
"y": 1.96,
"group": "Down"
},
{
"x": 0.45,
"y": 1.23,
"group": "Not significant"
},
{
"x": -0.08,
"y": 0.62,
"group": "Not significant"
},
{
"x": -1.47,
"y": 4.18,
"group": "Down"
},
{
"x": -1.39,
"y": 2.71,
"group": "Down"
},
{
"x": -0.03,
"y": 0.27,
"group": "Not significant"
},
{
"x": -1.29,
"y": 3.46,
"group": "Down"
},
{
"x": -1.56,
"y": 4.52,
"group": "Down"
},
{
"x": -1.15,
"y": 1.8,
"group": "Down"
},
{
"x": -1.29,
"y": 2.95,
"group": "Down"
},
{
"x": 1.97,
"y": 4.28,
"group": "Up"
},
{
"x": -0.01,
"y": 0.77,
"group": "Not significant"
},
{
"x": -0.48,
"y": 0.62,
"group": "Not significant"
},
{
"x": -0.12,
"y": 0.68,
"group": "Not significant"
},
{
"x": 0.73,
"y": 2.39,
"group": "Not significant"
},
{
"x": -0.44,
"y": 1.1,
"group": "Not significant"
},
{
"x": 0.35,
"y": 1.54,
"group": "Not significant"
},
{
"x": -0.01,
"y": 0.06,
"group": "Not significant"
},
{
"x": 0.37,
"y": 1.65,
"group": "Not significant"
},
{
"x": 0.24,
"y": 1.32,
"group": "Not significant"
},
{
"x": -0.82,
"y": 1.2,
"group": "Not significant"
},
{
"x": -1.44,
"y": 3.48,
"group": "Down"
},
{
"x": -1.03,
"y": 2.32,
"group": "Down"
},
{
"x": -0.78,
"y": 1.4,
"group": "Not significant"
},
{
"x": -0.45,
"y": 0.93,
"group": "Not significant"
},
{
"x": 0.5,
"y": 1.44,
"group": "Not significant"
},
{
"x": -0.71,
"y": 2.07,
"group": "Not significant"
},
{
"x": -0.47,
"y": 1.44,
"group": "Not significant"
},
{
"x": -0.5,
"y": 1.68,
"group": "Not significant"
},
{
"x": 1.35,
"y": 3.05,
"group": "Up"
},
{
"x": 0.52,
"y": 1.36,
"group": "Not significant"
},
{
"x": -2.52,
"y": 3.63,
"group": "Down"
},
{
"x": -0.81,
"y": 2.66,
"group": "Not significant"
},
{
"x": -0.58,
"y": 1.09,
"group": "Not significant"
},
{
"x": -0.17,
"y": 0.58,
"group": "Not significant"
},
{
"x": 0.43,
"y": 1.32,
"group": "Not significant"
},
{
"x": -1.84,
"y": 2.51,
"group": "Down"
},
{
"x": 0.05,
"y": 0.69,
"group": "Not significant"
},
{
"x": 0.85,
"y": 3.1,
"group": "Not significant"
},
{
"x": -0.37,
"y": 1.15,
"group": "Not significant"
},
{
"x": 1.22,
"y": 1.86,
"group": "Up"
},
{
"x": -2.12,
"y": 4.66,
"group": "Down"
},
{
"x": 0.44,
"y": 1.12,
"group": "Not significant"
},
{
"x": 0.05,
"y": 0.08,
"group": "Not significant"
},
{
"x": -0.06,
"y": 0.75,
"group": "Not significant"
},
{
"x": -1.54,
"y": 2.34,
"group": "Down"
},
{
"x": -1.17,
"y": 2.78,
"group": "Down"
},
{
"x": -1.39,
"y": 2.76,
"group": "Down"
},
{
"x": 0.22,
"y": 0.46,
"group": "Not significant"
},
{
"x": 1.39,
"y": 1.98,
"group": "Up"
},
{
"x": 1.19,
"y": 3.08,
"group": "Up"
},
{
"x": -0.32,
"y": 0.87,
"group": "Not significant"
},
{
"x": 0.16,
"y": 1.19,
"group": "Not significant"
},
{
"x": -0.14,
"y": 0.88,
"group": "Not significant"
},
{
"x": -0.74,
"y": 1.84,
"group": "Not significant"
},
{
"x": 0.68,
"y": 0.81,
"group": "Not significant"
},
{
"x": -0.14,
"y": 0.8,
"group": "Not significant"
},
{
"x": -0.35,
"y": 1.06,
"group": "Not significant"
},
{
"x": 0.22,
"y": 0.78,
"group": "Not significant"
},
{
"x": -2.1,
"y": 2.72,
"group": "Down"
},
{
"x": 0.74,
"y": 1.23,
"group": "Not significant"
},
{
"x": 0.75,
"y": 2.11,
"group": "Not significant"
},
{
"x": -1.35,
"y": 4.07,
"group": "Down"
},
{
"x": -0.24,
"y": 0.71,
"group": "Not significant"
},
{
"x": 0.41,
"y": 0.95,
"group": "Not significant"
},
{
"x": 0.84,
"y": 2.15,
"group": "Not significant"
},
{
"x": -0.21,
"y": 0.67,
"group": "Not significant"
},
{
"x": 0.89,
"y": 1.24,
"group": "Not significant"
},
{
"x": -0.84,
"y": 1.77,
"group": "Not significant"
},
{
"x": -0.23,
"y": 1.71,
"group": "Not significant"
},
{
"x": 0.71,
"y": 1.82,
"group": "Not significant"
},
{
"x": -2.25,
"y": 3.69,
"group": "Down"
},
{
"x": -0.82,
"y": 1.77,
"group": "Not significant"
},
{
"x": -1.54,
"y": 3.89,
"group": "Down"
},
{
"x": -0.25,
"y": 0.37,
"group": "Not significant"
},
{
"x": -0.92,
"y": 1.88,
"group": "Not significant"
}
],
"lines": [
{
"axis": "x",
"value": -1
},
{
"axis": "x",
"value": 1
},
{
"axis": "y",
"value": 1.3,
"label": "p = 0.05"
}
],
"xTitle": "log2 fold change",
"yTitle": "−log10 p"
},
"mobile": {
"width": 380,
"height": 520
}
}Source: Illustrative data, 700 genes
Show chart data
| Point | Group | log2 fold change | −log10 p |
|---|---|---|---|
| CDK4 | Up | 3.08 | 5.63 |
| BRCA1 | Down | −4.01 | 9.34 |
| TP53 | Down | −2.82 | 6.56 |
| MYC | Up | 2.48 | 6.48 |
Genome-wide association
examples/genome-scan.jsonDetail: Genome-wide association →{
"schemaVersion": 1,
"type": "scatter",
"title": "Genome-wide association",
"source": "Illustrative data, positions in megabases",
"width": 900,
"height": 420,
"scatter": {
"points": [
{
"x": 41.1,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 119.3,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 201.2,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 58.8,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 145.8,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 57.8,
"y": 1.37,
"group": "Odd chromosomes"
},
{
"x": 248.4,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 153.4,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 123.9,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 91.7,
"y": 0.09,
"group": "Odd chromosomes"
},
{
"x": 31.1,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 137.4,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 46.5,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 58.5,
"y": 0.68,
"group": "Odd chromosomes"
},
{
"x": 241.2,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 189.9,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 30.5,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 50.1,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 102,
"y": 0.35,
"group": "Odd chromosomes"
},
{
"x": 96.1,
"y": 5.93,
"group": "Odd chromosomes"
},
{
"x": 6.7,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 247.2,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 137.1,
"y": 0.65,
"group": "Odd chromosomes"
},
{
"x": 151.6,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 45,
"y": 0.46,
"group": "Odd chromosomes"
},
{
"x": 230.8,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 76.3,
"y": 1.18,
"group": "Odd chromosomes"
},
{
"x": 202.6,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 170.2,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 238.6,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 239.4,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 122.2,
"y": 0.61,
"group": "Odd chromosomes"
},
{
"x": 218.2,
"y": 1.16,
"group": "Odd chromosomes"
},
{
"x": 200.5,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 208.4,
"y": 0.59,
"group": "Odd chromosomes"
},
{
"x": 72.2,
"y": 0.77,
"group": "Odd chromosomes"
},
{
"x": 17.3,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 244.9,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 62.8,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 181.4,
"y": 0.67,
"group": "Odd chromosomes"
},
{
"x": 452.7,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 395.1,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 455.4,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 316.1,
"y": 1.99,
"group": "Even chromosomes"
},
{
"x": 415.5,
"y": 1.63,
"group": "Even chromosomes"
},
{
"x": 393.3,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 391,
"y": 0.39,
"group": "Even chromosomes"
},
{
"x": 482,
"y": 0.87,
"group": "Even chromosomes"
},
{
"x": 272,
"y": 1.6,
"group": "Even chromosomes"
},
{
"x": 357.6,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 408.2,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 327.8,
"y": 0.66,
"group": "Even chromosomes"
},
{
"x": 289.4,
"y": 0.42,
"group": "Even chromosomes"
},
{
"x": 421.5,
"y": 1.34,
"group": "Even chromosomes"
},
{
"x": 421.7,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 441.1,
"y": 0.33,
"group": "Even chromosomes"
},
{
"x": 264.4,
"y": 0.76,
"group": "Even chromosomes"
},
{
"x": 421.9,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 325.2,
"y": 0.41,
"group": "Even chromosomes"
},
{
"x": 324.2,
"y": 0.53,
"group": "Even chromosomes"
},
{
"x": 371.3,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 273,
"y": 0.29,
"group": "Even chromosomes"
},
{
"x": 427.5,
"y": 0.51,
"group": "Even chromosomes"
},
{
"x": 419,
"y": 0.25,
"group": "Even chromosomes"
},
{
"x": 264.5,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 335.3,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 275.1,
"y": 1.13,
"group": "Even chromosomes"
},
{
"x": 446.9,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 400,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 356.6,
"y": 0.41,
"group": "Even chromosomes"
},
{
"x": 346.6,
"y": 1.31,
"group": "Even chromosomes"
},
{
"x": 354.4,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 447.6,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 306.5,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 402.5,
"y": 1.07,
"group": "Even chromosomes"
},
{
"x": 365.6,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 465.4,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 433.3,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 418.9,
"y": 0.61,
"group": "Even chromosomes"
},
{
"x": 471.8,
"y": 0.21,
"group": "Even chromosomes"
},
{
"x": 655.3,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 493.3,
"y": 0.51,
"group": "Odd chromosomes"
},
{
"x": 569.5,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 507.7,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 639,
"y": 0.97,
"group": "Odd chromosomes"
},
{
"x": 681.3,
"y": 0.69,
"group": "Odd chromosomes"
},
{
"x": 558.4,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 543.7,
"y": 0.49,
"group": "Odd chromosomes"
},
{
"x": 542.3,
"y": 0.81,
"group": "Odd chromosomes"
},
{
"x": 626.9,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 546.9,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 584.5,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 547.6,
"y": 0.41,
"group": "Odd chromosomes"
},
{
"x": 545.9,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 498.8,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 631.5,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 499.8,
"y": 0.15,
"group": "Odd chromosomes"
},
{
"x": 539.6,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 510.7,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 669.1,
"y": 0.87,
"group": "Odd chromosomes"
},
{
"x": 648.8,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 501.7,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 601.3,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 659,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 495.5,
"y": 1.09,
"group": "Odd chromosomes"
},
{
"x": 670.1,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 529.3,
"y": 0.09,
"group": "Odd chromosomes"
},
{
"x": 612.1,
"y": 0.33,
"group": "Odd chromosomes"
},
{
"x": 650.4,
"y": 0.57,
"group": "Odd chromosomes"
},
{
"x": 561.9,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 668.2,
"y": 1.17,
"group": "Odd chromosomes"
},
{
"x": 593.3,
"y": 0.72,
"group": "Odd chromosomes"
},
{
"x": 545.4,
"y": 1.43,
"group": "Odd chromosomes"
},
{
"x": 590,
"y": 0.18,
"group": "Odd chromosomes"
},
{
"x": 523.3,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 598.6,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 636.1,
"y": 1.11,
"group": "Odd chromosomes"
},
{
"x": 655.8,
"y": 1.39,
"group": "Odd chromosomes"
},
{
"x": 561.8,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 526.5,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 720.9,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 863.1,
"y": 0.66,
"group": "Even chromosomes"
},
{
"x": 838.5,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 863.5,
"y": 0.41,
"group": "Even chromosomes"
},
{
"x": 869.9,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 692.1,
"y": 0.21,
"group": "Even chromosomes"
},
{
"x": 806,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 720.8,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 858.4,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 796,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 858.6,
"y": 1.08,
"group": "Even chromosomes"
},
{
"x": 767.5,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 845.7,
"y": 0.88,
"group": "Even chromosomes"
},
{
"x": 695.2,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 695,
"y": 0.68,
"group": "Even chromosomes"
},
{
"x": 710.4,
"y": 0.28,
"group": "Even chromosomes"
},
{
"x": 861,
"y": 0.91,
"group": "Even chromosomes"
},
{
"x": 735.8,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 837.2,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 738.3,
"y": 0.42,
"group": "Even chromosomes"
},
{
"x": 783.5,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 777.6,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 802,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 829.6,
"y": 5.88,
"group": "Even chromosomes"
},
{
"x": 765.2,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 801.1,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 727.6,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 845.2,
"y": 1.26,
"group": "Even chromosomes"
},
{
"x": 760.8,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 778.1,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 804.3,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 833.5,
"y": 0.6,
"group": "Even chromosomes"
},
{
"x": 839.3,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 728,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 704.7,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 717.9,
"y": 0.58,
"group": "Even chromosomes"
},
{
"x": 820.3,
"y": 0.66,
"group": "Even chromosomes"
},
{
"x": 729.5,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 731.6,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 814,
"y": 0.71,
"group": "Even chromosomes"
},
{
"x": 906.5,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 955.9,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 999.5,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 988.6,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 1055.2,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 996.1,
"y": 0.46,
"group": "Odd chromosomes"
},
{
"x": 1017.7,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 974,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 884.6,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 921.1,
"y": 0.23,
"group": "Odd chromosomes"
},
{
"x": 896.7,
"y": 0.78,
"group": "Odd chromosomes"
},
{
"x": 1025.6,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 920,
"y": 0.73,
"group": "Odd chromosomes"
},
{
"x": 908.5,
"y": 0.07,
"group": "Odd chromosomes"
},
{
"x": 921,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 901.9,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 917.8,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 896.4,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 898.4,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 1029.1,
"y": 0.18,
"group": "Odd chromosomes"
},
{
"x": 882.6,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 1046.3,
"y": 0.11,
"group": "Odd chromosomes"
},
{
"x": 887.2,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 1020.6,
"y": 0.74,
"group": "Odd chromosomes"
},
{
"x": 1048.6,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 1021.5,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 910.7,
"y": 0.18,
"group": "Odd chromosomes"
},
{
"x": 999.7,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 890.7,
"y": 1.04,
"group": "Odd chromosomes"
},
{
"x": 939.8,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 908,
"y": 0.95,
"group": "Odd chromosomes"
},
{
"x": 1000.8,
"y": 0.64,
"group": "Odd chromosomes"
},
{
"x": 948.7,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 1006,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 981.7,
"y": 0.7,
"group": "Odd chromosomes"
},
{
"x": 970.5,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 914.8,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 917.2,
"y": 0.67,
"group": "Odd chromosomes"
},
{
"x": 1038.2,
"y": 0.18,
"group": "Odd chromosomes"
},
{
"x": 922.7,
"y": 0.35,
"group": "Odd chromosomes"
},
{
"x": 1187.9,
"y": 0.43,
"group": "Even chromosomes"
},
{
"x": 1109.9,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 1180.3,
"y": 0.48,
"group": "Even chromosomes"
},
{
"x": 1214.4,
"y": 0.84,
"group": "Even chromosomes"
},
{
"x": 1178.2,
"y": 0.17,
"group": "Even chromosomes"
},
{
"x": 1226.9,
"y": 0.61,
"group": "Even chromosomes"
},
{
"x": 1232.4,
"y": 0.42,
"group": "Even chromosomes"
},
{
"x": 1229,
"y": 0.4,
"group": "Even chromosomes"
},
{
"x": 1169,
"y": 0.57,
"group": "Even chromosomes"
},
{
"x": 1197.8,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 1197.1,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 1202.8,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 1182,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 1174,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 1112.4,
"y": 0.41,
"group": "Even chromosomes"
},
{
"x": 1085.4,
"y": 1.03,
"group": "Even chromosomes"
},
{
"x": 1139.7,
"y": 1.31,
"group": "Even chromosomes"
},
{
"x": 1170.9,
"y": 0.29,
"group": "Even chromosomes"
},
{
"x": 1112.6,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 1132.7,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 1081.8,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 1204.8,
"y": 0.59,
"group": "Even chromosomes"
},
{
"x": 1168.9,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 1206.7,
"y": 0.46,
"group": "Even chromosomes"
},
{
"x": 1222.1,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 1202,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 1062.6,
"y": 0.78,
"group": "Even chromosomes"
},
{
"x": 1121.1,
"y": 1.6,
"group": "Even chromosomes"
},
{
"x": 1199.3,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 1156.8,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 1168.3,
"y": 0.12,
"group": "Even chromosomes"
},
{
"x": 1078.7,
"y": 0.51,
"group": "Even chromosomes"
},
{
"x": 1105.2,
"y": 0.4,
"group": "Even chromosomes"
},
{
"x": 1197.4,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 1186.7,
"y": 0.49,
"group": "Even chromosomes"
},
{
"x": 1114,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 1232.3,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 1219,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 1196.1,
"y": 0.21,
"group": "Even chromosomes"
},
{
"x": 1229.9,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 1246.5,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 1377.6,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 1252.2,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 1238,
"y": 0.85,
"group": "Odd chromosomes"
},
{
"x": 1334,
"y": 1.2,
"group": "Odd chromosomes"
},
{
"x": 1384.2,
"y": 0.36,
"group": "Odd chromosomes"
},
{
"x": 1324.3,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 1296.3,
"y": 0.13,
"group": "Odd chromosomes"
},
{
"x": 1262.6,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 1268.8,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 1258.4,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 1274.6,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 1251.5,
"y": 1.29,
"group": "Odd chromosomes"
},
{
"x": 1245.5,
"y": 0.62,
"group": "Odd chromosomes"
},
{
"x": 1287.3,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 1337.6,
"y": 0.11,
"group": "Odd chromosomes"
},
{
"x": 1342.1,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 1351.5,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 1333.6,
"y": 0.58,
"group": "Odd chromosomes"
},
{
"x": 1339.8,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 1376.9,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 1275.2,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 1318.1,
"y": 0.59,
"group": "Odd chromosomes"
},
{
"x": 1370.6,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 1251.4,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 1265.3,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 1314.2,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 1357.2,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 1299.7,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 1274.5,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 1235.4,
"y": 0.42,
"group": "Odd chromosomes"
},
{
"x": 1264.3,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 1381.1,
"y": 0.07,
"group": "Odd chromosomes"
},
{
"x": 1311.2,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 1242.5,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 1287.2,
"y": 1.24,
"group": "Odd chromosomes"
},
{
"x": 1341,
"y": 0.63,
"group": "Odd chromosomes"
},
{
"x": 1262.5,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 1269,
"y": 0.76,
"group": "Odd chromosomes"
},
{
"x": 1327.6,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 1404.3,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 1462.2,
"y": 0.22,
"group": "Even chromosomes"
},
{
"x": 1416.6,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 1459.7,
"y": 0.78,
"group": "Even chromosomes"
},
{
"x": 1419.2,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 1457.4,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 1442.1,
"y": 0.69,
"group": "Even chromosomes"
},
{
"x": 1467.1,
"y": 0.95,
"group": "Even chromosomes"
},
{
"x": 1441.2,
"y": 0.42,
"group": "Even chromosomes"
},
{
"x": 1487.3,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 1461.7,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 1450.7,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 1468.5,
"y": 0.45,
"group": "Even chromosomes"
},
{
"x": 1464.8,
"y": 0.99,
"group": "Even chromosomes"
},
{
"x": 1450.2,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 1503.2,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 1452.1,
"y": 1.27,
"group": "Even chromosomes"
},
{
"x": 1507.9,
"y": 0.58,
"group": "Even chromosomes"
},
{
"x": 1461,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 1454.3,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 1505.5,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 1530.1,
"y": 0.72,
"group": "Even chromosomes"
},
{
"x": 1444.9,
"y": 0.12,
"group": "Even chromosomes"
},
{
"x": 1433.3,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 1405.2,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 1524.5,
"y": 0.33,
"group": "Even chromosomes"
},
{
"x": 1507.4,
"y": 0.48,
"group": "Even chromosomes"
},
{
"x": 1425.2,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 1412.4,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 1421.4,
"y": 0.28,
"group": "Even chromosomes"
},
{
"x": 1533.1,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 1523.9,
"y": 0.84,
"group": "Even chromosomes"
},
{
"x": 1509.4,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 1532.6,
"y": 0.38,
"group": "Even chromosomes"
},
{
"x": 1425.1,
"y": 0.69,
"group": "Even chromosomes"
},
{
"x": 1416.6,
"y": 1.29,
"group": "Even chromosomes"
},
{
"x": 1479.4,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 1474.8,
"y": 0.55,
"group": "Even chromosomes"
},
{
"x": 1405.6,
"y": 0.57,
"group": "Even chromosomes"
},
{
"x": 1536.3,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 1655.5,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 1592,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 1605.4,
"y": 1.6,
"group": "Odd chromosomes"
},
{
"x": 1614,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 1615.8,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 1637.5,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 1619.9,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 1545.1,
"y": 0.51,
"group": "Odd chromosomes"
},
{
"x": 1639.4,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 1561.8,
"y": 0.58,
"group": "Odd chromosomes"
},
{
"x": 1657.6,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 1649.4,
"y": 0.59,
"group": "Odd chromosomes"
},
{
"x": 1635.9,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 1586.9,
"y": 0.11,
"group": "Odd chromosomes"
},
{
"x": 1573.4,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 1658,
"y": 0.18,
"group": "Odd chromosomes"
},
{
"x": 1568.6,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 1629.3,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 1561.2,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 1574.5,
"y": 0.84,
"group": "Odd chromosomes"
},
{
"x": 1574.7,
"y": 0.19,
"group": "Odd chromosomes"
},
{
"x": 1630.7,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 1627.5,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 1658.3,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 1556.4,
"y": 0.38,
"group": "Odd chromosomes"
},
{
"x": 1672.7,
"y": 0.41,
"group": "Odd chromosomes"
},
{
"x": 1567.2,
"y": 0.74,
"group": "Odd chromosomes"
},
{
"x": 1657.5,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 1661.6,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 1627.7,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 1629.1,
"y": 0.81,
"group": "Odd chromosomes"
},
{
"x": 1539.3,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 1650.7,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 1601.9,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 1611.2,
"y": 0.19,
"group": "Odd chromosomes"
},
{
"x": 1558.8,
"y": 0.29,
"group": "Odd chromosomes"
},
{
"x": 1544,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 1676,
"y": 0.58,
"group": "Odd chromosomes"
},
{
"x": 1670,
"y": 1.75,
"group": "Odd chromosomes"
},
{
"x": 1572.8,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 1688.1,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 1725.8,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 1738.4,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 1789.5,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 1789.6,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 1761.9,
"y": 1.12,
"group": "Even chromosomes"
},
{
"x": 1799.3,
"y": 0.12,
"group": "Even chromosomes"
},
{
"x": 1795.8,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 1743.4,
"y": 4.4,
"group": "Even chromosomes"
},
{
"x": 1730.5,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 1749.8,
"y": 0.43,
"group": "Even chromosomes"
},
{
"x": 1771.1,
"y": 0.22,
"group": "Even chromosomes"
},
{
"x": 1681.8,
"y": 3.89,
"group": "Even chromosomes"
},
{
"x": 1720.2,
"y": 0.12,
"group": "Even chromosomes"
},
{
"x": 1701.9,
"y": 1.14,
"group": "Even chromosomes"
},
{
"x": 1707.1,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 1688.7,
"y": 0.4,
"group": "Even chromosomes"
},
{
"x": 1763.6,
"y": 1.78,
"group": "Even chromosomes"
},
{
"x": 1689.7,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 1762.3,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 1801.5,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 1794.4,
"y": 6.83,
"group": "Even chromosomes"
},
{
"x": 1766.7,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 1721.2,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 1813.5,
"y": 1.02,
"group": "Even chromosomes"
},
{
"x": 1703.1,
"y": 0.4,
"group": "Even chromosomes"
},
{
"x": 1776.5,
"y": 0.25,
"group": "Even chromosomes"
},
{
"x": 1740.5,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 1738,
"y": 0.89,
"group": "Even chromosomes"
},
{
"x": 1801.2,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 1689.6,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 1726.6,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 1691.3,
"y": 0.51,
"group": "Even chromosomes"
},
{
"x": 1744.3,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 1795.1,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 1699.8,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 1796.8,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 1789.3,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 1693,
"y": 0.7,
"group": "Even chromosomes"
},
{
"x": 1778.5,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 1896,
"y": 0.92,
"group": "Odd chromosomes"
},
{
"x": 1875.3,
"y": 0.84,
"group": "Odd chromosomes"
},
{
"x": 1946.8,
"y": 0.36,
"group": "Odd chromosomes"
},
{
"x": 1853.5,
"y": 0.56,
"group": "Odd chromosomes"
},
{
"x": 1930.3,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 1895.7,
"y": 0.49,
"group": "Odd chromosomes"
},
{
"x": 1880.4,
"y": 0.51,
"group": "Odd chromosomes"
},
{
"x": 1873.7,
"y": 0.37,
"group": "Odd chromosomes"
},
{
"x": 1871.1,
"y": 0.56,
"group": "Odd chromosomes"
},
{
"x": 1889.3,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 1887.8,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 1922.3,
"y": 5.17,
"group": "Odd chromosomes"
},
{
"x": 1943.8,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 1876.4,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 1923.7,
"y": 0.93,
"group": "Odd chromosomes"
},
{
"x": 1842.5,
"y": 0.15,
"group": "Odd chromosomes"
},
{
"x": 1823.9,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 1860.6,
"y": 0.33,
"group": "Odd chromosomes"
},
{
"x": 1828.2,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 1897.7,
"y": 0.9,
"group": "Odd chromosomes"
},
{
"x": 1844,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 1874.2,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 1942.5,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 1947.1,
"y": 1.55,
"group": "Odd chromosomes"
},
{
"x": 1926.9,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 1878.2,
"y": 0.35,
"group": "Odd chromosomes"
},
{
"x": 1833.2,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 1925.1,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 1865.2,
"y": 0.25,
"group": "Odd chromosomes"
},
{
"x": 1930.8,
"y": 1.53,
"group": "Odd chromosomes"
},
{
"x": 1890.3,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 1926.6,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 1863.5,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 1944.5,
"y": 0.11,
"group": "Odd chromosomes"
},
{
"x": 1839.2,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 1866.8,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 1832.4,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 1854.1,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 1888.2,
"y": 0.84,
"group": "Odd chromosomes"
},
{
"x": 1848.1,
"y": 0.56,
"group": "Odd chromosomes"
},
{
"x": 2039.4,
"y": 3.34,
"group": "Even chromosomes"
},
{
"x": 1953.7,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2043.1,
"y": 1,
"group": "Even chromosomes"
},
{
"x": 2020.6,
"y": 0.49,
"group": "Even chromosomes"
},
{
"x": 1954.7,
"y": 0.33,
"group": "Even chromosomes"
},
{
"x": 1988.1,
"y": 1.18,
"group": "Even chromosomes"
},
{
"x": 1953.7,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 1954.4,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2028.7,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2058.2,
"y": 0.37,
"group": "Even chromosomes"
},
{
"x": 2073,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 2033,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 2029.2,
"y": 0.6,
"group": "Even chromosomes"
},
{
"x": 1997.4,
"y": 1.07,
"group": "Even chromosomes"
},
{
"x": 2045.5,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2002.5,
"y": 0.61,
"group": "Even chromosomes"
},
{
"x": 2018.7,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 1967.5,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2033.7,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 2082,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2079.5,
"y": 1.09,
"group": "Even chromosomes"
},
{
"x": 2016.6,
"y": 2.98,
"group": "Even chromosomes"
},
{
"x": 2050.9,
"y": 0.94,
"group": "Even chromosomes"
},
{
"x": 2030.8,
"y": 1,
"group": "Even chromosomes"
},
{
"x": 2019.9,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 2020.6,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 1950.8,
"y": 0.55,
"group": "Even chromosomes"
},
{
"x": 2070.5,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 1978.9,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2078.7,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2069.9,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 2030.9,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2024.1,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 2051.1,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 1961.4,
"y": 0.8,
"group": "Even chromosomes"
},
{
"x": 1990.2,
"y": 0.92,
"group": "Even chromosomes"
},
{
"x": 2073,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 1981.9,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2032.9,
"y": 1.69,
"group": "Even chromosomes"
},
{
"x": 1961.5,
"y": 1.65,
"group": "Even chromosomes"
},
{
"x": 2186.8,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2138.2,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2178.7,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2174.7,
"y": 0.52,
"group": "Odd chromosomes"
},
{
"x": 2184.2,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2123.5,
"y": 0.98,
"group": "Odd chromosomes"
},
{
"x": 2179.7,
"y": 0.74,
"group": "Odd chromosomes"
},
{
"x": 2086.8,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 2092.1,
"y": 0.57,
"group": "Odd chromosomes"
},
{
"x": 2164.7,
"y": 0.76,
"group": "Odd chromosomes"
},
{
"x": 2163.5,
"y": 0.78,
"group": "Odd chromosomes"
},
{
"x": 2091.3,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 2090.8,
"y": 0.19,
"group": "Odd chromosomes"
},
{
"x": 2171.6,
"y": 1.35,
"group": "Odd chromosomes"
},
{
"x": 2147.3,
"y": 1.13,
"group": "Odd chromosomes"
},
{
"x": 2090.5,
"y": 0.99,
"group": "Odd chromosomes"
},
{
"x": 2138.6,
"y": 0.7,
"group": "Odd chromosomes"
},
{
"x": 2128.8,
"y": 0.25,
"group": "Odd chromosomes"
},
{
"x": 2106.3,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 2178.1,
"y": 1.63,
"group": "Odd chromosomes"
},
{
"x": 2090.7,
"y": 1.9,
"group": "Odd chromosomes"
},
{
"x": 2194.7,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 2184.9,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 2101.8,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 2137.8,
"y": 0.07,
"group": "Odd chromosomes"
},
{
"x": 2125.1,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 2179.2,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2193.4,
"y": 0.38,
"group": "Odd chromosomes"
},
{
"x": 2196.8,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2109.6,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 2099.4,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 2192.6,
"y": 0.09,
"group": "Odd chromosomes"
},
{
"x": 2194.5,
"y": 1.09,
"group": "Odd chromosomes"
},
{
"x": 2099.4,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 2103.7,
"y": 0.15,
"group": "Odd chromosomes"
},
{
"x": 2095.1,
"y": 0.8,
"group": "Odd chromosomes"
},
{
"x": 2150.5,
"y": 0.07,
"group": "Odd chromosomes"
},
{
"x": 2101.6,
"y": 0.1,
"group": "Odd chromosomes"
},
{
"x": 2127.1,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2098,
"y": 0.36,
"group": "Odd chromosomes"
},
{
"x": 2254.1,
"y": 1.68,
"group": "Even chromosomes"
},
{
"x": 2227.6,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2222.4,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 2305.5,
"y": 0.38,
"group": "Even chromosomes"
},
{
"x": 2283.3,
"y": 0.75,
"group": "Even chromosomes"
},
{
"x": 2271.2,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 2239.9,
"y": 0.39,
"group": "Even chromosomes"
},
{
"x": 2288.9,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 2237.3,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2296.6,
"y": 0.37,
"group": "Even chromosomes"
},
{
"x": 2247.3,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 2286.6,
"y": 0.5,
"group": "Even chromosomes"
},
{
"x": 2206,
"y": 0.32,
"group": "Even chromosomes"
},
{
"x": 2304.9,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2220.4,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2206.9,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 2201.9,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2216.3,
"y": 0.38,
"group": "Even chromosomes"
},
{
"x": 2240.7,
"y": 0.4,
"group": "Even chromosomes"
},
{
"x": 2293.1,
"y": 0.26,
"group": "Even chromosomes"
},
{
"x": 2209.9,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 2227.2,
"y": 0.7,
"group": "Even chromosomes"
},
{
"x": 2277.4,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 2262.5,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 2260.7,
"y": 0.28,
"group": "Even chromosomes"
},
{
"x": 2233.7,
"y": 0.25,
"group": "Even chromosomes"
},
{
"x": 2273.7,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 2256.3,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2275.1,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2290.1,
"y": 0.91,
"group": "Even chromosomes"
},
{
"x": 2291.6,
"y": 0.71,
"group": "Even chromosomes"
},
{
"x": 2273.3,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 2300.5,
"y": 1.92,
"group": "Even chromosomes"
},
{
"x": 2269.6,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2279.8,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 2249.7,
"y": 0.78,
"group": "Even chromosomes"
},
{
"x": 2204.3,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2296,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2259.3,
"y": 0.8,
"group": "Even chromosomes"
},
{
"x": 2241.8,
"y": 0.5,
"group": "Even chromosomes"
},
{
"x": 2358.9,
"y": 0.75,
"group": "Odd chromosomes"
},
{
"x": 2314.7,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2351.6,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 2388,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 2310.7,
"y": 0.56,
"group": "Odd chromosomes"
},
{
"x": 2340.4,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 2335.4,
"y": 0.13,
"group": "Odd chromosomes"
},
{
"x": 2407.5,
"y": 0.85,
"group": "Odd chromosomes"
},
{
"x": 2376.9,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 2370.7,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 2378.1,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2364.2,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 2390.1,
"y": 0.51,
"group": "Odd chromosomes"
},
{
"x": 2378.5,
"y": 8.81,
"group": "Odd chromosomes"
},
{
"x": 2337.6,
"y": 0.42,
"group": "Odd chromosomes"
},
{
"x": 2320.5,
"y": 0.54,
"group": "Odd chromosomes"
},
{
"x": 2354.8,
"y": 0.26,
"group": "Odd chromosomes"
},
{
"x": 2407,
"y": 0.73,
"group": "Odd chromosomes"
},
{
"x": 2312.6,
"y": 0.54,
"group": "Odd chromosomes"
},
{
"x": 2328.3,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2382.8,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 2359.8,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 2328.2,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 2381.4,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 2318.8,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 2356.4,
"y": 0.13,
"group": "Odd chromosomes"
},
{
"x": 2364.5,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 2358.9,
"y": 0.3,
"group": "Odd chromosomes"
},
{
"x": 2331.5,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 2351,
"y": 0.41,
"group": "Odd chromosomes"
},
{
"x": 2338.8,
"y": 1.65,
"group": "Odd chromosomes"
},
{
"x": 2368.6,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2366.9,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 2333.5,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 2319.8,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2314.6,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 2381.7,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2326.4,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2398,
"y": 2.14,
"group": "Odd chromosomes"
},
{
"x": 2365.6,
"y": 0.19,
"group": "Odd chromosomes"
},
{
"x": 2415.8,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2461.3,
"y": 2.08,
"group": "Even chromosomes"
},
{
"x": 2412,
"y": 0.56,
"group": "Even chromosomes"
},
{
"x": 2414.4,
"y": 0.68,
"group": "Even chromosomes"
},
{
"x": 2456.9,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 2466.2,
"y": 0.22,
"group": "Even chromosomes"
},
{
"x": 2429.7,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2433.7,
"y": 0.72,
"group": "Even chromosomes"
},
{
"x": 2451,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 2432.8,
"y": 0.55,
"group": "Even chromosomes"
},
{
"x": 2475.6,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 2470.6,
"y": 0.28,
"group": "Even chromosomes"
},
{
"x": 2433.4,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 2412.6,
"y": 0.73,
"group": "Even chromosomes"
},
{
"x": 2414.6,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 2468.2,
"y": 0.23,
"group": "Even chromosomes"
},
{
"x": 2442.8,
"y": 0.58,
"group": "Even chromosomes"
},
{
"x": 2484.9,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 2458,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2483.2,
"y": 0.97,
"group": "Even chromosomes"
},
{
"x": 2489.7,
"y": 0.95,
"group": "Even chromosomes"
},
{
"x": 2445.2,
"y": 0.94,
"group": "Even chromosomes"
},
{
"x": 2465.9,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2482.5,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 2430.2,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 2497.7,
"y": 0.25,
"group": "Even chromosomes"
},
{
"x": 2462.7,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 2418.6,
"y": 0.84,
"group": "Even chromosomes"
},
{
"x": 2450.8,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 2425.4,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 2449.7,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 2442.4,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2469.2,
"y": 1.09,
"group": "Even chromosomes"
},
{
"x": 2464.7,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2491,
"y": 4.63,
"group": "Even chromosomes"
},
{
"x": 2424.6,
"y": 0.95,
"group": "Even chromosomes"
},
{
"x": 2451.6,
"y": 0.58,
"group": "Even chromosomes"
},
{
"x": 2481.6,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2414.9,
"y": 1.34,
"group": "Even chromosomes"
},
{
"x": 2460.2,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 2531.8,
"y": 0.41,
"group": "Odd chromosomes"
},
{
"x": 2565.6,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 2561.1,
"y": 0.23,
"group": "Odd chromosomes"
},
{
"x": 2532.6,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 2540,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2511.9,
"y": 0.25,
"group": "Odd chromosomes"
},
{
"x": 2506,
"y": 0.73,
"group": "Odd chromosomes"
},
{
"x": 2538.2,
"y": 0.11,
"group": "Odd chromosomes"
},
{
"x": 2571.7,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 2573.9,
"y": 1.09,
"group": "Odd chromosomes"
},
{
"x": 2535.6,
"y": 0.9,
"group": "Odd chromosomes"
},
{
"x": 2539.4,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 2514.8,
"y": 0.2,
"group": "Odd chromosomes"
},
{
"x": 2504.1,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 2578.5,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 2523.9,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2502,
"y": 0.89,
"group": "Odd chromosomes"
},
{
"x": 2567.3,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 2542.8,
"y": 0.94,
"group": "Odd chromosomes"
},
{
"x": 2538.2,
"y": 0.81,
"group": "Odd chromosomes"
},
{
"x": 2506.2,
"y": 0.09,
"group": "Odd chromosomes"
},
{
"x": 2509.1,
"y": 0.94,
"group": "Odd chromosomes"
},
{
"x": 2564.2,
"y": 0.05,
"group": "Odd chromosomes"
},
{
"x": 2529.6,
"y": 0.38,
"group": "Odd chromosomes"
},
{
"x": 2549.1,
"y": 0.82,
"group": "Odd chromosomes"
},
{
"x": 2501.7,
"y": 0.64,
"group": "Odd chromosomes"
},
{
"x": 2515.8,
"y": 0.76,
"group": "Odd chromosomes"
},
{
"x": 2519.9,
"y": 1.04,
"group": "Odd chromosomes"
},
{
"x": 2564.1,
"y": 0.14,
"group": "Odd chromosomes"
},
{
"x": 2533.6,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 2542.9,
"y": 0.45,
"group": "Odd chromosomes"
},
{
"x": 2515.6,
"y": 0.02,
"group": "Odd chromosomes"
},
{
"x": 2548.8,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2504.5,
"y": 1.37,
"group": "Odd chromosomes"
},
{
"x": 2576.1,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2537.1,
"y": 0.4,
"group": "Odd chromosomes"
},
{
"x": 2558.8,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2563.1,
"y": 0.56,
"group": "Odd chromosomes"
},
{
"x": 2518.9,
"y": 5.69,
"group": "Odd chromosomes"
},
{
"x": 2527.8,
"y": 0.54,
"group": "Odd chromosomes"
},
{
"x": 2614.6,
"y": 0.35,
"group": "Even chromosomes"
},
{
"x": 2641.3,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2651.8,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2633,
"y": 0.31,
"group": "Even chromosomes"
},
{
"x": 2650.8,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2587.2,
"y": 0.88,
"group": "Even chromosomes"
},
{
"x": 2635.2,
"y": 0.49,
"group": "Even chromosomes"
},
{
"x": 2605.3,
"y": 0.51,
"group": "Even chromosomes"
},
{
"x": 2617.5,
"y": 1.7,
"group": "Even chromosomes"
},
{
"x": 2596.1,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 2625.2,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 2650.1,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 2623.5,
"y": 0.55,
"group": "Even chromosomes"
},
{
"x": 2601,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 2583,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2646.5,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2608,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 2621.1,
"y": 0.21,
"group": "Even chromosomes"
},
{
"x": 2655,
"y": 0.24,
"group": "Even chromosomes"
},
{
"x": 2636.3,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2582.2,
"y": 1.42,
"group": "Even chromosomes"
},
{
"x": 2603.8,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 2648.3,
"y": 0.26,
"group": "Even chromosomes"
},
{
"x": 2630.9,
"y": 0.43,
"group": "Even chromosomes"
},
{
"x": 2614.3,
"y": 0.51,
"group": "Even chromosomes"
},
{
"x": 2600.8,
"y": 0.72,
"group": "Even chromosomes"
},
{
"x": 2607.9,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2603.9,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2587,
"y": 0.06,
"group": "Even chromosomes"
},
{
"x": 2590,
"y": 0.23,
"group": "Even chromosomes"
},
{
"x": 2641.9,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2589.6,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 2630.9,
"y": 1.08,
"group": "Even chromosomes"
},
{
"x": 2615.3,
"y": 0.52,
"group": "Even chromosomes"
},
{
"x": 2605.9,
"y": 0.43,
"group": "Even chromosomes"
},
{
"x": 2612.6,
"y": 0.59,
"group": "Even chromosomes"
},
{
"x": 2618,
"y": 0.46,
"group": "Even chromosomes"
},
{
"x": 2598.5,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2640.8,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2602.7,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2696,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 2704.4,
"y": 0.21,
"group": "Odd chromosomes"
},
{
"x": 2681.7,
"y": 0.53,
"group": "Odd chromosomes"
},
{
"x": 2699.9,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 2695.6,
"y": 0.93,
"group": "Odd chromosomes"
},
{
"x": 2662.5,
"y": 0.66,
"group": "Odd chromosomes"
},
{
"x": 2690.6,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2694.7,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 2712.1,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2700.1,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 2657.2,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 2710.8,
"y": 0.29,
"group": "Odd chromosomes"
},
{
"x": 2692.8,
"y": 0.43,
"group": "Odd chromosomes"
},
{
"x": 2694.6,
"y": 1.1,
"group": "Odd chromosomes"
},
{
"x": 2661.6,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 2664.8,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 2679.7,
"y": 0.38,
"group": "Odd chromosomes"
},
{
"x": 2708.5,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 2679.7,
"y": 0.29,
"group": "Odd chromosomes"
},
{
"x": 2677.1,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2660.3,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 2702.8,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 2665,
"y": 0.39,
"group": "Odd chromosomes"
},
{
"x": 2678.3,
"y": 0.23,
"group": "Odd chromosomes"
},
{
"x": 2705.9,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 2689.8,
"y": 0.16,
"group": "Odd chromosomes"
},
{
"x": 2657.6,
"y": 0.31,
"group": "Odd chromosomes"
},
{
"x": 2659.9,
"y": 0.12,
"group": "Odd chromosomes"
},
{
"x": 2678.6,
"y": 1.4,
"group": "Odd chromosomes"
},
{
"x": 2700.5,
"y": 0.09,
"group": "Odd chromosomes"
},
{
"x": 2685,
"y": 0.38,
"group": "Odd chromosomes"
},
{
"x": 2657.3,
"y": 0.49,
"group": "Odd chromosomes"
},
{
"x": 2670.3,
"y": 1.04,
"group": "Odd chromosomes"
},
{
"x": 2695.3,
"y": 0.03,
"group": "Odd chromosomes"
},
{
"x": 2677.9,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 2692.5,
"y": 0.36,
"group": "Odd chromosomes"
},
{
"x": 2658.2,
"y": 1.93,
"group": "Odd chromosomes"
},
{
"x": 2697.3,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 2697.8,
"y": 0.01,
"group": "Odd chromosomes"
},
{
"x": 2666.9,
"y": 0.48,
"group": "Odd chromosomes"
},
{
"x": 2744.9,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2737,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2717.1,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2758,
"y": 0.88,
"group": "Even chromosomes"
},
{
"x": 2758.4,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 2775.4,
"y": 1.07,
"group": "Even chromosomes"
},
{
"x": 2765.6,
"y": 0.27,
"group": "Even chromosomes"
},
{
"x": 2717.5,
"y": 0.29,
"group": "Even chromosomes"
},
{
"x": 2756.7,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2720.3,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2721.6,
"y": 0.21,
"group": "Even chromosomes"
},
{
"x": 2743.4,
"y": 0.26,
"group": "Even chromosomes"
},
{
"x": 2774.4,
"y": 0.33,
"group": "Even chromosomes"
},
{
"x": 2744.9,
"y": 0.26,
"group": "Even chromosomes"
},
{
"x": 2770.2,
"y": 0.22,
"group": "Even chromosomes"
},
{
"x": 2744.5,
"y": 8.26,
"group": "Even chromosomes"
},
{
"x": 2748.6,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2732.2,
"y": 0.54,
"group": "Even chromosomes"
},
{
"x": 2764.1,
"y": 0.02,
"group": "Even chromosomes"
},
{
"x": 2759.6,
"y": 0.25,
"group": "Even chromosomes"
},
{
"x": 2752.8,
"y": 1.62,
"group": "Even chromosomes"
},
{
"x": 2744.5,
"y": 0.33,
"group": "Even chromosomes"
},
{
"x": 2729.3,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2739.8,
"y": 0.85,
"group": "Even chromosomes"
},
{
"x": 2721.5,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 2766.4,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 2753.6,
"y": 0.15,
"group": "Even chromosomes"
},
{
"x": 2728.4,
"y": 0.81,
"group": "Even chromosomes"
},
{
"x": 2718.9,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2727,
"y": 0.47,
"group": "Even chromosomes"
},
{
"x": 2729.9,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 2723.5,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2716.8,
"y": 1.57,
"group": "Even chromosomes"
},
{
"x": 2735.9,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2728.9,
"y": 0.42,
"group": "Even chromosomes"
},
{
"x": 2721.2,
"y": 0.34,
"group": "Even chromosomes"
},
{
"x": 2762.6,
"y": 0.61,
"group": "Even chromosomes"
},
{
"x": 2740.2,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2750.8,
"y": 0.48,
"group": "Even chromosomes"
},
{
"x": 2743.4,
"y": 0.3,
"group": "Even chromosomes"
},
{
"x": 2792.7,
"y": 1.55,
"group": "Odd chromosomes"
},
{
"x": 2783.2,
"y": 0.46,
"group": "Odd chromosomes"
},
{
"x": 2825.2,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 2821.9,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2816.2,
"y": 0.7,
"group": "Odd chromosomes"
},
{
"x": 2779.5,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 2816.5,
"y": 8.36,
"group": "Odd chromosomes"
},
{
"x": 2807.4,
"y": 0.24,
"group": "Odd chromosomes"
},
{
"x": 2802.2,
"y": 1.73,
"group": "Odd chromosomes"
},
{
"x": 2795.6,
"y": 0.06,
"group": "Odd chromosomes"
},
{
"x": 2826.7,
"y": 0.49,
"group": "Odd chromosomes"
},
{
"x": 2819.9,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 2806.7,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2782,
"y": 0.13,
"group": "Odd chromosomes"
},
{
"x": 2781.9,
"y": 0.29,
"group": "Odd chromosomes"
},
{
"x": 2795.7,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 2788.2,
"y": 0.44,
"group": "Odd chromosomes"
},
{
"x": 2818.4,
"y": 0.4,
"group": "Odd chromosomes"
},
{
"x": 2816.4,
"y": 0.47,
"group": "Odd chromosomes"
},
{
"x": 2786.1,
"y": 0.28,
"group": "Odd chromosomes"
},
{
"x": 2816.4,
"y": 6.67,
"group": "Odd chromosomes"
},
{
"x": 2802.9,
"y": 0.33,
"group": "Odd chromosomes"
},
{
"x": 2791.2,
"y": 0.08,
"group": "Odd chromosomes"
},
{
"x": 2789.6,
"y": 1.22,
"group": "Odd chromosomes"
},
{
"x": 2788.1,
"y": 0.04,
"group": "Odd chromosomes"
},
{
"x": 2802.1,
"y": 0.61,
"group": "Odd chromosomes"
},
{
"x": 2801.4,
"y": 0.22,
"group": "Odd chromosomes"
},
{
"x": 2821.9,
"y": 0.15,
"group": "Odd chromosomes"
},
{
"x": 2825.2,
"y": 0.15,
"group": "Odd chromosomes"
},
{
"x": 2817.7,
"y": 0.5,
"group": "Odd chromosomes"
},
{
"x": 2800.7,
"y": 0.8,
"group": "Odd chromosomes"
},
{
"x": 2800.5,
"y": 0.4,
"group": "Odd chromosomes"
},
{
"x": 2799.8,
"y": 0.32,
"group": "Odd chromosomes"
},
{
"x": 2815.9,
"y": 0.34,
"group": "Odd chromosomes"
},
{
"x": 2799.5,
"y": 0.07,
"group": "Odd chromosomes"
},
{
"x": 2793.1,
"y": 0,
"group": "Odd chromosomes"
},
{
"x": 2779.6,
"y": 1.78,
"group": "Odd chromosomes"
},
{
"x": 2793,
"y": 0.17,
"group": "Odd chromosomes"
},
{
"x": 2809.5,
"y": 0.4,
"group": "Odd chromosomes"
},
{
"x": 2820,
"y": 0.27,
"group": "Odd chromosomes"
},
{
"x": 2855.5,
"y": 0.09,
"group": "Even chromosomes"
},
{
"x": 2867.3,
"y": 0.13,
"group": "Even chromosomes"
},
{
"x": 2872.6,
"y": 0.14,
"group": "Even chromosomes"
},
{
"x": 2850.6,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 2868.2,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 2874.6,
"y": 0.29,
"group": "Even chromosomes"
},
{
"x": 2862.3,
"y": 0.23,
"group": "Even chromosomes"
},
{
"x": 2830.6,
"y": 0.17,
"group": "Even chromosomes"
},
{
"x": 2828.1,
"y": 0.07,
"group": "Even chromosomes"
},
{
"x": 2861.9,
"y": 0.11,
"group": "Even chromosomes"
},
{
"x": 2858.2,
"y": 0.19,
"group": "Even chromosomes"
},
{
"x": 2831.8,
"y": 0.16,
"group": "Even chromosomes"
},
{
"x": 2861.8,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 2837,
"y": 0.03,
"group": "Even chromosomes"
},
{
"x": 2841.8,
"y": 0.29,
"group": "Even chromosomes"
},
{
"x": 2827.2,
"y": 0.7,
"group": "Even chromosomes"
},
{
"x": 2832.3,
"y": 0.76,
"group": "Even chromosomes"
},
{
"x": 2842,
"y": 0.1,
"group": "Even chromosomes"
},
{
"x": 2871.2,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 2857.6,
"y": 0.18,
"group": "Even chromosomes"
},
{
"x": 2875.7,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2833.5,
"y": 0,
"group": "Even chromosomes"
},
{
"x": 2839.4,
"y": 0.01,
"group": "Even chromosomes"
},
{
"x": 2839.3,
"y": 0.17,
"group": "Even chromosomes"
},
{
"x": 2843.5,
"y": 0.6,
"group": "Even chromosomes"
},
{
"x": 2838.7,
"y": 0.36,
"group": "Even chromosomes"
},
{
"x": 2861.1,
"y": 0.62,
"group": "Even chromosomes"
},
{
"x": 2837.5,
"y": 1.11,
"group": "Even chromosomes"
},
{
"x": 2863.3,
"y": 2.49,
"group": "Even chromosomes"
},
{
"x": 2828.6,
"y": 0.2,
"group": "Even chromosomes"
},
{
"x": 2837.9,
"y": 0.05,
"group": "Even chromosomes"
},
{
"x": 2829.8,
"y": 0.17,
"group": "Even chromosomes"
},
{
"x": 2866.5,
"y": 0.32,
"group": "Even chromosomes"
},
{
"x": 2844.1,
"y": 0.08,
"group": "Even chromosomes"
},
{
"x": 2856.4,
"y": 0.04,
"group": "Even chromosomes"
},
{
"x": 2873.7,
"y": 1.46,
"group": "Even chromosomes"
},
{
"x": 2845.9,
"y": 0.32,
"group": "Even chromosomes"
},
{
"x": 2828.6,
"y": 0.26,
"group": "Even chromosomes"
},
{
"x": 2864.1,
"y": 0.55,
"group": "Even chromosomes"
},
{
"x": 2846.1,
"y": 0.38,
"group": "Even chromosomes"
},
{
"x": 1180,
"y": 8.52,
"group": "Even chromosomes"
},
{
"x": 1180.8,
"y": 7.76,
"group": "Even chromosomes"
},
{
"x": 1181.6,
"y": 7.6,
"group": "Even chromosomes"
},
{
"x": 1182.4,
"y": 8.76,
"group": "Even chromosomes"
},
{
"x": 1183.2,
"y": 8.78,
"group": "Even chromosomes"
},
{
"x": 2250,
"y": 9.05,
"group": "Odd chromosomes"
},
{
"x": 2250.8,
"y": 8.43,
"group": "Odd chromosomes"
},
{
"x": 2251.6,
"y": 7.67,
"group": "Odd chromosomes"
},
{
"x": 2252.4,
"y": 8.54,
"group": "Odd chromosomes"
},
{
"x": 2253.2,
"y": 8.09,
"group": "Odd chromosomes"
},
{
"x": 2860,
"y": 9.31,
"group": "Even chromosomes"
},
{
"x": 2860.8,
"y": 7.93,
"group": "Even chromosomes"
},
{
"x": 2861.6,
"y": 9.12,
"group": "Even chromosomes"
},
{
"x": 2862.4,
"y": 8.79,
"group": "Even chromosomes"
},
{
"x": 2863.2,
"y": 8.09,
"group": "Even chromosomes"
}
],
"lines": [
{
"axis": "y",
"value": 7.3,
"label": "p = 5e-8"
}
],
"xTicks": [
{
"at": 124.5,
"label": "1"
},
{
"at": 370.5,
"label": "2"
},
{
"at": 591,
"label": "3"
},
{
"at": 785.5,
"label": "4"
},
{
"at": 971.5,
"label": "5"
},
{
"at": 1147.5,
"label": "6"
},
{
"at": 1312.5,
"label": "7"
},
{
"at": 1465,
"label": "8"
},
{
"at": 1608.5,
"label": "9"
},
{
"at": 1747,
"label": "10"
},
{
"at": 1882.5,
"label": "11"
},
{
"at": 2017,
"label": "12"
},
{
"at": 2141.5,
"label": "13"
},
{
"at": 2252.5,
"label": "14"
},
{
"at": 2357,
"label": "15"
},
{
"at": 2453,
"label": "16"
},
{
"at": 2538.5,
"label": "17"
},
{
"at": 2618,
"label": "18"
},
{
"at": 2686.5,
"label": "19"
},
{
"at": 2747.5,
"label": "20"
},
{
"at": 2803,
"label": "21"
},
{
"at": 2852.5,
"label": "22"
}
],
"xRange": [
0,
2878
],
"yRange": [
0,
10
],
"xTitle": "Chromosome",
"yTitle": "−log10 p"
},
"mobile": {
"width": 400,
"height": 420
}
}Source: Illustrative data, positions in megabases
Show chart data
| Point | Group | Chromosome | −log10 p |
|---|---|---|---|
| 891 | Even chromosomes | 2860 | 9.31 |
| 893 | Even chromosomes | 2861.6 | 9.12 |
| 886 | Odd chromosomes | 2250 | 9.05 |
| 574 | Odd chromosomes | 2378.5 | 8.81 |
| 894 | Even chromosomes | 2862.4 | 8.79 |
| 885 | Even chromosomes | 1183.2 | 8.78 |
| 884 | Even chromosomes | 1182.4 | 8.76 |
| 889 | Odd chromosomes | 2252.4 | 8.54 |
| 881 | Even chromosomes | 1180 | 8.52 |
| 887 | Odd chromosomes | 2250.8 | 8.43 |
| 807 | Odd chromosomes | 2816.5 | 8.36 |
| 776 | Even chromosomes | 2744.5 | 8.26 |
| 890 | Odd chromosomes | 2253.2 | 8.09 |
| 895 | Even chromosomes | 2863.2 | 8.09 |
| 892 | Even chromosomes | 2860.8 | 7.93 |
| 882 | Even chromosomes | 1180.8 | 7.76 |
| 888 | Odd chromosomes | 2251.6 | 7.67 |
| 883 | Even chromosomes | 1181.6 | 7.6 |
| 382 | Even chromosomes | 1794.4 | 6.83 |
| 821 | Odd chromosomes | 2816.4 | 6.67 |
Metabolic rate by body mass
examples/allometry.jsonDetail: Metabolic rate by body mass →{
"schemaVersion": 1,
"type": "scatter",
"title": "Metabolic rate by body mass",
"source": "Illustrative data",
"width": 760,
"height": 480,
"scatter": {
"points": [
{
"x": 5.2,
"y": 0.9,
"group": "Small"
},
{
"x": 64.8,
"y": 7.9,
"group": "Small"
},
{
"x": 75.4,
"y": 9.9,
"group": "Small"
},
{
"x": 325.4,
"y": 31.2,
"group": "Small"
},
{
"x": 6,
"y": 1.4,
"group": "Small"
},
{
"x": 25.8,
"y": 9.2,
"group": "Small"
},
{
"x": 323.1,
"y": 21.4,
"group": "Small"
},
{
"x": 2.8,
"y": 0.7,
"group": "Small"
},
{
"x": 80.3,
"y": 12.3,
"group": "Small"
},
{
"x": 167.4,
"y": 14.4,
"group": "Small"
},
{
"x": 103.3,
"y": 18.1,
"group": "Small"
},
{
"x": 59.3,
"y": 9.3,
"group": "Small"
},
{
"x": 8,
"y": 2.6,
"group": "Small"
},
{
"x": 26.2,
"y": 4.5,
"group": "Small"
},
{
"x": 143.4,
"y": 21.2,
"group": "Small"
},
{
"x": 579.8,
"y": 37.1,
"group": "Small"
},
{
"x": 15.3,
"y": 2.9,
"group": "Small"
},
{
"x": 640.9,
"y": 40.8,
"group": "Small"
},
{
"x": 433.1,
"y": 43.1,
"group": "Small"
},
{
"x": 4.5,
"y": 1.1,
"group": "Small"
},
{
"x": 787.8,
"y": 45.1,
"group": "Small"
},
{
"x": 8,
"y": 1.8,
"group": "Small"
},
{
"x": 33.2,
"y": 4.2,
"group": "Small"
},
{
"x": 56.9,
"y": 8.9,
"group": "Small"
},
{
"x": 56.6,
"y": 10.3,
"group": "Small"
},
{
"x": 612.1,
"y": 469.3,
"group": "Large"
},
{
"x": 370.9,
"y": 486.2,
"group": "Large"
},
{
"x": 3.1,
"y": 1.7,
"group": "Large"
},
{
"x": 381.9,
"y": 587.1,
"group": "Large"
},
{
"x": 51,
"y": 33.5,
"group": "Large"
},
{
"x": 138.5,
"y": 127.1,
"group": "Large"
},
{
"x": 52.6,
"y": 61.7,
"group": "Large"
},
{
"x": 7.2,
"y": 6.8,
"group": "Large"
},
{
"x": 932,
"y": 1116.9,
"group": "Large"
},
{
"x": 1.8,
"y": 1.1,
"group": "Large"
},
{
"x": 2.8,
"y": 1.2,
"group": "Large"
},
{
"x": 7.6,
"y": 5,
"group": "Large"
},
{
"x": 1.4,
"y": 0.4,
"group": "Large"
},
{
"x": 69.8,
"y": 78.2,
"group": "Large"
},
{
"x": 9.8,
"y": 6.9,
"group": "Large"
},
{
"x": 439.3,
"y": 541.8,
"group": "Large"
},
{
"x": 989.8,
"y": 951.5,
"group": "Large"
},
{
"x": 8.5,
"y": 7.1,
"group": "Large"
},
{
"x": 1.2,
"y": 0.7,
"group": "Large"
},
{
"x": 3.9,
"y": 1.7,
"group": "Large"
},
{
"x": 2.9,
"y": 2,
"group": "Large"
},
{
"x": 1.3,
"y": 0.8,
"group": "Large"
},
{
"x": 751.6,
"y": 620.8,
"group": "Large"
},
{
"x": 489.8,
"y": 372.6,
"group": "Large"
},
{
"x": 36.3,
"y": 31.5,
"group": "Large"
}
],
"regression": true,
"xScale": "log",
"yScale": "log",
"xTitle": "Body mass (g)",
"yTitle": "Metabolic rate (W)"
},
"mobile": {
"width": 400,
"height": 480
}
}Source: Illustrative data
Show chart data
| Point | Group | Body mass (g) | Metabolic rate (W) |
|---|---|---|---|
| 1 | Small | 5.2 | 0.9 |
| 2 | Small | 64.8 | 7.9 |
| 3 | Small | 75.4 | 9.9 |
| 4 | Small | 325.4 | 31.2 |
| 5 | Small | 6 | 1.4 |
| 6 | Small | 25.8 | 9.2 |
| 7 | Small | 323.1 | 21.4 |
| 8 | Small | 2.8 | 0.7 |
| 9 | Small | 80.3 | 12.3 |
| 10 | Small | 167.4 | 14.4 |
| 11 | Small | 103.3 | 18.1 |
| 12 | Small | 59.3 | 9.3 |
| 13 | Small | 8 | 2.6 |
| 14 | Small | 26.2 | 4.5 |
| 15 | Small | 143.4 | 21.2 |
| 16 | Small | 579.8 | 37.1 |
| 17 | Small | 15.3 | 2.9 |
| 18 | Small | 640.9 | 40.8 |
| 19 | Small | 433.1 | 43.1 |
| 20 | Small | 4.5 | 1.1 |
| 21 | Small | 787.8 | 45.1 |
| 22 | Small | 8 | 1.8 |
| 23 | Small | 33.2 | 4.2 |
| 24 | Small | 56.9 | 8.9 |
| 25 | Small | 56.6 | 10.3 |
| 26 | Large | 612.1 | 469.3 |
| 27 | Large | 370.9 | 486.2 |
| 28 | Large | 3.1 | 1.7 |
| 29 | Large | 381.9 | 587.1 |
| 30 | Large | 51 | 33.5 |
| 31 | Large | 138.5 | 127.1 |
| 32 | Large | 52.6 | 61.7 |
| 33 | Large | 7.2 | 6.8 |
| 34 | Large | 932 | 1116.9 |
| 35 | Large | 1.8 | 1.1 |
| 36 | Large | 2.8 | 1.2 |
| 37 | Large | 7.6 | 5 |
| 38 | Large | 1.4 | 0.4 |
| 39 | Large | 69.8 | 78.2 |
| 40 | Large | 9.8 | 6.9 |
| 41 | Large | 439.3 | 541.8 |
| 42 | Large | 989.8 | 951.5 |
| 43 | Large | 8.5 | 7.1 |
| 44 | Large | 1.2 | 0.7 |
| 45 | Large | 3.9 | 1.7 |
| 46 | Large | 2.9 | 2 |
| 47 | Large | 1.3 | 0.8 |
| 48 | Large | 751.6 | 620.8 |
| 49 | Large | 489.8 | 372.6 |
| 50 | Large | 36.3 | 31.5 |
Feature priorities: impact against effort
examples/feature-priorities.jsonDetail: Feature priorities: impact against effort →{
"schemaVersion": 1,
"type": "scatter",
"title": "Feature priorities: impact against effort",
"source": "Team estimates on a scale of 1 to 10, illustrative",
"width": 800,
"height": 520,
"scatter": {
"points": [
{
"x": 7.5,
"y": 8.2,
"label": "Analytics dashboard"
},
{
"x": 2.5,
"y": 8.9,
"label": "Single sign-on"
},
{
"x": 3.5,
"y": 7,
"label": "Saved filters"
},
{
"x": 1.5,
"y": 6.2,
"label": "Bulk export"
},
{
"x": 8.6,
"y": 6.4,
"label": "Offline mode"
},
{
"x": 6.2,
"y": 3.2,
"label": "Dark mode"
},
{
"x": 8.2,
"y": 1.8,
"label": "Legacy import"
},
{
"x": 1.8,
"y": 2.4,
"label": "New icons"
},
{
"x": 3.8,
"y": 4,
"label": "Keyboard shortcuts"
},
{
"x": 5.8,
"y": 9.1,
"label": "Usage-based billing"
}
],
"quadrants": {
"x": 5,
"y": 5,
"labels": {
"topLeft": "Quick wins",
"topRight": "Major projects",
"bottomLeft": "Fill-ins",
"bottomRight": "Thankless tasks"
}
},
"xRange": [
0,
10
],
"yRange": [
0,
10
],
"xTitle": "Effort",
"yTitle": "Impact"
},
"mobile": {
"width": 400,
"height": 480
}
}Source: Team estimates on a scale of 1 to 10, illustrative
Show chart data
| Point | Effort | Impact | Quadrant |
|---|---|---|---|
| Analytics dashboard | 7.5 | 8.2 | Major projects |
| Single sign-on | 2.5 | 8.9 | Quick wins |
| Saved filters | 3.5 | 7 | Quick wins |
| Bulk export | 1.5 | 6.2 | Quick wins |
| Offline mode | 8.6 | 6.4 | Major projects |
| Dark mode | 6.2 | 3.2 | Thankless tasks |
| Legacy import | 8.2 | 1.8 | Thankless tasks |
| New icons | 1.8 | 2.4 | Fill-ins |
| Keyboard shortcuts | 3.8 | 4 | Fill-ins |
| Usage-based billing | 5.8 | 9.1 | Major projects |
Overall survival by treatment
examples/overall-survival.jsonDetail: Overall survival by treatment →{
"schemaVersion": 1,
"type": "survival",
"title": "Overall survival by treatment",
"source": "Illustrative trial data, 40 patients per arm",
"width": 760,
"height": 520,
"survival": {
"groups": [
{
"label": "Standard",
"observations": [
{
"time": 8.4
},
{
"time": 14,
"event": false
},
{
"time": 9.9
},
{
"time": 2.9
},
{
"time": 13.9
},
{
"time": 1.4
},
{
"time": 1.3
},
{
"time": 1.3,
"event": false
},
{
"time": 28.9,
"event": false
},
{
"time": 14.9
},
{
"time": 0.5,
"event": false
},
{
"time": 1.8,
"event": false
},
{
"time": 3
},
{
"time": 0.4
},
{
"time": 8.1
},
{
"time": 10.3
},
{
"time": 9.7
},
{
"time": 8.3,
"event": false
},
{
"time": 29.9,
"event": false
},
{
"time": 21.2,
"event": false
},
{
"time": 5.3
},
{
"time": 2.1,
"event": false
},
{
"time": 12,
"event": false
},
{
"time": 11.6,
"event": false
},
{
"time": 25.4,
"event": false
},
{
"time": 0
},
{
"time": 14.1,
"event": false
},
{
"time": 11.9,
"event": false
},
{
"time": 1.1
},
{
"time": 8.1,
"event": false
},
{
"time": 1.3
},
{
"time": 22.7,
"event": false
},
{
"time": 1.8
},
{
"time": 1.5
},
{
"time": 5.3,
"event": false
},
{
"time": 11.5
},
{
"time": 3
},
{
"time": 2
},
{
"time": 1.7
},
{
"time": 3.4
}
]
},
{
"label": "New drug",
"observations": [
{
"time": 24.1,
"event": false
},
{
"time": 9.4
},
{
"time": 6.2
},
{
"time": 19.3,
"event": false
},
{
"time": 2.7
},
{
"time": 6.2
},
{
"time": 9.9,
"event": false
},
{
"time": 2.2,
"event": false
},
{
"time": 2.5
},
{
"time": 7.2
},
{
"time": 12.1
},
{
"time": 14.5,
"event": false
},
{
"time": 22.2
},
{
"time": 4.6,
"event": false
},
{
"time": 24.5,
"event": false
},
{
"time": 5.7,
"event": false
},
{
"time": 28.2,
"event": false
},
{
"time": 5.7
},
{
"time": 18.1,
"event": false
},
{
"time": 3.1,
"event": false
},
{
"time": 1
},
{
"time": 7.1
},
{
"time": 7.7
},
{
"time": 8.8,
"event": false
},
{
"time": 5
},
{
"time": 1.9
},
{
"time": 21.3
},
{
"time": 8.4,
"event": false
},
{
"time": 6.1,
"event": false
},
{
"time": 0.4
},
{
"time": 1.8,
"event": false
},
{
"time": 5
},
{
"time": 3.9,
"event": false
},
{
"time": 11.7
},
{
"time": 19.7,
"event": false
},
{
"time": 17.5,
"event": false
},
{
"time": 1.1,
"event": false
},
{
"time": 0.5
},
{
"time": 28.9,
"event": false
},
{
"time": 0.6
}
]
}
],
"confidence": true,
"timeTitle": "Months since randomization",
"logRank": true
},
"mobile": {
"width": 380,
"height": 560
}
}Source: Illustrative trial data, 40 patients per arm
Show chart data
| Group | Time | Survival | lower | upper | At risk |
|---|---|---|---|---|---|
| Standard | 0 | 97.5% | 83.5% | 99.6% | 40 |
| Standard | 10 | 46.7% | 29.5% | 62.2% | 14 |
| Standard | 20 | 29.7% | 13.7% | 47.6% | 5 |
| Standard | 30 | 29.7% | 13.7% | 47.6% | 0 |
| New drug | 0 | 100.0% | 100.0% | 100.0% | 40 |
| New drug | 10 | 52.5% | 34.1% | 68.0% | 13 |
| New drug | 20 | 44.4% | 26.3% | 61.1% | 6 |
| New drug | 30 | 29.6% | 11.6% | 50.3% | 0 |
Parts of a whole
From visit to order
examples/checkout-funnel.jsonDetail: From visit to order →{
"schemaVersion": 1,
"type": "funnel",
"title": "From visit to order",
"source": "Illustrative shop data, one month",
"width": 760,
"height": 380,
"funnel": {
"stages": [
{
"label": "Visits",
"value": 12400
},
{
"label": "Product views",
"value": 7300
},
{
"label": "Added to cart",
"value": 2100
},
{
"label": "Checkout started",
"value": 1250
},
{
"label": "Orders",
"value": 840
}
]
},
"mobile": {
"width": 380,
"height": 420
}
}Source: Illustrative shop data, one month
Show chart data
| Stage | Value | Share | Rate |
|---|---|---|---|
| Visits | 12400 | 100.0% | |
| Product views | 7300 | 58.9% | 58.9% |
| Added to cart | 2100 | 16.9% | 28.8% |
| Checkout started | 1250 | 10.1% | 59.5% |
| Orders | 840 | 6.8% | 67.2% |
Levels of support
examples/support-tiers.jsonDetail: Levels of support →{
"schemaVersion": 1,
"type": "funnel",
"title": "Levels of support",
"source": "Illustrative support organization",
"width": 760,
"height": 360,
"funnel": {
"display": "pyramid",
"stages": [
{
"label": "Escalation",
"value": 20
},
{
"label": "Specialists",
"value": 140
},
{
"label": "First line",
"value": 900
},
{
"label": "Self-service",
"value": 6400
}
]
},
"mobile": {
"width": 380,
"height": 380
}
}Source: Illustrative support organization
Show chart data
| Level | Position | Value |
|---|---|---|
| Escalation | 1 | 20 |
| Specialists | 2 | 140 |
| First line | 3 | 900 |
| Self-service | 4 | 6400 |
Revenue by region and product
examples/market-by-region.jsonDetail: Revenue by region and product →{
"schemaVersion": 1,
"type": "mosaic",
"title": "Revenue by region and product",
"source": "Illustrative revenue in million euros",
"width": 760,
"height": 460,
"mosaic": {
"columns": [
{
"label": "Europe",
"segments": [
{
"label": "Hardware",
"value": 120
},
{
"label": "Software",
"value": 180
},
{
"label": "Services",
"value": 100
}
]
},
{
"label": "North America",
"segments": [
{
"label": "Hardware",
"value": 90
},
{
"label": "Software",
"value": 210
},
{
"label": "Services",
"value": 150
}
]
},
{
"label": "Asia",
"segments": [
{
"label": "Hardware",
"value": 140
},
{
"label": "Software",
"value": 60
},
{
"label": "Services",
"value": 40
}
]
},
{
"label": "Other",
"segments": [
{
"label": "Hardware",
"value": 60
},
{
"label": "Software",
"value": 50
},
{
"label": "Services",
"value": 40
}
]
}
]
},
"mobile": {
"width": 380,
"height": 460
}
}Source: Illustrative revenue in million euros
Show chart data
| Column | Segment | Value | Share of column | Share of total |
|---|---|---|---|---|
| Europe | Hardware | 120 | 30.0% | 9.7% |
| Europe | Software | 180 | 45.0% | 14.5% |
| Europe | Services | 100 | 25.0% | 8.1% |
| Europe | Total | 400 | 100.0% | 32.3% |
| North America | Hardware | 90 | 20.0% | 7.3% |
| North America | Software | 210 | 46.7% | 16.9% |
| North America | Services | 150 | 33.3% | 12.1% |
| North America | Total | 450 | 100.0% | 36.3% |
| Asia | Hardware | 140 | 58.3% | 11.3% |
| Asia | Software | 60 | 25.0% | 4.8% |
| Asia | Services | 40 | 16.7% | 3.2% |
| Asia | Total | 240 | 100.0% | 19.4% |
| Other | Hardware | 60 | 40.0% | 4.8% |
| Other | Software | 50 | 33.3% | 4.0% |
| Other | Services | 40 | 26.7% | 3.2% |
| Other | Total | 150 | 100.0% | 12.1% |
Where the electricity came from
examples/energy-sources.jsonDetail: Where the electricity came from →{
"schemaVersion": 1,
"type": "waffle",
"title": "Where the electricity came from",
"source": "Illustrative shares of one year",
"width": 760,
"height": 380,
"waffle": {
"parts": [
{
"label": "Wind",
"value": 31
},
{
"label": "Solar",
"value": 12
},
{
"label": "Gas",
"value": 28
},
{
"label": "Coal",
"value": 17
}
],
"total": 100
},
"mobile": {
"width": 380,
"height": 520
}
}Source: Illustrative shares of one year
Show chart data
| Part | Value | Share | Squares |
|---|---|---|---|
| Wind | 31 | 31.0% | 31 |
| Solar | 12 | 12.0% | 12 |
| Gas | 28 | 28.0% | 28 |
| Coal | 17 | 17.0% | 17 |
| Rest | 12 | 12.0% | 12 |
Seats after the election
examples/election-result.jsonDetail: Seats after the election →{
"schemaVersion": 1,
"type": "parliament",
"title": "Seats after the election",
"source": "Illustrative result",
"width": 760,
"height": 520,
"parliament": {
"parties": [
{
"label": "Left alliance",
"seats": 38
},
{
"label": "Greens",
"seats": 24
},
{
"label": "Social democrats",
"seats": 41
},
{
"label": "Liberals",
"seats": 18
},
{
"label": "Conservatives",
"seats": 52
},
{
"label": "Populists",
"seats": 27
}
],
"majority": true,
"coalition": [
"Greens",
"Social democrats",
"Liberals",
"Left alliance"
]
},
"mobile": {
"width": 380,
"height": 620
}
}Source: Illustrative result
Show chart data
| Party | Seats | Share | Coalition |
|---|---|---|---|
| Left alliance | 38 | 19.0% | yes |
| Greens | 24 | 12.0% | yes |
| Social democrats | 41 | 20.5% | yes |
| Liberals | 18 | 9.0% | yes |
| Conservatives | 52 | 26.0% | |
| Populists | 27 | 13.5% |
Where the budget goes
examples/budget-by-department.jsonDetail: Where the budget goes →{
"schemaVersion": 1,
"type": "treemap",
"title": "Where the budget goes",
"source": "Illustrative budget in millions",
"width": 760,
"height": 460,
"treemap": {
"items": [
{
"label": "Schools",
"value": 310,
"group": "Society"
},
{
"label": "Universities",
"value": 140,
"group": "Society"
},
{
"label": "Hospitals",
"value": 280,
"group": "Society"
},
{
"label": "Pensions",
"value": 220,
"group": "Society"
},
{
"label": "Roads",
"value": 120,
"group": "Infrastructure"
},
{
"label": "Rail",
"value": 95,
"group": "Infrastructure"
},
{
"label": "Net",
"value": 55,
"group": "Infrastructure"
},
{
"label": "Police",
"value": 85,
"group": "Security"
},
{
"label": "Defence",
"value": 150,
"group": "Security"
},
{
"label": "Fire",
"value": 50,
"group": "Security"
},
{
"label": "Parks",
"value": 45,
"group": "Environment"
},
{
"label": "Water",
"value": 75,
"group": "Environment"
},
{
"label": "Waste",
"value": 60,
"group": "Environment"
}
]
},
"mobile": {
"width": 380,
"height": 560
}
}Source: Illustrative budget in millions
Show chart data
| Item | Value | Share | Group |
|---|---|---|---|
| Schools | 310 | 18.4% | Society |
| Hospitals | 280 | 16.6% | Society |
| Pensions | 220 | 13.1% | Society |
| Defence | 150 | 8.9% | Security |
| Universities | 140 | 8.3% | Society |
| Roads | 120 | 7.1% | Infrastructure |
| Rail | 95 | 5.6% | Infrastructure |
| Police | 85 | 5.0% | Security |
| Water | 75 | 4.5% | Environment |
| Waste | 60 | 3.6% | Environment |
| Net | 55 | 3.3% | Infrastructure |
| Fire | 50 | 3.0% | Security |
| Parks | 45 | 2.7% | Environment |
The budget by sector and department
examples/budget-by-sector.jsonDetail: The budget by sector and department →{
"schemaVersion": 1,
"type": "treemap",
"title": "The budget by sector and department",
"source": "Illustrative budget in millions",
"width": 760,
"height": 480,
"treemap": {
"items": [
{
"label": "Society",
"children": [
{
"label": "Schools",
"value": 310
},
{
"label": "Hospitals",
"value": 280
},
{
"label": "Pensions",
"value": 220
},
{
"label": "Universities",
"value": 140
}
]
},
{
"label": "Security",
"children": [
{
"label": "Defence",
"value": 150
},
{
"label": "Police",
"value": 85
},
{
"label": "Fire",
"value": 50
}
]
},
{
"label": "Infrastructure",
"children": [
{
"label": "Roads",
"value": 120
},
{
"label": "Rail",
"value": 95
},
{
"label": "Net",
"value": 55
}
]
},
{
"label": "Nature",
"children": [
{
"label": "Water",
"value": 75
},
{
"label": "Waste",
"value": 60
},
{
"label": "Parks",
"value": 45
}
]
}
]
},
"mobile": {
"width": 380,
"height": 640
}
}Source: Illustrative budget in millions
Show chart data
| Item | Value | Share | Group |
|---|---|---|---|
| Society | 950 | 56.4% | Society |
| Society › Schools | 310 | 18.4% | Society |
| Society › Hospitals | 280 | 16.6% | Society |
| Society › Pensions | 220 | 13.1% | Society |
| Society › Universities | 140 | 8.3% | Society |
| Security | 285 | 16.9% | Security |
| Security › Defence | 150 | 8.9% | Security |
| Security › Police | 85 | 5.0% | Security |
| Security › Fire | 50 | 3.0% | Security |
| Infrastructure | 270 | 16.0% | Infrastructure |
| Infrastructure › Roads | 120 | 7.1% | Infrastructure |
| Infrastructure › Rail | 95 | 5.6% | Infrastructure |
| Infrastructure › Net | 55 | 3.3% | Infrastructure |
| Nature | 180 | 10.7% | Nature |
| Nature › Water | 75 | 4.5% | Nature |
| Nature › Waste | 60 | 3.6% | Nature |
| Nature › Parks | 45 | 2.7% | Nature |
Flows
From energy source to use
examples/energy-flow.jsonDetail: From energy source to use →{
"schemaVersion": 1,
"type": "sankey",
"title": "From energy source to use",
"source": "Illustrative flows in TWh",
"width": 760,
"height": 460,
"sankey": {
"links": [
{
"from": "Gas",
"to": "Power",
"value": 120
},
{
"from": "Gas",
"to": "Heating",
"value": 160
},
{
"from": "Coal",
"to": "Power",
"value": 80
},
{
"from": "Wind",
"to": "Power",
"value": 90
},
{
"from": "Solar",
"to": "Power",
"value": 40
},
{
"from": "Oil",
"to": "Transport",
"value": 150
},
{
"from": "Oil",
"to": "Industry",
"value": 50
},
{
"from": "Power",
"to": "Industry",
"value": 120
},
{
"from": "Power",
"to": "Households",
"value": 100
},
{
"from": "Power",
"to": "Transport",
"value": 20
},
{
"from": "Power",
"to": "Losses",
"value": 90
},
{
"from": "Heating",
"to": "Households",
"value": 160
}
]
},
"mobile": {
"width": 380,
"height": 560
}
}Source: Illustrative flows in TWh
Show chart data
| from | to | Value | Share |
|---|---|---|---|
| Gas | Heating | 160 | 23.2% |
| Heating | Households | 160 | 23.2% |
| Oil | Transport | 150 | 21.7% |
| Gas | Power | 120 | 17.4% |
| Power | Industry | 120 | 17.4% |
| Power | Households | 100 | 14.5% |
| Wind | Power | 90 | 13.0% |
| Power | Losses | 90 | 13.0% |
| Coal | Power | 80 | 11.6% |
| Oil | Industry | 50 | 7.2% |
| Solar | Power | 40 | 5.8% |
| Power | Transport | 20 | 2.9% |
Water in a town, with recycling
examples/water-cycle.jsonDetail: Water in a town, with recycling →{
"schemaVersion": 1,
"type": "sankey",
"title": "Water in a town, with recycling",
"source": "Illustrative flows in million cubic metres",
"width": 880,
"height": 520,
"sankey": {
"links": [
{
"from": "Intake",
"to": "Treatment",
"value": 100
},
{
"from": "Recycling",
"to": "Treatment",
"value": 40,
"back": true
},
{
"from": "Treatment",
"to": "Households",
"value": 60
},
{
"from": "Treatment",
"to": "Industry",
"value": 80
},
{
"from": "Households",
"to": "Wastewater",
"value": 50
},
{
"from": "Industry",
"to": "Wastewater",
"value": 60
},
{
"from": "Wastewater",
"to": "Recycling",
"value": 40
},
{
"from": "Wastewater",
"to": "River",
"value": 70
}
]
}
}Source: Illustrative flows in million cubic metres
Show chart data
| from | to | Value | Share |
|---|---|---|---|
| Intake | Treatment | 100 | 100.0% |
| Treatment | Industry | 80 | 80.0% |
| Wastewater | River | 70 | 70.0% |
| Treatment | Households | 60 | 60.0% |
| Industry | Wastewater | 60 | 60.0% |
| Households | Wastewater | 50 | 50.0% |
| Recycling | Treatment | 40 | 40.0% |
| Wastewater | Recycling | 40 | 40.0% |
Voter movement
examples/voter-movement.jsonDetail: Voter movement →{
"schemaVersion": 1,
"type": "sankey",
"title": "Voter movement",
"width": 760,
"height": 460,
"sankey": {
"order": "listed",
"nodes": [
{
"label": "Red 2021",
"column": 0,
"color": 2
},
{
"label": "Green 2021",
"column": 0,
"color": 3
},
{
"label": "Blue 2021",
"column": 0,
"color": 1
},
{
"label": "Red 2025",
"column": 1,
"color": 2
},
{
"label": "Green 2025",
"column": 1,
"color": 3
},
{
"label": "Blue 2025",
"column": 1,
"color": 1
},
{
"label": "Did not vote",
"column": 1,
"color": 4
}
],
"links": [
{
"from": "Red 2021",
"to": "Red 2025",
"value": 40
},
{
"from": "Red 2021",
"to": "Green 2025",
"value": 10
},
{
"from": "Red 2021",
"to": "Did not vote",
"value": 5
},
{
"from": "Green 2021",
"to": "Green 2025",
"value": 25
},
{
"from": "Green 2021",
"to": "Red 2025",
"value": 8
},
{
"from": "Blue 2021",
"to": "Blue 2025",
"value": 30
},
{
"from": "Blue 2021",
"to": "Red 2025",
"value": 6
},
{
"from": "Blue 2021",
"to": "Did not vote",
"value": 9
}
]
},
"source": "Illustrative survey, in thousands of voters",
"mobile": {
"width": 400,
"height": 520
}
}Source: Illustrative survey, in thousands of voters
Show chart data
| from | to | Value | Share |
|---|---|---|---|
| Red 2021 | Red 2025 | 40 | 30.1% |
| Blue 2021 | Blue 2025 | 30 | 22.6% |
| Green 2021 | Green 2025 | 25 | 18.8% |
| Red 2021 | Green 2025 | 10 | 7.5% |
| Blue 2021 | Did not vote | 9 | 6.8% |
| Green 2021 | Red 2025 | 8 | 6.0% |
| Blue 2021 | Red 2025 | 6 | 4.5% |
| Red 2021 | Did not vote | 5 | 3.8% |
Sequence and state diagrams
Reading an item through the cache
examples/cache-lookup.jsonDetail: Reading an item through the cache →{
"schemaVersion": 1,
"type": "sequence",
"title": "Reading an item through the cache",
"source": "Service handbook, request flow",
"width": 800,
"height": 670,
"sequence": {
"participants": [
{
"id": "user",
"label": "Reader",
"kind": "actor"
},
{
"id": "api",
"label": "Item API",
"sublabel": "HTTP :8080"
},
{
"id": "cache",
"label": "Cache",
"sublabel": "in memory",
"kind": "database"
},
{
"id": "db",
"label": "Item store",
"sublabel": "Postgres",
"kind": "database"
},
{
"id": "events",
"label": "Change feed",
"kind": "queue"
}
],
"messages": [
{
"from": "user",
"to": "api",
"label": "GET /items/42"
},
{
"from": "api",
"to": "api",
"label": "check token"
},
{
"from": "api",
"to": "cache",
"label": "get item:42"
},
{
"from": "cache",
"to": "api",
"label": "hit",
"kind": "reply"
},
{
"from": "cache",
"to": "api",
"label": "miss",
"kind": "reply"
},
{
"from": "api",
"to": "db",
"label": "SELECT item 42"
},
{
"from": "db",
"to": "api",
"label": "row",
"kind": "reply"
},
{
"from": "api",
"to": "cache",
"label": "set item:42, 5 min",
"kind": "async"
},
{
"from": "api",
"to": "events",
"label": "item.read",
"kind": "async"
},
{
"from": "api",
"to": "user",
"label": "200 OK",
"kind": "reply"
}
],
"fragments": [
{
"kind": "alt",
"label": "cached",
"from": 3,
"to": 7,
"else": [
{
"from": 4,
"label": "not cached"
}
]
}
],
"numbered": true
}
}Focus
Source: Service handbook, request flow
Show chart data
| No. | From | To | Message | Kind | Fragment |
|---|---|---|---|---|---|
| 1 | Reader | Item API | GET /items/42 | call | |
| 2 | Item API | Item API | check token | call | |
| 3 | Item API | Cache | get item:42 | call | |
| 4 | Cache | Item API | hit | reply | alt [cached] |
| 5 | Cache | Item API | miss | reply | alt [not cached] |
| 6 | Item API | Item store | SELECT item 42 | call | alt [not cached] |
| 7 | Item store | Item API | row | reply | alt [not cached] |
| 8 | Item API | Cache | set item:42, 5 min | asynchronous | alt [not cached] |
| 9 | Item API | Change feed | item.read | asynchronous | |
| 10 | Item API | Reader | 200 OK | reply |
Exporting a report in the background
examples/async-export.jsonDetail: Exporting a report in the background →{
"schemaVersion": 1,
"type": "sequence",
"title": "Exporting a report in the background",
"source": "Service handbook, export flow",
"width": 1300,
"height": 400,
"sequence": {
"orientation": "landscape",
"participants": [
{
"id": "client",
"label": "Browser",
"kind": "actor"
},
{
"id": "api",
"label": "Export API"
},
{
"id": "queue",
"label": "Jobs",
"kind": "queue"
},
{
"id": "worker",
"label": "Worker"
},
{
"id": "files",
"label": "File storage",
"kind": "external"
}
],
"messages": [
{
"from": "client",
"to": "api",
"label": "POST /exports"
},
{
"from": "api",
"to": "queue",
"label": "enqueue",
"kind": "async"
},
{
"from": "api",
"to": "client",
"label": "202, job id",
"kind": "reply"
},
{
"from": "worker",
"to": "queue",
"label": "take job"
},
{
"from": "worker",
"to": "files",
"label": "write report"
},
{
"from": "client",
"to": "api",
"label": "GET /exports/7"
},
{
"from": "api",
"to": "client",
"label": "running",
"kind": "reply"
},
{
"from": "worker",
"to": "api",
"label": "done",
"kind": "async"
},
{
"from": "client",
"to": "api",
"label": "GET /exports/7"
},
{
"from": "api",
"to": "client",
"label": "download link",
"kind": "reply"
}
],
"fragments": [
{
"kind": "loop",
"label": "every 5 s",
"from": 5,
"to": 6
}
]
}
}Focus
Source: Service handbook, export flow
Show chart data
| No. | From | To | Message | Kind | Fragment |
|---|---|---|---|---|---|
| 1 | Browser | Export API | POST /exports | call | |
| 2 | Export API | Jobs | enqueue | asynchronous | |
| 3 | Export API | Browser | 202, job id | reply | |
| 4 | Worker | Jobs | take job | call | |
| 5 | Worker | File storage | write report | call | |
| 6 | Browser | Export API | GET /exports/7 | call | loop [every 5 s] |
| 7 | Export API | Browser | running | reply | loop [every 5 s] |
| 8 | Worker | Export API | done | asynchronous | |
| 9 | Browser | Export API | GET /exports/7 | call | |
| 10 | Export API | Browser | download link | reply |
Sign-in with OIDC and a backend for frontend
examples/sign-in-sequence.jsonDetail: Sign-in with OIDC and a backend for frontend →{
"schemaVersion": 1,
"type": "sequence",
"title": "Sign-in with OIDC and a backend for frontend",
"source": "Illustrative reference architecture",
"width": 900,
"height": 900,
"sequence": {
"participants": [
{
"id": "browser",
"label": "Browser",
"kind": "actor"
},
{
"id": "bff",
"label": "Web / BFF",
"sublabel": "SvelteKit"
},
{
"id": "idp",
"label": "Keycloak",
"sublabel": "OIDC"
},
{
"id": "api",
"label": "Domain API",
"sublabel": "Rust"
},
{
"id": "db",
"label": "Postgres",
"sublabel": "RLS",
"kind": "database"
}
],
"messages": [
{
"from": "browser",
"to": "bff",
"label": "GET /grades"
},
{
"from": "bff",
"to": "browser",
"label": "Redirect, PKCE",
"kind": "reply"
},
{
"from": "browser",
"to": "idp",
"label": "Sign in, 2FA"
},
{
"from": "idp",
"to": "browser",
"label": "Code",
"kind": "reply"
},
{
"from": "browser",
"to": "bff",
"label": "Callback with code"
},
{
"from": "bff",
"to": "idp",
"label": "Exchange code"
},
{
"from": "idp",
"to": "bff",
"label": "Tokens",
"kind": "reply"
},
{
"from": "bff",
"to": "bff",
"label": "Create session"
},
{
"from": "bff",
"to": "api",
"label": "Load grades"
},
{
"from": "api",
"to": "db",
"label": "Set tenant, SELECT"
},
{
"from": "db",
"to": "api",
"label": "own school only",
"kind": "reply"
},
{
"from": "api",
"to": "bff",
"label": "Grades",
"kind": "reply"
},
{
"from": "bff",
"to": "browser",
"label": "Page, session cookie",
"kind": "reply"
},
{
"from": "idp",
"to": "bff",
"label": "Backchannel logout",
"kind": "async"
},
{
"from": "bff",
"to": "bff",
"label": "End sessions"
}
],
"fragments": [
{
"kind": "opt",
"label": "central sign-out",
"from": 13,
"to": 14
}
],
"numbered": true
},
"mobile": {
"width": 400,
"height": 920
}
}Focus
Source: Illustrative reference architecture
Show chart data
| No. | From | To | Message | Kind | Fragment |
|---|---|---|---|---|---|
| 1 | Browser | Web / BFF | GET /grades | call | |
| 2 | Web / BFF | Browser | Redirect, PKCE | reply | |
| 3 | Browser | Keycloak | Sign in, 2FA | call | |
| 4 | Keycloak | Browser | Code | reply | |
| 5 | Browser | Web / BFF | Callback with code | call | |
| 6 | Web / BFF | Keycloak | Exchange code | call | |
| 7 | Keycloak | Web / BFF | Tokens | reply | |
| 8 | Web / BFF | Web / BFF | Create session | call | |
| 9 | Web / BFF | Domain API | Load grades | call | |
| 10 | Domain API | Postgres | Set tenant, SELECT | call | |
| 11 | Postgres | Domain API | own school only | reply | |
| 12 | Domain API | Web / BFF | Grades | reply | |
| 13 | Web / BFF | Browser | Page, session cookie | reply | |
| 14 | Keycloak | Web / BFF | Backchannel logout | asynchronous | opt [central sign-out] |
| 15 | Web / BFF | Web / BFF | End sessions | call | opt [central sign-out] |
Sign-in: the token exchange
examples/sign-in-focus.jsonDetail: Sign-in: the token exchange →{
"schemaVersion": 1,
"type": "sequence",
"title": "Sign-in: the token exchange",
"source": "Illustrative reference architecture",
"width": 900,
"height": 900,
"sequence": {
"participants": [
{
"id": "browser",
"label": "Browser",
"kind": "actor"
},
{
"id": "bff",
"label": "Web / BFF",
"sublabel": "SvelteKit"
},
{
"id": "idp",
"label": "Keycloak",
"sublabel": "OIDC"
},
{
"id": "api",
"label": "Domain API",
"sublabel": "Rust"
},
{
"id": "db",
"label": "Postgres",
"sublabel": "RLS",
"kind": "database"
}
],
"messages": [
{
"from": "browser",
"to": "bff",
"label": "GET /grades"
},
{
"from": "bff",
"to": "browser",
"label": "Redirect, PKCE",
"kind": "reply"
},
{
"from": "browser",
"to": "idp",
"label": "Sign in, 2FA"
},
{
"from": "idp",
"to": "browser",
"label": "Code",
"kind": "reply"
},
{
"from": "browser",
"to": "bff",
"label": "Callback with code"
},
{
"from": "bff",
"to": "idp",
"label": "Exchange code"
},
{
"from": "idp",
"to": "bff",
"label": "Tokens",
"kind": "reply"
},
{
"from": "bff",
"to": "bff",
"label": "Create session"
},
{
"from": "bff",
"to": "api",
"label": "Load grades"
},
{
"from": "api",
"to": "db",
"label": "Set tenant, SELECT"
},
{
"from": "db",
"to": "api",
"label": "own school only",
"kind": "reply"
},
{
"from": "api",
"to": "bff",
"label": "Grades",
"kind": "reply"
},
{
"from": "bff",
"to": "browser",
"label": "Page, session cookie",
"kind": "reply"
},
{
"from": "idp",
"to": "bff",
"label": "Backchannel logout",
"kind": "async"
},
{
"from": "bff",
"to": "bff",
"label": "End sessions"
}
],
"fragments": [
{
"kind": "opt",
"label": "central sign-out",
"from": 13,
"to": 14
}
],
"numbered": true
},
"mobile": {
"width": 400,
"height": 920
},
"emphasis": {
"nodes": [
"idp"
],
"path": [
"bff",
"idp"
]
},
"legend": "auto"
}Focus
Source: Illustrative reference architecture
Show chart data
| No. | From | To | Message | Kind | Fragment | Emphasis |
|---|---|---|---|---|---|---|
| 1 | Browser | Web / BFF | GET /grades | call | ||
| 2 | Web / BFF | Browser | Redirect, PKCE | reply | ||
| 3 | Browser | Keycloak | Sign in, 2FA | call | ||
| 4 | Keycloak | Browser | Code | reply | ||
| 5 | Browser | Web / BFF | Callback with code | call | ||
| 6 | Web / BFF | Keycloak | Exchange code | call | on emphasized path | |
| 7 | Keycloak | Web / BFF | Tokens | reply | on emphasized path | |
| 8 | Web / BFF | Web / BFF | Create session | call | ||
| 9 | Web / BFF | Domain API | Load grades | call | ||
| 10 | Domain API | Postgres | Set tenant, SELECT | call | ||
| 11 | Postgres | Domain API | own school only | reply | ||
| 12 | Domain API | Web / BFF | Grades | reply | ||
| 13 | Web / BFF | Browser | Page, session cookie | reply | ||
| 14 | Keycloak | Web / BFF | Backchannel logout | asynchronous | opt [central sign-out] | on emphasized path |
| 15 | Web / BFF | Web / BFF | End sessions | call | opt [central sign-out] |
Life of a support ticket
examples/ticket-states.jsonDetail: Life of a support ticket →{
"schemaVersion": 1,
"type": "state",
"title": "Life of a support ticket",
"source": "Support handbook, ticket states",
"width": 900,
"height": 900,
"state": {
"initial": "new",
"states": [
{
"id": "new",
"label": "New"
},
{
"id": "triaged",
"label": "Triaged"
},
{
"id": "severity",
"label": "Severity?",
"kind": "choice"
},
{
"id": "handling",
"label": "Being handled",
"kind": "composite"
},
{
"id": "progress",
"label": "In progress",
"sublabel": "assigned",
"in": "handling"
},
{
"id": "waiting",
"label": "Waiting for customer",
"in": "handling"
},
{
"id": "resolved",
"label": "Resolved"
},
{
"id": "closed",
"label": "Closed",
"final": true
},
{
"id": "rejected",
"label": "Rejected",
"final": true
}
],
"transitions": [
{
"from": "new",
"to": "triaged",
"event": "review"
},
{
"from": "triaged",
"to": "severity",
"event": "classify"
},
{
"from": "severity",
"to": "progress",
"guard": "valid",
"action": "assign"
},
{
"from": "severity",
"to": "rejected",
"guard": "duplicate"
},
{
"from": "progress",
"to": "waiting",
"event": "ask"
},
{
"from": "waiting",
"to": "progress",
"event": "reply"
},
{
"from": "waiting",
"to": "waiting",
"event": "after 3 days",
"action": "remind"
},
{
"from": "progress",
"to": "resolved",
"event": "fix shipped"
},
{
"from": "resolved",
"to": "progress",
"event": "reopen",
"dash": "dashed"
},
{
"from": "resolved",
"to": "closed",
"event": "after 7 days"
}
],
"mainPath": [
"new",
"triaged",
"severity",
"progress",
"resolved",
"closed"
]
}
}Focus
Source: Support handbook, ticket states
Show chart data
| From | Event | Guard | Action | To |
|---|---|---|---|---|
| Start | New | |||
| New | review | Triaged | ||
| Triaged | classify | Severity? | ||
| Severity? | valid | assign | In progress | |
| Severity? | duplicate | Rejected | ||
| In progress | ask | Waiting for customer | ||
| In progress | fix shipped | Resolved | ||
| Waiting for customer | reply | In progress | ||
| Waiting for customer | after 3 days | remind | Waiting for customer | |
| Resolved | reopen | In progress | ||
| Resolved | after 7 days | Closed |
Flow charts
From commit to release
examples/release-flow.jsonDetail: From commit to release →{
"schemaVersion": 1,
"type": "flow",
"title": "From commit to release",
"source": "Team handbook, release process",
"width": 1120,
"height": 1020,
"flow": {
"lanes": [
{
"id": "dev",
"label": "Development"
},
{
"id": "ci",
"label": "Continuous integration"
},
{
"id": "ops",
"label": "Operations"
}
],
"nodes": [
{
"id": "commit",
"label": "Commit pushed",
"kind": "start",
"lane": "dev"
},
{
"id": "review",
"label": "Code review",
"lane": "dev"
},
{
"id": "build",
"label": "Build",
"sublabel": "locked inputs",
"lane": "ci"
},
{
"id": "tests",
"label": "Run tests",
"lane": "ci"
},
{
"id": "green",
"label": "All green?",
"kind": "decision",
"lane": "ci"
},
{
"id": "fix",
"label": "Fix failures",
"lane": "dev"
},
{
"id": "staging",
"label": "Deploy to staging",
"lane": "ops"
},
{
"id": "approve",
"label": "Approved?",
"kind": "decision",
"lane": "ops"
},
{
"id": "prod",
"label": "Deploy to production",
"lane": "ops"
},
{
"id": "done",
"label": "Released",
"kind": "end",
"lane": "ops"
}
],
"edges": [
{
"from": "commit",
"to": "review"
},
{
"from": "review",
"to": "build",
"label": "merged"
},
{
"from": "build",
"to": "tests"
},
{
"from": "tests",
"to": "green"
},
{
"from": "green",
"to": "staging",
"label": "yes"
},
{
"from": "green",
"to": "fix",
"label": "no"
},
{
"from": "fix",
"to": "build",
"label": "retry"
},
{
"from": "staging",
"to": "approve"
},
{
"from": "approve",
"to": "prod",
"label": "yes"
},
{
"from": "approve",
"to": "review",
"label": "changes requested",
"dash": "dashed"
},
{
"from": "prod",
"to": "done"
}
],
"groups": [
{
"label": "Quality gates",
"nodes": [
"build",
"tests",
"green"
]
}
],
"mainPath": [
"commit",
"review",
"build",
"tests",
"green",
"staging",
"approve",
"prod",
"done"
]
}
}Focus
Source: Team handbook, release process
Show chart data
| Step | Kind | Lane | Group | Leads to |
|---|---|---|---|---|
| Commit pushed | start | Development | Code review | |
| Code review | step | Development | Build (merged) | |
| Build | step | Continuous integration | Quality gates | Run tests |
| Run tests | step | Continuous integration | Quality gates | All green? |
| All green? | decision | Continuous integration | Quality gates | Deploy to staging (yes), Fix failures (no) |
| Fix failures | step | Development | Build (retry) | |
| Deploy to staging | step | Operations | Approved? | |
| Approved? | decision | Operations | Deploy to production (yes), Code review (changes requested) | |
| Deploy to production | step | Operations | Released | |
| Released | end | Operations |
From commit to release: the quality gate
examples/release-focus.jsonDetail: From commit to release: the quality gate →{
"schemaVersion": 1,
"type": "flow",
"title": "From commit to release: the quality gate",
"source": "Team handbook, release process",
"width": 1120,
"height": 1064,
"flow": {
"lanes": [
{
"id": "dev",
"label": "Development"
},
{
"id": "ci",
"label": "Continuous integration"
},
{
"id": "ops",
"label": "Operations"
}
],
"nodes": [
{
"id": "commit",
"label": "Commit pushed",
"kind": "start",
"lane": "dev"
},
{
"id": "review",
"label": "Code review",
"lane": "dev"
},
{
"id": "build",
"label": "Build",
"sublabel": "locked inputs",
"lane": "ci"
},
{
"id": "tests",
"label": "Run tests",
"lane": "ci"
},
{
"id": "green",
"label": "All green?",
"kind": "decision",
"lane": "ci"
},
{
"id": "fix",
"label": "Fix failures",
"lane": "dev"
},
{
"id": "staging",
"label": "Deploy to staging",
"lane": "ops"
},
{
"id": "approve",
"label": "Approved?",
"kind": "decision",
"lane": "ops"
},
{
"id": "prod",
"label": "Deploy to production",
"lane": "ops"
},
{
"id": "done",
"label": "Released",
"kind": "end",
"lane": "ops"
}
],
"edges": [
{
"from": "commit",
"to": "review"
},
{
"from": "review",
"to": "build",
"label": "merged"
},
{
"from": "build",
"to": "tests"
},
{
"from": "tests",
"to": "green"
},
{
"from": "green",
"to": "staging",
"label": "yes"
},
{
"from": "green",
"to": "fix",
"label": "no"
},
{
"from": "fix",
"to": "build",
"label": "retry"
},
{
"from": "staging",
"to": "approve"
},
{
"from": "approve",
"to": "prod",
"label": "yes"
},
{
"from": "approve",
"to": "review",
"label": "changes requested",
"dash": "dashed"
},
{
"from": "prod",
"to": "done"
}
],
"groups": [
{
"label": "Quality gates",
"nodes": [
"build",
"tests",
"green"
]
}
],
"mainPath": [
"commit",
"review",
"build",
"tests",
"green",
"staging",
"approve",
"prod",
"done"
]
},
"emphasis": {
"nodes": [
"green"
],
"path": [
"build",
"tests",
"green",
"staging"
]
},
"legend": "auto",
"mobile": {
"width": 584,
"height": 1500
}
}Focus
Source: Team handbook, release process
Show chart data
| Step | Kind | Lane | Group | Leads to | Emphasis |
|---|---|---|---|---|---|
| Commit pushed | start | Development | Code review | ||
| Code review | step | Development | Build (merged) | ||
| Build | step | Continuous integration | Quality gates | Run tests | on emphasized path |
| Run tests | step | Continuous integration | Quality gates | All green? | on emphasized path |
| All green? | decision | Continuous integration | Quality gates | Deploy to staging (yes), Fix failures (no) | emphasized, on emphasized path |
| Fix failures | step | Development | Build (retry) | ||
| Deploy to staging | step | Operations | Approved? | on emphasized path | |
| Approved? | decision | Operations | Deploy to production (yes), Code review (changes requested) | ||
| Deploy to production | step | Operations | Released | ||
| Released | end | Operations |
Handling an order
examples/order-flow.jsonDetail: Handling an order →{
"schemaVersion": 1,
"type": "flow",
"title": "Handling an order",
"source": "Shop operations handbook",
"width": 1320,
"height": 420,
"flow": {
"nodes": [
{
"id": "received",
"label": "Order received",
"kind": "start"
},
{
"id": "paid",
"label": "Payment cleared?",
"kind": "decision"
},
{
"id": "reserve",
"label": "Reserve stock"
},
{
"id": "stock",
"label": "Inventory",
"kind": "store"
},
{
"id": "available",
"label": "In stock?",
"kind": "decision"
},
{
"id": "backorder",
"label": "Backorder",
"sublabel": "supplier",
"kind": "subprocess"
},
{
"id": "ship",
"label": "Ship parcel"
},
{
"id": "notify",
"label": "Notify customer",
"kind": "io"
},
{
"id": "delivered",
"label": "Delivered",
"kind": "end"
},
{
"id": "cancelled",
"label": "Cancelled",
"kind": "end"
}
],
"edges": [
{
"from": "received",
"to": "paid"
},
{
"from": "paid",
"to": "reserve",
"label": "yes"
},
{
"from": "paid",
"to": "notify",
"label": "no"
},
{
"from": "reserve",
"to": "stock",
"label": "update",
"dash": "dotted"
},
{
"from": "reserve",
"to": "available"
},
{
"from": "available",
"to": "ship",
"label": "yes"
},
{
"from": "available",
"to": "backorder",
"label": "no"
},
{
"from": "backorder",
"to": "reserve",
"label": "restocked",
"dash": "dashed"
},
{
"from": "ship",
"to": "delivered"
},
{
"from": "notify",
"to": "cancelled"
}
],
"mainPath": [
"received",
"paid",
"reserve",
"available",
"ship",
"delivered"
]
}
}Focus
Source: Shop operations handbook
Show chart data
| Step | Kind | Leads to |
|---|---|---|
| Order received | start | Payment cleared? |
| Payment cleared? | decision | Reserve stock (yes), Notify customer (no) |
| Reserve stock | step | Inventory (update), In stock? |
| Notify customer | input or output | Cancelled |
| Inventory | data store | |
| In stock? | decision | Ship parcel (yes), Backorder (no) |
| Cancelled | end | |
| Ship parcel | step | Delivered |
| Backorder | subprocess | Reserve stock (restocked) |
| Delivered | end |
Contract review
examples/contract-review.jsonDetail: Contract review →{
"schemaVersion": 1,
"type": "flow",
"title": "Contract review",
"source": "Legal operations handbook",
"width": 720,
"height": 860,
"flow": {
"nodes": [
{
"id": "request",
"label": "Contract requested",
"kind": "start"
},
{
"id": "draft",
"label": "Draft contract",
"sublabel": "from the template"
},
{
"id": "legal",
"label": "Legal review"
},
{
"id": "compliant",
"label": "Compliant?",
"kind": "decision"
},
{
"id": "terms",
"label": "Negotiate terms"
},
{
"id": "agreed",
"label": "Terms agreed?",
"kind": "decision"
},
{
"id": "sign",
"label": "Sign",
"sublabel": "both parties"
},
{
"id": "archive",
"label": "Contract archive",
"kind": "store"
},
{
"id": "done",
"label": "In force",
"kind": "end"
}
],
"edges": [
{
"from": "request",
"to": "draft"
},
{
"from": "draft",
"to": "legal"
},
{
"from": "legal",
"to": "compliant"
},
{
"from": "compliant",
"to": "terms",
"label": "yes"
},
{
"from": "compliant",
"to": "draft",
"label": "no",
"dash": "dashed",
"fromSide": "right",
"toSide": "right"
},
{
"from": "terms",
"to": "agreed"
},
{
"from": "agreed",
"to": "sign",
"label": "yes"
},
{
"from": "agreed",
"to": "terms",
"label": "no, revise",
"dash": "dashed",
"fromSide": "left",
"toSide": "left"
},
{
"from": "sign",
"to": "archive",
"fromSide": "left"
},
{
"from": "sign",
"to": "done"
}
],
"mainPath": {
"from": "request",
"to": "done"
}
},
"mobile": {
"width": 360,
"height": 860
}
}Focus
Source: Legal operations handbook
Show chart data
| Step | Kind | Leads to |
|---|---|---|
| Contract requested | start | Draft contract |
| Draft contract | step | Legal review |
| Legal review | step | Compliant? |
| Compliant? | decision | Negotiate terms (yes), Draft contract (no) |
| Negotiate terms | step | Terms agreed? |
| Terms agreed? | decision | Sign (yes), Negotiate terms (no, revise) |
| Sign | step | Contract archive, In force |
| Contract archive | data store | |
| In force | end |
Order fulfilment with parallel checks
examples/order-fulfilment.jsonDetail: Order fulfilment with parallel checks →{
"schemaVersion": 1,
"type": "flow",
"title": "Order fulfilment with parallel checks",
"source": "Warehouse handbook, order path",
"width": 960,
"height": 700,
"flow": {
"nodes": [
{
"id": "received",
"label": "Order received",
"kind": "start"
},
{
"id": "split",
"label": "Split into tasks"
},
{
"id": "stock",
"label": "Reserve stock"
},
{
"id": "payment",
"label": "Capture payment"
},
{
"id": "fraud",
"label": "Check fraud score"
},
{
"id": "address",
"label": "Validate address"
},
{
"id": "pack",
"label": "Pack parcel"
},
{
"id": "express",
"label": "Express?",
"kind": "decision"
},
{
"id": "courier",
"label": "Hand to courier"
},
{
"id": "post",
"label": "Send by post"
},
{
"id": "shipped",
"label": "Shipped",
"kind": "end"
}
],
"edges": [
{
"from": "received",
"to": "split"
},
{
"from": "split",
"to": "stock"
},
{
"from": "split",
"to": "payment"
},
{
"from": "split",
"to": "fraud"
},
{
"from": "split",
"to": "address"
},
{
"from": "stock",
"to": "pack"
},
{
"from": "payment",
"to": "pack"
},
{
"from": "fraud",
"to": "pack"
},
{
"from": "address",
"to": "pack"
},
{
"from": "pack",
"to": "express"
},
{
"from": "express",
"to": "courier",
"label": "yes"
},
{
"from": "express",
"to": "post",
"label": "no"
},
{
"from": "courier",
"to": "shipped"
},
{
"from": "post",
"to": "shipped"
}
],
"groups": [
{
"label": "Checks",
"nodes": [
"stock",
"payment",
"fraud",
"address"
]
}
],
"mainPath": [
"received",
"split",
"payment",
"pack",
"express",
"courier",
"shipped"
],
"sharedTrunks": true
}
}Focus
Source: Warehouse handbook, order path
Show chart data
| Step | Kind | Group | Leads to |
|---|---|---|---|
| Order received | start | Split into tasks | |
| Split into tasks | step | Reserve stock, Capture payment, Check fraud score, Validate address | |
| Reserve stock | step | Checks | Pack parcel |
| Capture payment | step | Checks | Pack parcel |
| Check fraud score | step | Checks | Pack parcel |
| Validate address | step | Checks | Pack parcel |
| Pack parcel | step | Express? | |
| Express? | decision | Hand to courier (yes), Send by post (no) | |
| Hand to courier | step | Shipped | |
| Send by post | step | Shipped | |
| Shipped | end |
How insurance claims were settled
examples/claim-handling.jsonDetail: How insurance claims were settled →{
"schemaVersion": 1,
"type": "flow",
"title": "How insurance claims were settled",
"source": "Claims system, 2025",
"width": 960,
"height": 300,
"flow": {
"orientation": "landscape",
"nodes": [
{
"id": "in",
"label": "Claim received",
"sublabel": "12,400 claims",
"kind": "start"
},
{
"id": "check",
"label": "First check",
"sublabel": "12,400",
"parts": [
{
"label": "settled",
"value": 5200
},
{
"label": "assessed",
"value": 6400
},
{
"label": "rejected",
"value": 800
}
]
},
{
"id": "assess",
"label": "Assessment",
"sublabel": "6,400",
"parts": [
{
"label": "settled",
"value": 4100
},
{
"label": "rejected",
"value": 1300
},
{
"label": "appealed",
"value": 1000
}
]
},
{
"id": "appeal",
"label": "Appeal",
"sublabel": "1,000",
"parts": [
{
"label": "settled",
"value": 450
},
{
"label": "rejected",
"value": 550
}
]
},
{
"id": "done",
"label": "Closed",
"kind": "end"
}
],
"edges": [
{
"from": "in",
"to": "check"
},
{
"from": "check",
"to": "assess"
},
{
"from": "check",
"to": "done"
},
{
"from": "assess",
"to": "appeal"
},
{
"from": "assess",
"to": "done"
},
{
"from": "appeal",
"to": "done"
}
],
"mainPath": {
"from": "in",
"to": "done"
}
}
}Focus
Source: Claims system, 2025
Show chart data
| Step | Kind | Parts | Leads to |
|---|---|---|---|
| Claim received | start | First check | |
| First check | step | settled 5200 (42%), assessed 6400 (52%), rejected 800 (6%) | Assessment, Closed |
| Assessment | step | settled 4100 (64%), rejected 1300 (20%), appealed 1000 (16%) | Appeal, Closed |
| Appeal | step | settled 450 (45%), rejected 550 (55%) | Closed |
| Closed | end |
Study selection (PRISMA 2020)
examples/study-selection.jsonDetail: Study selection (PRISMA 2020) →{
"schemaVersion": 1,
"type": "flow",
"title": "Study selection (PRISMA 2020)",
"source": "Illustrative counts. Reports excluded: wrong population 61, wrong outcome 48, other 33",
"width": 720,
"height": 980,
"flow": {
"nodes": [
{
"id": "databases",
"label": "Records from databases",
"sublabel": "n = 1,482",
"kind": "io"
},
{
"id": "registers",
"label": "Records from registers",
"sublabel": "n = 214",
"kind": "io"
},
{
"id": "duplicates",
"label": "Duplicates removed",
"sublabel": "n = 389",
"kind": "external"
},
{
"id": "screened",
"label": "Records screened",
"sublabel": "n = 1,307"
},
{
"id": "excluded",
"label": "Records excluded",
"sublabel": "n = 1,121",
"kind": "external"
},
{
"id": "sought",
"label": "Reports sought",
"sublabel": "n = 186"
},
{
"id": "missing",
"label": "Reports not retrieved",
"sublabel": "n = 9",
"kind": "external"
},
{
"id": "assessed",
"label": "Reports assessed",
"sublabel": "n = 177"
},
{
"id": "reasons",
"label": "Reports excluded",
"sublabel": "n = 142",
"kind": "external"
},
{
"id": "studies",
"label": "Studies included",
"sublabel": "n = 35",
"kind": "end"
}
],
"edges": [
{
"from": "databases",
"to": "duplicates"
},
{
"from": "registers",
"to": "duplicates"
},
{
"from": "duplicates",
"to": "screened"
},
{
"from": "screened",
"to": "excluded"
},
{
"from": "screened",
"to": "sought"
},
{
"from": "sought",
"to": "missing"
},
{
"from": "sought",
"to": "assessed"
},
{
"from": "assessed",
"to": "reasons"
},
{
"from": "assessed",
"to": "studies"
}
],
"mainPath": [
"databases",
"duplicates",
"screened",
"sought",
"assessed",
"studies"
],
"groups": [
{
"label": "Identification",
"nodes": [
"databases",
"registers",
"duplicates"
]
},
{
"label": "Screening",
"nodes": [
"screened",
"excluded",
"sought",
"missing",
"assessed",
"reasons"
]
},
{
"label": "Included",
"nodes": [
"studies"
]
}
]
},
"mobile": {
"width": 440,
"height": 960
}
}Focus
Source: Illustrative counts. Reports excluded: wrong population 61, wrong outcome 48, other 33
Show chart data
| Step | Kind | Group | Leads to |
|---|---|---|---|
| Records from databases | input or output | Identification | Duplicates removed |
| Records from registers | input or output | Identification | Duplicates removed |
| Duplicates removed | external | Identification | Records screened |
| Records screened | step | Screening | Records excluded, Reports sought |
| Records excluded | external | Screening | |
| Reports sought | step | Screening | Reports not retrieved, Reports assessed |
| Reports not retrieved | external | Screening | |
| Reports assessed | step | Screening | Reports excluded, Studies included |
| Reports excluded | external | Screening | |
| Studies included | end | Included |
Instanzenzug in Zivilsachen
examples/court-instances.jsonDetail: Instanzenzug in Zivilsachen →{
"schemaVersion": 1,
"type": "flow",
"title": "Instanzenzug in Zivilsachen",
"source": "Vereinfacht, Deutschland",
"locale": "de",
"width": 760,
"height": 640,
"flow": {
"nodes": [
{
"id": "ag",
"label": "Amtsgericht",
"sublabel": "Streitwert bis 5.000 €",
"kind": "start"
},
{
"id": "lg1",
"label": "Landgericht",
"sublabel": "Streitwert über 5.000 €",
"kind": "start"
},
{
"id": "lg2",
"label": "Landgericht",
"sublabel": "Berufung"
},
{
"id": "olg1",
"label": "Oberlandesgericht",
"sublabel": "Berufung"
},
{
"id": "bgh",
"label": "Bundesgerichtshof",
"sublabel": "Revision",
"kind": "end"
}
],
"edges": [
{
"from": "ag",
"to": "lg2",
"label": "Berufung"
},
{
"from": "lg1",
"to": "olg1",
"label": "Berufung"
},
{
"from": "lg2",
"to": "bgh",
"label": "Revision, wenn zugelassen"
},
{
"from": "olg1",
"to": "bgh",
"label": "Revision, wenn zugelassen"
}
]
},
"mobile": {
"width": 440,
"height": 720
}
}Fokus
Quelle: Vereinfacht, Deutschland
Diagrammdaten anzeigen
| Schritt | Art | Führt zu |
|---|---|---|
| Amtsgericht | Start | Landgericht (Berufung) |
| Landgericht | Start | Oberlandesgericht (Berufung) |
| Landgericht | Schritt | Bundesgerichtshof (Revision, wenn zugelassen) |
| Oberlandesgericht | Schritt | Bundesgerichtshof (Revision, wenn zugelassen) |
| Bundesgerichtshof | Ende |
Architecture diagrams
Web shop on one cloud region
examples/shop-architecture.jsonDetail: Web shop on one cloud region →{
"schemaVersion": 1,
"type": "architecture",
"title": "Web shop on one cloud region",
"source": "Architecture handbook, overview",
"width": 1820,
"height": 540,
"architecture": {
"boundaries": [
{
"id": "region",
"label": "Cloud region eu-central-1"
},
{
"id": "network",
"label": "Private network",
"in": "region"
},
{
"id": "data",
"label": "Data zone",
"in": "network"
}
],
"components": [
{
"id": "customer",
"label": "Customer",
"kind": "person"
},
{
"id": "web",
"label": "Web shop",
"sublabel": "browser",
"kind": "frontend"
},
{
"id": "cdn",
"label": "Content network",
"kind": "external"
},
{
"id": "api",
"label": "Shop API",
"sublabel": "Node.js",
"in": "network"
},
{
"id": "cache",
"label": "Session cache",
"sublabel": "Redis",
"kind": "cache",
"in": "network"
},
{
"id": "events",
"label": "Order events",
"kind": "queue",
"in": "network"
},
{
"id": "worker",
"label": "Order worker",
"in": "network"
},
{
"id": "db",
"label": "Orders",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "files",
"label": "Invoices",
"sublabel": "object storage",
"kind": "storage",
"in": "region"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
},
{
"id": "auth",
"label": "Sign-in",
"sublabel": "identity provider",
"kind": "security",
"in": "network"
}
],
"connections": [
{
"from": "customer",
"to": "web",
"label": "browses"
},
{
"from": "web",
"to": "cdn",
"label": "loads assets",
"technology": "HTTPS",
"dash": "dashed"
},
{
"from": "web",
"to": "api",
"label": "calls",
"technology": "HTTPS/JSON"
},
{
"from": "api",
"to": "cache",
"label": "sessions",
"technology": "RESP"
},
{
"from": "api",
"to": "auth",
"label": "checks token",
"technology": "OIDC"
},
{
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"from": "api",
"to": "events",
"label": "publishes",
"technology": "AMQP"
},
{
"from": "events",
"to": "worker",
"label": "delivers"
},
{
"from": "worker",
"to": "pay",
"label": "charges",
"technology": "HTTPS"
},
{
"from": "worker",
"to": "files",
"label": "stores PDF",
"technology": "S3 API"
},
{
"from": "worker",
"to": "db",
"label": "updates",
"technology": "SQL/TLS"
}
],
"mainPath": [
"customer",
"web",
"api",
"events",
"worker",
"pay"
]
}
}Focus
Source: Architecture handbook, overview
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Customer | person | Web shop (browses) | |
| Web shop | frontend | Content network (loads assets, via HTTPS), Shop API (calls, via HTTPS/JSON) | |
| Shop API | service | Cloud region eu-central-1 › Private network | Session cache (sessions, via RESP), Sign-in (checks token, via OIDC), Orders (reads, writes, via SQL/TLS), Order events (publishes, via AMQP) |
| Content network | external system | ||
| Session cache | cache | Cloud region eu-central-1 › Private network | |
| Order events | queue | Cloud region eu-central-1 › Private network | Order worker (delivers) |
| Sign-in | security | Cloud region eu-central-1 › Private network | |
| Order worker | service | Cloud region eu-central-1 › Private network | Payment provider (charges, via HTTPS), Invoices (stores PDF, via S3 API), Orders (updates, via SQL/TLS) |
| Orders | database | Cloud region eu-central-1 › Private network › Data zone | |
| Invoices | storage | Cloud region eu-central-1 | |
| Payment provider | external system |
Multi-tenant line-of-business application
examples/tenant-architecture.jsonDetail: Multi-tenant line-of-business application →{
"schemaVersion": 1,
"type": "architecture",
"title": "Multi-tenant line-of-business application",
"source": "Illustrative reference architecture",
"width": 1200,
"height": 1100,
"architecture": {
"boundaries": [
{
"id": "rz",
"label": "Data center"
},
{
"id": "netz",
"label": "Application network",
"in": "rz"
},
{
"id": "daten",
"label": "Data zone",
"in": "netz"
}
],
"components": [
{
"id": "nutzer",
"label": "Teacher, parent",
"kind": "person"
},
{
"id": "browser",
"label": "Browser",
"kind": "frontend"
},
{
"id": "proxy",
"label": "Reverse proxy",
"sublabel": "TLS 1.3, WAF",
"kind": "security",
"in": "rz"
},
{
"id": "web",
"label": "Web / BFF",
"sublabel": "SvelteKit",
"in": "netz"
},
{
"id": "idp",
"label": "Sign-in",
"sublabel": "Keycloak, OIDC",
"kind": "security",
"in": "netz"
},
{
"id": "api",
"label": "Domain API",
"sublabel": "Rust",
"in": "netz"
},
{
"id": "db",
"label": "Domain data",
"sublabel": "Postgres, RLS per tenant",
"kind": "database",
"in": "daten"
},
{
"id": "audit",
"label": "Audit log",
"sublabel": "append only",
"kind": "database",
"in": "daten"
},
{
"id": "backup",
"label": "Backup",
"sublabel": "second site",
"kind": "storage"
},
{
"id": "alt",
"label": "School records",
"sublabel": "legacy system",
"kind": "external"
},
{
"id": "soc",
"label": "SIEM / SOC",
"kind": "external"
}
],
"connections": [
{
"from": "nutzer",
"to": "browser",
"label": "uses"
},
{
"from": "browser",
"to": "proxy",
"label": "calls",
"technology": "HTTPS"
},
{
"from": "proxy",
"to": "web",
"label": "forwards"
},
{
"from": "web",
"to": "idp",
"label": "signs in",
"technology": "OIDC"
},
{
"from": "web",
"to": "api",
"label": "queries",
"technology": "user context"
},
{
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"from": "api",
"to": "audit",
"label": "logs"
},
{
"from": "alt",
"to": "api",
"label": "master data",
"technology": "REST/JSON"
},
{
"from": "api",
"to": "soc",
"label": "events",
"technology": "Syslog",
"dash": "dashed"
},
{
"from": "db",
"to": "backup",
"label": "backs up",
"dash": "dashed"
}
],
"mainPath": [
"nutzer",
"browser",
"proxy",
"web",
"api",
"db"
],
"orientation": "portrait"
},
"mobile": {
"width": 464,
"height": 1180
}
}Focus
Source: Illustrative reference architecture
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Teacher, parent | person | Browser (uses) | |
| Browser | frontend | Reverse proxy (calls, via HTTPS) | |
| School records | external system | Domain API (master data, via REST/JSON) | |
| Reverse proxy | security | Data center | Web / BFF (forwards) |
| Web / BFF | service | Data center › Application network | Sign-in (signs in, via OIDC), Domain API (queries, via user context) |
| Sign-in | security | Data center › Application network | |
| Domain API | service | Data center › Application network | Domain data (reads, writes, via SQL/TLS), Audit log (logs), SIEM / SOC (events, via Syslog) |
| Domain data | database | Data center › Application network › Data zone | Backup (backs up) |
| Audit log | database | Data center › Application network › Data zone | |
| Backup | storage | ||
| SIEM / SOC | external system |
Tenant architecture: the sign-in and data path
examples/shop-focus.jsonDetail: Tenant architecture: the sign-in and data path →{
"schemaVersion": 1,
"type": "architecture",
"title": "Tenant architecture: the sign-in and data path",
"source": "Illustrative reference architecture",
"width": 1200,
"height": 1144,
"architecture": {
"boundaries": [
{
"id": "rz",
"label": "Data center"
},
{
"id": "netz",
"label": "Application network",
"in": "rz"
},
{
"id": "daten",
"label": "Data zone",
"in": "netz"
}
],
"components": [
{
"id": "nutzer",
"label": "Teacher, parent",
"kind": "person"
},
{
"id": "browser",
"label": "Browser",
"kind": "frontend"
},
{
"id": "proxy",
"label": "Reverse proxy",
"sublabel": "TLS 1.3, WAF",
"kind": "security",
"in": "rz"
},
{
"id": "web",
"label": "Web / BFF",
"sublabel": "SvelteKit",
"in": "netz"
},
{
"id": "idp",
"label": "Sign-in",
"sublabel": "Keycloak, OIDC",
"kind": "security",
"in": "netz"
},
{
"id": "api",
"label": "Domain API",
"sublabel": "Rust",
"in": "netz"
},
{
"id": "db",
"label": "Domain data",
"sublabel": "Postgres, RLS per tenant",
"kind": "database",
"in": "daten"
},
{
"id": "audit",
"label": "Audit log",
"sublabel": "append only",
"kind": "database",
"in": "daten"
},
{
"id": "backup",
"label": "Backup",
"sublabel": "second site",
"kind": "storage"
},
{
"id": "alt",
"label": "School records",
"sublabel": "legacy system",
"kind": "external"
},
{
"id": "soc",
"label": "SIEM / SOC",
"kind": "external"
}
],
"connections": [
{
"from": "nutzer",
"to": "browser",
"label": "uses"
},
{
"from": "browser",
"to": "proxy",
"label": "calls",
"technology": "HTTPS"
},
{
"from": "proxy",
"to": "web",
"label": "forwards"
},
{
"from": "web",
"to": "idp",
"label": "signs in",
"technology": "OIDC"
},
{
"from": "web",
"to": "api",
"label": "queries",
"technology": "user context"
},
{
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"from": "api",
"to": "audit",
"label": "logs"
},
{
"from": "alt",
"to": "api",
"label": "master data",
"technology": "REST/JSON"
},
{
"from": "api",
"to": "soc",
"label": "events",
"technology": "Syslog",
"dash": "dashed"
},
{
"from": "db",
"to": "backup",
"label": "backs up",
"dash": "dashed"
}
],
"mainPath": [
"nutzer",
"browser",
"proxy",
"web",
"api",
"db"
],
"orientation": "portrait"
},
"mobile": {
"width": 468,
"height": 1192
},
"emphasis": {
"nodes": [
"idp"
],
"path": [
"web",
"api",
"db"
]
},
"legend": "auto"
}Focus
Source: Illustrative reference architecture
Show chart data
| Component | Kind | Boundary | Connects to | Emphasis |
|---|---|---|---|---|
| Teacher, parent | person | Browser (uses) | ||
| Browser | frontend | Reverse proxy (calls, via HTTPS) | ||
| School records | external system | Domain API (master data, via REST/JSON) | ||
| Reverse proxy | security | Data center | Web / BFF (forwards) | |
| Web / BFF | service | Data center › Application network | Sign-in (signs in, via OIDC), Domain API (queries, via user context) | on emphasized path |
| Sign-in | security | Data center › Application network | emphasized | |
| Domain API | service | Data center › Application network | Domain data (reads, writes, via SQL/TLS), Audit log (logs), SIEM / SOC (events, via Syslog) | on emphasized path |
| Domain data | database | Data center › Application network › Data zone | Backup (backs up) | on emphasized path |
| Audit log | database | Data center › Application network › Data zone | ||
| Backup | storage | |||
| SIEM / SOC | external system |
Checkout: the calls in order
examples/checkout-calls.jsonDetail: Checkout: the calls in order →{
"schemaVersion": 1,
"type": "architecture",
"title": "Checkout: the calls in order",
"source": "Architecture handbook, runtime view",
"width": 900,
"height": 640,
"architecture": {
"components": [
{
"id": "customer",
"label": "Customer",
"kind": "person"
},
{
"id": "web",
"label": "Web shop",
"kind": "frontend"
},
{
"id": "api",
"label": "Shop API"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
},
{
"id": "db",
"label": "Orders",
"kind": "database"
},
{
"id": "mail",
"label": "Mail service",
"kind": "external"
}
],
"connections": [
{
"from": "customer",
"to": "web",
"label": "confirms the cart",
"step": 1
},
{
"from": "web",
"to": "api",
"label": "places the order",
"technology": "HTTPS",
"step": 2
},
{
"from": "api",
"to": "pay",
"label": "charges",
"technology": "HTTPS",
"step": 3
},
{
"from": "api",
"to": "db",
"label": "stores the order",
"technology": "SQL",
"step": 4
},
{
"from": "api",
"to": "mail",
"label": "sends the receipt",
"step": 5,
"dash": "dashed"
}
],
"mainPath": [
"customer",
"web",
"api",
"db"
],
"orientation": "portrait"
}
}Focus
Source: Architecture handbook, runtime view
Show chart data
| Component | Kind | Connects to |
|---|---|---|
| Customer | person | Web shop (step 1, confirms the cart) |
| Web shop | frontend | Shop API (step 2, places the order, via HTTPS) |
| Shop API | service | Payment provider (step 3, charges, via HTTPS), Orders (step 4, stores the order, via SQL), Mail service (step 5, sends the receipt) |
| Payment provider | external system | |
| Orders | database | |
| Mail service | external system |
Web shop: deployment
examples/shop-deployment.jsonDetail: Web shop: deployment →{
"schemaVersion": 1,
"type": "architecture",
"title": "Web shop: deployment",
"theme": "blueprint",
"source": "Operations handbook, production",
"width": 1180,
"height": 520,
"architecture": {
"boundaries": [
{
"id": "cluster",
"label": "Production cluster"
},
{
"id": "app-node",
"label": "Node app-1",
"in": "cluster"
},
{
"id": "data-node",
"label": "Node data-1",
"in": "cluster"
}
],
"components": [
{
"id": "user",
"label": "Customer",
"kind": "person"
},
{
"id": "lb",
"label": "Load balancer",
"kind": "node",
"in": "cluster"
},
{
"id": "shop",
"label": "shop-api:2.4",
"sublabel": "container image",
"kind": "artifact",
"in": "app-node"
},
{
"id": "worker",
"label": "order-worker:2.4",
"sublabel": "container image",
"kind": "artifact",
"in": "app-node"
},
{
"id": "pg",
"label": "postgres:16",
"sublabel": "container image",
"kind": "artifact",
"in": "data-node"
},
{
"id": "vol",
"label": "Data volume",
"kind": "storage",
"in": "data-node"
}
],
"connections": [
{
"from": "user",
"to": "lb",
"technology": "HTTPS"
},
{
"from": "lb",
"to": "shop",
"technology": "HTTP"
},
{
"from": "shop",
"to": "pg",
"technology": "SQL/TLS"
},
{
"from": "worker",
"to": "pg",
"technology": "SQL/TLS"
},
{
"from": "pg",
"to": "vol",
"label": "writes"
}
]
}
}Focus
Source: Operations handbook, production
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Customer | person | Load balancer (via HTTPS) | |
| Load balancer | node | Production cluster | shop-api:2.4 (via HTTP) |
| shop-api:2.4 | artifact | Production cluster › Node app-1 | postgres:16 (via SQL/TLS) |
| order-worker:2.4 | artifact | Production cluster › Node app-1 | postgres:16 (via SQL/TLS) |
| postgres:16 | artifact | Production cluster › Node data-1 | Data volume (writes) |
| Data volume | storage | Production cluster › Node data-1 |
Requests per second between the services of a web shop
examples/request-volume.jsonDetail: Requests per second between the services of a web shop →{
"schemaVersion": 1,
"type": "architecture",
"title": "Requests per second between the services of a web shop",
"source": "Load test, peak hour",
"width": 820,
"height": 580,
"architecture": {
"boundaries": [
{
"id": "cluster",
"label": "Cluster"
}
],
"components": [
{
"id": "web",
"label": "Web shop",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"in": "cluster"
},
{
"id": "catalog",
"label": "Catalog",
"in": "cluster"
},
{
"id": "cart",
"label": "Cart",
"in": "cluster"
},
{
"id": "checkout",
"label": "Checkout",
"in": "cluster"
},
{
"id": "search",
"label": "Search index",
"kind": "database",
"in": "cluster"
},
{
"id": "db",
"label": "Orders",
"kind": "database",
"in": "cluster"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
}
],
"connections": [
{
"from": "web",
"to": "gateway",
"label": "1,200/s",
"weight": 1200
},
{
"from": "gateway",
"to": "catalog",
"label": "820/s",
"weight": 820
},
{
"from": "gateway",
"to": "cart",
"label": "310/s",
"weight": 310
},
{
"from": "gateway",
"to": "checkout",
"label": "70/s",
"weight": 70
},
{
"from": "catalog",
"to": "search",
"label": "640/s",
"weight": 640
},
{
"from": "cart",
"to": "db",
"label": "150/s",
"weight": 150
},
{
"from": "checkout",
"to": "db",
"label": "60/s",
"weight": 60
},
{
"from": "checkout",
"to": "pay",
"label": "35/s",
"weight": 35
}
],
"mainPath": {
"from": "web",
"to": "pay"
}
}
}Focus
Source: Load test, peak hour
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Web shop | frontend | API gateway (1,200/s, weight 1200) | |
| API gateway | service | Cluster | Catalog (820/s, weight 820), Cart (310/s, weight 310), Checkout (70/s, weight 70) |
| Catalog | service | Cluster | Search index (640/s, weight 640) |
| Cart | service | Cluster | Orders (150/s, weight 150) |
| Checkout | service | Cluster | Orders (60/s, weight 60), Payment provider (35/s, weight 35) |
| Search index | database | Cluster | |
| Orders | database | Cluster | |
| Payment provider | external system |
Order platform and its data stores
examples/data-tier.jsonDetail: Order platform and its data stores →{
"schemaVersion": 1,
"type": "architecture",
"title": "Order platform and its data stores",
"source": "Illustrative reference architecture",
"width": 1520,
"height": 560,
"architecture": {
"boundaries": [
{
"id": "platform",
"label": "Order platform"
},
{
"id": "data",
"label": "Data tier",
"in": "platform"
}
],
"components": [
{
"id": "shopper",
"label": "Shopper",
"kind": "person"
},
{
"id": "app",
"label": "Shop app",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"in": "platform"
},
{
"id": "catalog",
"label": "Catalog service",
"in": "platform"
},
{
"id": "orders",
"label": "Order service",
"in": "platform"
},
{
"id": "queue",
"label": "Order events",
"kind": "queue",
"in": "platform"
},
{
"id": "billing",
"label": "Billing worker",
"in": "platform"
},
{
"id": "catalogDb",
"label": "Catalog",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "ordersDb",
"label": "Orders",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "billingDb",
"label": "Invoices",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
}
],
"connections": [
{
"from": "shopper",
"to": "app",
"label": "orders"
},
{
"from": "app",
"to": "gateway",
"technology": "HTTPS"
},
{
"from": "gateway",
"to": "catalog",
"label": "browse"
},
{
"from": "gateway",
"to": "orders",
"label": "checkout"
},
{
"from": "catalog",
"to": "catalogDb",
"technology": "SQL"
},
{
"from": "orders",
"to": "ordersDb",
"technology": "SQL"
},
{
"from": "orders",
"to": "queue",
"label": "publishes"
},
{
"from": "queue",
"to": "billing",
"label": "delivers"
},
{
"from": "billing",
"to": "billingDb",
"technology": "SQL"
}
],
"mainPath": [
"shopper",
"app",
"gateway",
"orders",
"queue",
"billing"
],
"sameRank": [
[
"catalogDb",
"ordersDb",
"billingDb"
]
]
},
"mobile": {
"width": 440,
"height": 1100
}
}Focus
Source: Illustrative reference architecture
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Shopper | person | Shop app (orders) | |
| Shop app | frontend | API gateway (via HTTPS) | |
| API gateway | service | Order platform | Catalog service (browse), Order service (checkout) |
| Catalog service | service | Order platform | Catalog (via SQL) |
| Order service | service | Order platform | Orders (via SQL), Order events (publishes) |
| Order events | queue | Order platform | Billing worker (delivers) |
| Billing worker | service | Order platform | Invoices (via SQL) |
| Catalog | database | Order platform › Data tier | |
| Invoices | database | Order platform › Data tier | |
| Orders | database | Order platform › Data tier |
Gateway fan-out with shared logging
examples/service-fan-out.jsonDetail: Gateway fan-out with shared logging →{
"schemaVersion": 1,
"type": "architecture",
"title": "Gateway fan-out with shared logging",
"source": "Platform handbook, request path",
"width": 960,
"height": 640,
"architecture": {
"boundaries": [
{
"id": "cluster",
"label": "Cluster"
},
{
"id": "services",
"label": "Services",
"in": "cluster"
},
{
"id": "ops",
"label": "Operations"
}
],
"components": [
{
"id": "client",
"label": "Client",
"kind": "frontend"
},
{
"id": "gateway",
"label": "Gateway",
"sublabel": "routes requests",
"in": "cluster"
},
{
"id": "auth",
"label": "Sign-in",
"kind": "security",
"in": "cluster"
},
{
"id": "catalog",
"label": "Catalog",
"in": "services"
},
{
"id": "search",
"label": "Search",
"in": "services"
},
{
"id": "cart",
"label": "Cart",
"in": "services"
},
{
"id": "orders",
"label": "Orders",
"in": "services"
},
{
"id": "logs",
"label": "Log store",
"kind": "storage",
"in": "ops"
}
],
"connections": [
{
"from": "client",
"to": "gateway",
"label": "calls",
"technology": "HTTPS"
},
{
"from": "gateway",
"to": "auth",
"label": "checks token"
},
{
"from": "gateway",
"to": "catalog"
},
{
"from": "gateway",
"to": "search"
},
{
"from": "gateway",
"to": "cart"
},
{
"from": "gateway",
"to": "orders"
},
{
"from": "catalog",
"to": "logs",
"dash": "dashed"
},
{
"from": "search",
"to": "logs",
"dash": "dashed"
},
{
"from": "cart",
"to": "logs",
"dash": "dashed"
},
{
"from": "orders",
"to": "logs",
"dash": "dashed"
}
],
"mainPath": [
"client",
"gateway",
"orders"
],
"sharedTrunks": true
}
}Focus
Source: Platform handbook, request path
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Client | frontend | Gateway (calls, via HTTPS) | |
| Gateway | service | Cluster | Sign-in (checks token), Catalog, Search, Cart, Orders |
| Sign-in | security | Cluster | |
| Catalog | service | Cluster › Services | Log store |
| Search | service | Cluster › Services | Log store |
| Cart | service | Cluster › Services | Log store |
| Orders | service | Cluster › Services | Log store |
| Log store | storage | Operations |
Web shop on one cloud region, with symbols
examples/shop-symbols.jsonDetail: Web shop on one cloud region, with symbols →{
"schemaVersion": 1,
"type": "architecture",
"title": "Web shop on one cloud region, with symbols",
"source": "Architecture handbook, overview",
"width": 1840,
"height": 600,
"architecture": {
"boundaries": [
{
"id": "region",
"label": "Cloud region eu-central-1"
},
{
"id": "network",
"label": "Private network",
"in": "region"
},
{
"id": "data",
"label": "Data zone",
"in": "network"
}
],
"components": [
{
"id": "customer",
"label": "Customer",
"kind": "person"
},
{
"id": "web",
"label": "Web shop",
"kind": "frontend",
"symbol": "browser"
},
{
"id": "cdn",
"label": "Content network",
"kind": "external",
"symbol": "cdn"
},
{
"id": "api",
"label": "Shop API",
"sublabel": "Node.js",
"in": "network",
"symbol": "container"
},
{
"id": "cache",
"label": "Session cache",
"sublabel": "Redis",
"kind": "cache",
"in": "network",
"symbol": "cache"
},
{
"id": "events",
"label": "Order events",
"kind": "queue",
"in": "network",
"symbol": "message-broker"
},
{
"id": "worker",
"label": "Order worker",
"in": "network",
"symbol": "function"
},
{
"id": "db",
"label": "Orders",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "files",
"label": "Invoices",
"kind": "storage",
"in": "region",
"symbol": "object-storage"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external",
"symbol": "cloud"
},
{
"id": "auth",
"label": "Sign-in",
"kind": "security",
"in": "network",
"symbol": "identity"
}
],
"connections": [
{
"from": "customer",
"to": "web",
"label": "browses"
},
{
"from": "web",
"to": "cdn",
"label": "loads assets",
"technology": "HTTPS",
"dash": "dashed"
},
{
"from": "web",
"to": "api",
"label": "calls",
"technology": "HTTPS/JSON"
},
{
"from": "api",
"to": "cache",
"label": "sessions",
"technology": "RESP"
},
{
"from": "api",
"to": "auth",
"label": "checks token",
"technology": "OIDC"
},
{
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"from": "api",
"to": "events",
"label": "publishes",
"technology": "AMQP"
},
{
"from": "events",
"to": "worker",
"label": "delivers"
},
{
"from": "worker",
"to": "pay",
"label": "charges",
"technology": "HTTPS"
},
{
"from": "worker",
"to": "files",
"label": "stores PDF",
"technology": "S3 API"
},
{
"from": "worker",
"to": "db",
"label": "updates",
"technology": "SQL/TLS"
}
],
"mainPath": [
"customer",
"web",
"api",
"events",
"worker",
"pay"
]
}
}Focus
Source: Architecture handbook, overview
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Customer | person | Web shop (browses) | |
| Web shop | frontend, web browser | Content network (loads assets, via HTTPS), Shop API (calls, via HTTPS/JSON) | |
| Shop API | service, container | Cloud region eu-central-1 › Private network | Session cache (sessions, via RESP), Sign-in (checks token, via OIDC), Orders (reads, writes, via SQL/TLS), Order events (publishes, via AMQP) |
| Content network | external system, content delivery network | ||
| Session cache | in-memory cache | Cloud region eu-central-1 › Private network | |
| Order events | queue, message broker | Cloud region eu-central-1 › Private network | Order worker (delivers) |
| Sign-in | security, identity provider | Cloud region eu-central-1 › Private network | |
| Order worker | service, serverless function | Cloud region eu-central-1 › Private network | Payment provider (charges, via HTTPS), Invoices (stores PDF, via S3 API), Orders (updates, via SQL/TLS) |
| Orders | database | Cloud region eu-central-1 › Private network › Data zone | |
| Invoices | object storage | Cloud region eu-central-1 | |
| Payment provider | external system, cloud service |
Checkout and the interfaces it relies on
examples/payment-interfaces.jsonDetail: Checkout and the interfaces it relies on →{
"schemaVersion": 1,
"type": "architecture",
"title": "Checkout and the interfaces it relies on",
"source": "Platform handbook, payment path",
"width": 960,
"height": 780,
"mobile": {
"width": 372,
"height": 1000
},
"architecture": {
"boundaries": [
{
"id": "shop",
"label": "Shop platform"
}
],
"components": [
{
"id": "shopper",
"label": "Shopper",
"kind": "person"
},
{
"id": "web",
"label": "Web shop",
"kind": "frontend"
},
{
"id": "checkout",
"label": "Checkout",
"in": "shop"
},
{
"id": "support",
"label": "Support",
"in": "shop"
},
{
"id": "orders",
"label": "Orders",
"in": "shop",
"provides": [
{
"id": "orders-api",
"label": "Orders API"
}
]
},
{
"id": "payments",
"label": "Payments",
"in": "shop",
"provides": [
{
"id": "payments-api",
"label": "Payments API"
},
{
"id": "refunds-api",
"label": "Refunds API"
}
]
},
{
"id": "db",
"label": "Order store",
"kind": "database",
"in": "shop"
},
{
"id": "psp",
"label": "Card processor",
"kind": "external",
"provides": [
{
"id": "card-api",
"label": "Card API"
}
]
}
],
"connections": [
{
"from": "shopper",
"to": "web",
"label": "buys"
},
{
"from": "web",
"to": "checkout",
"label": "submits",
"technology": "HTTPS"
},
{
"from": "checkout",
"to": "orders",
"toInterface": "orders-api",
"label": "places"
},
{
"from": "checkout",
"to": "payments",
"toInterface": "payments-api",
"label": "charges"
},
{
"from": "support",
"to": "payments",
"toInterface": "refunds-api",
"label": "refunds"
},
{
"from": "payments",
"to": "psp",
"toInterface": "card-api",
"technology": "HTTPS"
},
{
"from": "orders",
"to": "db",
"technology": "SQL"
}
],
"mainPath": [
"shopper",
"web",
"checkout",
"payments",
"psp"
],
"orientation": "portrait"
}
}Focus
Source: Platform handbook, payment path
Show chart data
| Component | Kind | Boundary | Provides | Connects to |
|---|---|---|---|---|
| Shopper | person | Web shop (buys) | ||
| Web shop | frontend | Checkout (submits, via HTTPS) | ||
| Checkout | service | Shop platform | Orders (requires Orders API, places), Payments (requires Payments API, charges) | |
| Support | service | Shop platform | Payments (requires Refunds API, refunds) | |
| Orders | service | Shop platform | Orders API | Order store (via SQL) |
| Payments | service | Shop platform | Payments API, Refunds API | Card processor (requires Card API, via HTTPS) |
| Order store | database | Shop platform | ||
| Card processor | external system | Card API |
Payments and what to know about them
examples/payment-notes.jsonDetail: Payments and what to know about them →{
"schemaVersion": 1,
"type": "architecture",
"title": "Payments and what to know about them",
"source": "Illustrative reference architecture",
"width": 1000,
"height": 1120,
"architecture": {
"boundaries": [
{
"id": "cloud",
"label": "Cloud account"
},
{
"id": "pci",
"label": "Card data zone",
"in": "cloud"
}
],
"components": [
{
"id": "shopper",
"label": "Shopper",
"kind": "person"
},
{
"id": "checkout",
"label": "Checkout",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"in": "cloud"
},
{
"id": "payments",
"label": "Payment service",
"in": "pci"
},
{
"id": "vault",
"label": "Token vault",
"kind": "security",
"in": "pci"
},
{
"id": "ledger",
"label": "Ledger",
"kind": "database",
"in": "cloud"
},
{
"id": "provider",
"label": "Card provider",
"kind": "external"
}
],
"connections": [
{
"from": "shopper",
"to": "checkout",
"label": "pays"
},
{
"from": "checkout",
"to": "gateway",
"technology": "HTTPS"
},
{
"from": "gateway",
"to": "payments",
"label": "charge"
},
{
"from": "payments",
"to": "vault",
"label": "tokenizes"
},
{
"from": "payments",
"to": "provider",
"label": "authorizes",
"technology": "HTTPS"
},
{
"from": "payments",
"to": "ledger",
"label": "records",
"technology": "SQL"
}
],
"mainPath": [
"shopper",
"checkout",
"gateway",
"payments",
"provider"
],
"orientation": "portrait",
"notes": [
{
"on": "vault",
"text": "Card numbers never leave the vault; everything else sees tokens."
},
{
"on": "pci",
"text": "Audited once a year; changes need a second reviewer."
},
{
"text": "Figures and names are illustrative; the diagram shows the target state."
}
]
},
"mobile": {
"width": 440,
"height": 1200
}
}Focus
Source: Illustrative reference architecture
Show chart data
| Component | Kind | Boundary | Connects to | Notes |
|---|---|---|---|---|
| Shopper | person | Checkout (pays) | ||
| Checkout | frontend | API gateway (via HTTPS) | ||
| API gateway | service | Cloud account | Payment service (charge) | |
| Payment service | service | Cloud account › Card data zone | Token vault (tokenizes), Card provider (authorizes, via HTTPS), Ledger (records, via SQL) | |
| Token vault | security | Cloud account › Card data zone | Card numbers never leave the vault; everything else sees tokens. | |
| Ledger | database | Cloud account | ||
| Card provider | external system |
Billing moves from the monolith to its own service
examples/billing-migration.jsonDetail: Billing moves from the monolith to its own service →{
"schemaVersion": 1,
"type": "architecture",
"title": "Billing moves from the monolith to its own service",
"source": "Architecture review, migration plan",
"width": 1400,
"height": 420,
"architecture": {
"boundaries": [
{
"id": "platform",
"label": "Platform"
}
],
"components": [
{
"id": "customer",
"label": "Customer",
"kind": "person"
},
{
"id": "portal",
"label": "Customer portal",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"kind": "security",
"in": "platform",
"role": "critical"
},
{
"id": "monolith",
"label": "Monolith",
"sublabel": "billing module",
"in": "platform",
"role": "deprecated"
},
{
"id": "billing",
"label": "Billing service",
"in": "platform",
"role": "planned"
},
{
"id": "events",
"label": "Invoice events",
"kind": "queue",
"in": "platform",
"role": "planned"
},
{
"id": "db",
"label": "Accounts",
"sublabel": "Postgres",
"kind": "database",
"in": "platform",
"role": "critical"
},
{
"id": "psp",
"label": "Payment provider",
"kind": "external"
}
],
"connections": [
{
"from": "customer",
"to": "portal",
"label": "pays"
},
{
"from": "portal",
"to": "gateway",
"label": "calls",
"technology": "HTTPS"
},
{
"from": "gateway",
"to": "monolith",
"label": "routes today",
"role": "deprecated"
},
{
"from": "gateway",
"to": "billing",
"label": "routes after",
"role": "planned"
},
{
"from": "monolith",
"to": "db",
"technology": "SQL",
"role": "deprecated"
},
{
"from": "billing",
"to": "db",
"technology": "SQL",
"role": "planned"
},
{
"from": "billing",
"to": "events",
"label": "publishes",
"role": "planned"
},
{
"from": "billing",
"to": "psp",
"label": "charges",
"technology": "HTTPS",
"role": "critical"
}
]
}
}Focus
Source: Architecture review, migration plan
Show chart data
| Component | Kind | Boundary | Role | Connects to |
|---|---|---|---|---|
| Customer | person | Customer portal (pays) | ||
| Customer portal | frontend | API gateway (calls, via HTTPS) | ||
| API gateway | security | Platform | critical | Monolith (routes today, deprecated), Billing service (routes after, planned) |
| Monolith | service | Platform | deprecated | Accounts (via SQL, deprecated) |
| Billing service | service | Platform | planned | Accounts (via SQL, planned), Invoice events (publishes, planned), Payment provider (charges, via HTTPS, critical) |
| Accounts | database | Platform | critical | |
| Invoice events | queue | Platform | planned | |
| Payment provider | external system |
Architecture models: views and levels
Web shop on one cloud region
examples/shop-views.jsonDetail: Web shop on one cloud region →{
"schemaVersion": 1,
"type": "architecture",
"title": "Web shop on one cloud region",
"source": "Architecture handbook, shop model",
"width": 1900,
"height": 540,
"architecture": {
"boundaries": [
{
"id": "region",
"label": "Cloud region eu-central-1"
},
{
"id": "network",
"label": "Private network",
"in": "region"
},
{
"id": "data",
"label": "Data zone",
"in": "network"
}
],
"components": [
{
"id": "customer",
"label": "Customer",
"kind": "person"
},
{
"id": "web",
"label": "Web shop",
"sublabel": "browser",
"kind": "frontend"
},
{
"id": "cdn",
"label": "Content network",
"kind": "external"
},
{
"id": "api",
"label": "Shop API",
"sublabel": "Node.js",
"in": "network"
},
{
"id": "cache",
"label": "Session cache",
"sublabel": "Redis",
"kind": "cache",
"in": "network"
},
{
"id": "events",
"label": "Order events",
"kind": "queue",
"in": "network"
},
{
"id": "worker",
"label": "Order worker",
"in": "network"
},
{
"id": "db",
"label": "Orders",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "files",
"label": "Invoices",
"sublabel": "object storage",
"kind": "storage",
"in": "region"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
},
{
"id": "auth",
"label": "Sign-in",
"sublabel": "identity provider",
"kind": "security",
"in": "network"
}
],
"connections": [
{
"id": "browse",
"from": "customer",
"to": "web",
"label": "browses"
},
{
"id": "assets",
"from": "web",
"to": "cdn",
"label": "loads assets",
"technology": "HTTPS",
"dash": "dashed"
},
{
"id": "call",
"from": "web",
"to": "api",
"label": "calls",
"technology": "HTTPS/JSON"
},
{
"id": "session",
"from": "api",
"to": "cache",
"label": "sessions",
"technology": "RESP"
},
{
"id": "token",
"from": "api",
"to": "auth",
"label": "checks token",
"technology": "OIDC"
},
{
"id": "orders",
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"id": "publish",
"from": "api",
"to": "events",
"label": "publishes",
"technology": "AMQP"
},
{
"id": "deliver",
"from": "events",
"to": "worker",
"label": "delivers"
},
{
"id": "charge",
"from": "worker",
"to": "pay",
"label": "charges",
"technology": "HTTPS"
},
{
"id": "invoice",
"from": "worker",
"to": "files",
"label": "stores PDF",
"technology": "S3 API"
},
{
"id": "update",
"from": "worker",
"to": "db",
"label": "updates",
"technology": "SQL/TLS"
}
],
"mainPath": [
"customer",
"web",
"api",
"events",
"worker",
"pay"
],
"views": [
{
"key": "overview",
"title": "Web shop: overview",
"components": [
"customer",
"web",
"api",
"events",
"worker",
"db",
"files",
"pay"
]
},
{
"key": "checkout",
"title": "Web shop: checkout",
"steps": [
{
"connection": "browse",
"label": "places order"
},
{
"connection": "call",
"label": "submits order"
},
{
"connection": "token"
},
{
"connection": "orders",
"label": "reserves stock"
},
{
"connection": "orders",
"label": "saves order"
},
{
"connection": "publish",
"label": "order placed"
},
{
"connection": "deliver"
},
{
"connection": "charge",
"label": "charges card"
},
{
"connection": "update",
"label": "marks paid"
},
{
"connection": "invoice"
}
]
}
]
}
}Focus
Source: Architecture handbook, shop model
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Customer | person | Web shop (browses) | |
| Web shop | frontend | Shop API (calls, via HTTPS/JSON) | |
| Shop API | service | Cloud region eu-central-1 › Private network | Orders (reads, writes, via SQL/TLS), Order events (publishes, via AMQP) |
| Order events | queue | Cloud region eu-central-1 › Private network | Order worker (delivers) |
| Order worker | service | Cloud region eu-central-1 › Private network | Payment provider (charges, via HTTPS), Invoices (stores PDF, via S3 API), Orders (updates, via SQL/TLS) |
| Orders | database | Cloud region eu-central-1 › Private network › Data zone | |
| Invoices | storage | Cloud region eu-central-1 | |
| Payment provider | external system |
Booking platform
examples/service-perspectives.jsonDetail: Booking platform →{
"schemaVersion": 1,
"type": "architecture",
"title": "Booking platform",
"source": "Architecture handbook, booking model",
"width": 1300,
"height": 520,
"architecture": {
"boundaries": [
{
"id": "cloud",
"label": "Cloud account"
},
{
"id": "data",
"label": "Data zone",
"in": "cloud"
}
],
"components": [
{
"id": "guest",
"label": "Guest",
"kind": "person"
},
{
"id": "app",
"label": "Booking app",
"kind": "frontend"
},
{
"id": "gateway",
"label": "API gateway",
"in": "cloud"
},
{
"id": "booking",
"label": "Booking service",
"sublabel": "Java",
"in": "cloud"
},
{
"id": "pricing",
"label": "Pricing service",
"sublabel": "Go",
"in": "cloud"
},
{
"id": "db",
"label": "Bookings",
"sublabel": "Postgres",
"kind": "database",
"in": "data"
},
{
"id": "legacy",
"label": "Legacy inventory",
"kind": "database",
"in": "data"
},
{
"id": "pay",
"label": "Payment provider",
"kind": "external"
}
],
"connections": [
{
"id": "use",
"from": "guest",
"to": "app",
"label": "books"
},
{
"id": "call",
"from": "app",
"to": "gateway",
"technology": "HTTPS"
},
{
"id": "route",
"from": "gateway",
"to": "booking",
"label": "routes"
},
{
"id": "price",
"from": "booking",
"to": "pricing",
"label": "asks price"
},
{
"id": "store",
"from": "booking",
"to": "db",
"technology": "SQL"
},
{
"id": "stock",
"from": "booking",
"to": "legacy",
"label": "checks rooms"
},
{
"id": "charge",
"from": "booking",
"to": "pay",
"label": "charges",
"technology": "HTTPS"
}
],
"perspectives": [
{
"key": "owner",
"title": "Team",
"description": "The team named in the service catalogue runs each component.",
"categories": [
{
"label": "Storefront",
"components": [
"app"
]
},
{
"label": "Bookings",
"components": [
"booking",
"pricing"
]
},
{
"label": "Platform",
"components": [
"gateway",
"db",
"legacy"
]
}
]
},
{
"key": "debt",
"title": "Technical debt",
"description": "Debt as the owning team rated it in the last review.",
"categories": [
{
"label": "low",
"components": [
"app",
"pricing"
]
},
{
"label": "medium",
"components": [
"gateway",
"db"
]
},
{
"label": "high",
"components": [
"booking"
]
}
]
}
],
"views": [
{
"key": "owners",
"title": "Booking platform: who runs what",
"components": [
"guest",
"app",
"gateway",
"booking",
"pricing",
"db",
"legacy",
"pay"
],
"perspective": "owner"
},
{
"key": "debt",
"title": "Booking platform: technical debt",
"components": [
"guest",
"app",
"gateway",
"booking",
"pricing",
"db",
"legacy",
"pay"
],
"perspective": "debt"
}
]
}
}Focus
Source: Architecture handbook, booking model
Show chart data
| Component | Kind | Boundary | Team | Connects to |
|---|---|---|---|---|
| Guest | person | not stated | Booking app (books) | |
| Booking app | frontend | Storefront | API gateway (via HTTPS) | |
| API gateway | service | Cloud account | Platform | Booking service (routes) |
| Booking service | service | Cloud account | Bookings | Pricing service (asks price), Bookings (via SQL), Legacy inventory (checks rooms), Payment provider (charges, via HTTPS) |
| Pricing service | service | Cloud account | Bookings | |
| Bookings | database | Cloud account › Data zone | Platform | |
| Legacy inventory | database | Cloud account › Data zone | Platform | |
| Payment provider | external system | not stated |
Course booking: system context
examples/booking-context.jsonDetail: Course booking: system context →{
"schemaVersion": 1,
"type": "architecture",
"title": "Course booking: system context",
"height": 480,
"architecture": {
"components": [
{
"id": "learner",
"label": "Learner",
"sublabel": "books and attends courses",
"kind": "person"
},
{
"id": "trainer",
"label": "Trainer",
"sublabel": "runs courses",
"kind": "person"
},
{
"id": "booking",
"label": "Course booking",
"sublabel": "the system in scope"
},
{
"id": "payment",
"label": "Payment provider",
"sublabel": "external system",
"kind": "external"
},
{
"id": "mail",
"label": "E-mail service",
"sublabel": "external system",
"kind": "external"
},
{
"id": "directory",
"label": "Staff directory",
"sublabel": "external system",
"kind": "external"
}
],
"connections": [
{
"from": "learner",
"to": "booking",
"label": "books a course"
},
{
"from": "trainer",
"to": "booking",
"label": "plans dates"
},
{
"from": "booking",
"to": "payment",
"label": "takes payment"
},
{
"from": "booking",
"to": "mail",
"label": "sends confirmations"
},
{
"from": "booking",
"to": "directory",
"label": "looks up trainers"
}
],
"mainPath": [
"learner",
"booking",
"payment"
]
}
}Focus
Show chart data
| Component | Kind | Connects to |
|---|---|---|
| Learner | person | Course booking (books a course) |
| Trainer | person | Course booking (plans dates) |
| Course booking | service | Payment provider (takes payment), E-mail service (sends confirmations), Staff directory (looks up trainers) |
| Payment provider | external system | |
| E-mail service | external system | |
| Staff directory | external system |
Course booking: containers
examples/booking-containers.jsonDetail: Course booking: containers →{
"schemaVersion": 1,
"type": "architecture",
"title": "Course booking: containers",
"height": 940,
"architecture": {
"boundaries": [
{
"id": "system",
"label": "Course booking (software system)"
}
],
"components": [
{
"id": "learner",
"label": "Learner",
"kind": "person"
},
{
"id": "web",
"label": "Web app",
"sublabel": "single-page app",
"kind": "frontend",
"in": "system"
},
{
"id": "api",
"label": "Booking API",
"sublabel": "API application",
"in": "system"
},
{
"id": "jobs",
"label": "Job queue",
"sublabel": "message queue",
"kind": "queue",
"in": "system"
},
{
"id": "worker",
"label": "Worker",
"sublabel": "background jobs",
"in": "system"
},
{
"id": "db",
"label": "Bookings",
"sublabel": "relational database",
"kind": "database",
"in": "system"
},
{
"id": "files",
"label": "Certificates",
"sublabel": "file store",
"kind": "storage",
"in": "system"
},
{
"id": "payment",
"label": "Payment provider",
"kind": "external"
},
{
"id": "mail",
"label": "E-mail service",
"kind": "external"
}
],
"connections": [
{
"from": "learner",
"to": "web",
"label": "books a course",
"technology": "HTTPS"
},
{
"from": "web",
"to": "api",
"label": "calls",
"technology": "JSON/HTTPS"
},
{
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL"
},
{
"from": "api",
"to": "payment",
"label": "takes payment",
"technology": "HTTPS"
},
{
"from": "api",
"to": "jobs",
"label": "queues jobs"
},
{
"from": "jobs",
"to": "worker",
"label": "delivers"
},
{
"from": "worker",
"to": "files",
"label": "stores certificates"
},
{
"from": "worker",
"to": "mail",
"label": "sends confirmations",
"technology": "SMTP"
}
],
"mainPath": [
"learner",
"web",
"api",
"db"
]
}
}Focus
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Learner | person | Web app (books a course, via HTTPS) | |
| Web app | frontend | Course booking (software system) | Booking API (calls, via JSON/HTTPS) |
| Booking API | service | Course booking (software system) | Bookings (reads, writes, via SQL), Payment provider (takes payment, via HTTPS), Job queue (queues jobs) |
| Job queue | queue | Course booking (software system) | Worker (delivers) |
| Bookings | database | Course booking (software system) | |
| Payment provider | external system | ||
| Worker | service | Course booking (software system) | Certificates (stores certificates), E-mail service (sends confirmations, via SMTP) |
| Certificates | storage | Course booking (software system) | |
| E-mail service | external system |
Course booking: deployment
examples/booking-deployment.jsonDetail: Course booking: deployment →{
"schemaVersion": 1,
"type": "architecture",
"title": "Course booking: deployment",
"height": 1000,
"architecture": {
"components": [
{
"id": "learner",
"label": "Learner",
"kind": "person"
},
{
"id": "ingress",
"label": "Ingress",
"sublabel": "load balancer"
},
{
"id": "api",
"label": "Booking API",
"sublabel": "image: web app and API",
"kind": "artifact"
},
{
"id": "worker",
"label": "Worker",
"sublabel": "image: background jobs",
"kind": "artifact"
},
{
"id": "jobs",
"label": "Job queue",
"sublabel": "managed queue",
"kind": "queue"
},
{
"id": "db",
"label": "Bookings",
"sublabel": "managed database",
"kind": "database"
},
{
"id": "files",
"label": "Certificates",
"sublabel": "object storage",
"kind": "storage"
}
],
"connections": [
{
"id": "open",
"from": "learner",
"to": "ingress",
"label": "opens",
"technology": "HTTPS"
},
{
"id": "route",
"from": "ingress",
"to": "api",
"label": "routes",
"technology": "HTTP"
},
{
"id": "query",
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL/TLS"
},
{
"id": "enqueue",
"from": "api",
"to": "jobs",
"label": "queues jobs"
},
{
"id": "deliver",
"from": "jobs",
"to": "worker",
"label": "delivers"
},
{
"id": "store",
"from": "worker",
"to": "files",
"label": "stores certificates"
},
{
"id": "update",
"from": "worker",
"to": "db",
"label": "updates",
"technology": "SQL/TLS"
}
],
"mainPath": [
"learner",
"ingress",
"api",
"jobs",
"worker",
"files"
],
"sameRank": [
[
"db",
"files"
]
],
"defaultView": "production",
"views": [
{
"key": "logical",
"title": "Course booking: deployable parts",
"components": [
"learner",
"ingress",
"api",
"worker",
"jobs",
"db",
"files"
]
},
{
"key": "production",
"title": "Course booking in production",
"environment": "Production",
"hosts": [
{
"id": "region",
"label": "Cloud region"
},
{
"id": "cluster",
"label": "Container cluster",
"in": "region"
},
{
"id": "nodeA",
"label": "Node A",
"in": "cluster"
},
{
"id": "nodeB",
"label": "Node B",
"in": "cluster"
},
{
"id": "workerPool",
"label": "Node pool: workers",
"in": "cluster"
}
],
"instances": [
{
"id": "ingress-prod",
"of": "ingress",
"in": "cluster"
},
{
"id": "api-1",
"of": "api",
"in": "nodeA"
},
{
"id": "api-2",
"of": "api",
"in": "nodeB"
},
{
"id": "worker-1",
"of": "worker",
"in": "workerPool"
},
{
"id": "jobs-prod",
"of": "jobs",
"in": "region"
},
{
"id": "db-prod",
"of": "db",
"in": "region"
},
{
"id": "files-prod",
"of": "files",
"in": "region"
}
],
"instanceConnections": [
{
"id": "route",
"from": "ingress-prod",
"to": "api-1"
},
{
"id": "route",
"from": "ingress-prod",
"to": "api-2"
},
{
"id": "query",
"from": "api-1",
"to": "db-prod"
},
{
"id": "query",
"from": "api-2",
"to": "db-prod"
},
{
"id": "enqueue",
"from": "api-1",
"to": "jobs-prod"
},
{
"id": "enqueue",
"from": "api-2",
"to": "jobs-prod"
},
{
"id": "deliver",
"from": "jobs-prod",
"to": "worker-1"
},
{
"id": "store",
"from": "worker-1",
"to": "files-prod"
},
{
"id": "update",
"from": "worker-1",
"to": "db-prod"
}
]
}
]
}
}Focus
Show chart data
| Instance | Kind | Boundary | Connects to |
|---|---|---|---|
| Ingress (ingress-prod) | service | Cloud region › Container cluster | Booking API (api-1) (routes, via HTTP), Booking API (api-2) (routes, via HTTP) |
| Booking API (api-1) | artifact | Cloud region › Container cluster › Node A | Bookings (db-prod) (reads, writes, via SQL/TLS), Job queue (jobs-prod) (queues jobs) |
| Booking API (api-2) | artifact | Cloud region › Container cluster › Node B | Bookings (db-prod) (reads, writes, via SQL/TLS), Job queue (jobs-prod) (queues jobs) |
| Job queue (jobs-prod) | queue | Cloud region | Worker (worker-1) (delivers) |
| Worker (worker-1) | artifact | Cloud region › Container cluster › Node pool: workers | Certificates (files-prod) (stores certificates), Bookings (db-prod) (updates, via SQL/TLS) |
| Bookings (db-prod) | database | Cloud region | |
| Certificates (files-prod) | storage | Cloud region |
Orders API
examples/api-environments.jsonDetail: Orders API →{
"schemaVersion": 1,
"type": "architecture",
"title": "Orders API",
"source": "Operations handbook, orders model",
"width": 1000,
"height": 520,
"architecture": {
"components": [
{
"id": "client",
"label": "Shop front end",
"kind": "frontend"
},
{
"id": "lb",
"label": "Load balancer",
"symbol": "load-balancer"
},
{
"id": "api",
"label": "Orders API",
"sublabel": "Node.js"
},
{
"id": "db",
"label": "Orders",
"sublabel": "Postgres",
"kind": "database"
}
],
"connections": [
{
"id": "call",
"from": "client",
"to": "lb",
"label": "places orders",
"technology": "HTTPS"
},
{
"id": "route",
"from": "lb",
"to": "api",
"label": "routes",
"technology": "HTTP"
},
{
"id": "query",
"from": "api",
"to": "db",
"label": "reads, writes",
"technology": "SQL"
}
],
"views": [
{
"key": "logical",
"title": "Orders API: components",
"components": [
"client",
"lb",
"api",
"db"
]
},
{
"key": "local",
"title": "Orders API on a developer machine",
"environment": "Local",
"hosts": [
{
"id": "laptop",
"label": "Developer laptop"
}
],
"instances": [
{
"id": "api-dev",
"of": "api",
"in": "laptop"
},
{
"id": "db-dev",
"of": "db",
"in": "laptop"
}
],
"instanceConnections": [
{
"id": "query",
"from": "api-dev",
"to": "db-dev"
}
]
},
{
"key": "production",
"title": "Orders API in production",
"environment": "Production",
"hosts": [
{
"id": "region",
"label": "Region eu-central-1"
},
{
"id": "node-a",
"label": "Node A",
"in": "region"
},
{
"id": "node-b",
"label": "Node B",
"in": "region"
},
{
"id": "data",
"label": "Managed database",
"in": "region"
}
],
"instances": [
{
"id": "lb-prod",
"of": "lb",
"in": "region"
},
{
"id": "api-1",
"of": "api",
"in": "node-a"
},
{
"id": "api-2",
"of": "api",
"in": "node-b"
},
{
"id": "db-prod",
"of": "db",
"in": "data"
}
],
"instanceConnections": [
{
"id": "route",
"from": "lb-prod",
"to": "api-1"
},
{
"id": "route",
"from": "lb-prod",
"to": "api-2"
},
{
"id": "query",
"from": "api-1",
"to": "db-prod"
},
{
"id": "query",
"from": "api-2",
"to": "db-prod"
}
]
}
]
}
}Focus
Source: Operations handbook, orders model
Show chart data
| Instance | Kind | Boundary | Connects to |
|---|---|---|---|
| Load balancer (lb-prod) | service, load balancer | Region eu-central-1 | Orders API (api-1) (routes, via HTTP), Orders API (api-2) (routes, via HTTP) |
| Orders API (api-1) | service | Region eu-central-1 › Node A | Orders (db-prod) (reads, writes, via SQL) |
| Orders API (api-2) | service | Region eu-central-1 › Node B | Orders (db-prod) (reads, writes, via SQL) |
| Orders (db-prod) | database | Region eu-central-1 › Managed database |
Class and entity diagrams
Order model
examples/order-model.jsonDetail: Order model →{
"schemaVersion": 1,
"type": "classes",
"title": "Order model",
"source": "Illustrative domain model",
"width": 900,
"height": 720,
"classes": {
"classes": [
{
"id": "customer",
"label": "Customer",
"attributes": [
"+ id: Int",
"+ name: String",
"+ email: String"
],
"methods": [
"+ placeOrder(): Order"
]
},
{
"id": "order",
"label": "Order",
"attributes": [
"+ id: Int",
"+ placedAt: Date",
"+ status: Status"
],
"methods": [
"+ total(): Money",
"+ cancel()"
]
},
{
"id": "line",
"label": "OrderLine",
"attributes": [
"+ quantity: Int",
"+ price: Money"
]
},
{
"id": "product",
"label": "Product",
"attributes": [
"+ sku: String",
"+ name: String",
"+ price: Money"
]
},
{
"id": "payment",
"label": "Payment",
"kind": "interface",
"methods": [
"+ charge(amount: Money): Receipt"
]
},
{
"id": "card",
"label": "CardPayment",
"attributes": [
"- number: String"
],
"methods": [
"+ charge(amount: Money): Receipt"
]
},
{
"id": "status",
"label": "Status",
"kind": "enum",
"attributes": [
"PLACED",
"PAID",
"SHIPPED",
"CANCELLED"
]
}
],
"relations": [
{
"from": "customer",
"to": "order",
"fromCardinality": "1",
"toCardinality": "0..*",
"label": "places"
},
{
"from": "order",
"to": "line",
"kind": "composition",
"fromCardinality": "1",
"toCardinality": "1..*"
},
{
"from": "line",
"to": "product",
"fromCardinality": "*",
"toCardinality": "1"
},
{
"from": "card",
"to": "payment",
"kind": "realization"
},
{
"from": "order",
"to": "payment",
"kind": "dependency",
"label": "paid by"
},
{
"from": "order",
"to": "status",
"kind": "dependency"
}
]
}
}Focus
Source: Illustrative domain model
Show chart data
| Item | Kind | Attributes | Methods | Relations |
|---|---|---|---|---|
| Customer | Class | + id: Int; + name: String; + email: String | + placeOrder(): Order | is associated with Order (1 : 0..*) [places] |
| Order | Class | + id: Int; + placedAt: Date; + status: Status | + total(): Money; + cancel() | is composed of OrderLine (1 : 1..*); depends on Payment [paid by]; depends on Status |
| OrderLine | Class | + quantity: Int; + price: Money | is associated with Product (* : 1) | |
| Product | Class | + sku: String; + name: String; + price: Money | ||
| Payment | Interface | + charge(amount: Money): Receipt | ||
| CardPayment | Class | - number: String | + charge(amount: Money): Receipt | implements Payment |
| Status | Enumeration | PLACED; PAID; SHIPPED; CANCELLED |
Shop database
examples/shop-schema.jsonDetail: Shop database →{
"schemaVersion": 1,
"type": "classes",
"title": "Shop database",
"source": "Illustrative schema",
"width": 820,
"height": 520,
"classes": {
"classes": [
{
"id": "customers",
"label": "customers",
"kind": "entity",
"attributes": [
"id (PK)",
"email",
"created_at"
]
},
{
"id": "orders",
"label": "orders",
"kind": "entity",
"attributes": [
"id (PK)",
"customer_id (FK)",
"placed_at",
"status"
]
},
{
"id": "items",
"label": "order_items",
"kind": "entity",
"attributes": [
"order_id (PK, FK)",
"product_id (PK, FK)",
"quantity"
]
},
{
"id": "products",
"label": "products",
"kind": "entity",
"attributes": [
"id (PK)",
"sku",
"name",
"price"
]
}
],
"relations": [
{
"from": "customers",
"to": "orders",
"fromCardinality": "1",
"toCardinality": "0..*"
},
{
"from": "orders",
"to": "items",
"fromCardinality": "1",
"toCardinality": "1..*"
},
{
"from": "products",
"to": "items",
"fromCardinality": "1",
"toCardinality": "0..*"
}
]
}
}Focus
Source: Illustrative schema
Show chart data
| Item | Kind | Attributes | Methods | Relations |
|---|---|---|---|---|
| customers | Entity | id (PK); email; created_at | is associated with orders (1 : 0..*) | |
| orders | Entity | id (PK); customer_id (FK); placed_at; status | is associated with order_items (1 : 1..*) | |
| order_items | Entity | order_id (PK, FK); product_id (PK, FK); quantity | ||
| products | Entity | id (PK); sku; name; price | is associated with order_items (1 : 0..*) |
Shop modules
examples/shop-modules.jsonDetail: Shop modules →{
"schemaVersion": 1,
"type": "classes",
"title": "Shop modules",
"source": "Illustrative domain model",
"width": 900,
"height": 860,
"classes": {
"packages": [
{
"id": "shop",
"label": "Shop"
},
{
"id": "ordering",
"label": "Ordering",
"in": "shop"
},
{
"id": "catalog",
"label": "Catalog",
"in": "shop"
},
{
"id": "billing",
"label": "Billing"
}
],
"classes": [
{
"id": "customer",
"label": "Customer",
"attributes": [
"+ id: Int",
"+ name: String",
"+ email: String"
],
"methods": [
"+ placeOrder(): Order"
]
},
{
"id": "order",
"label": "Order",
"attributes": [
"+ id: Int",
"+ placedAt: Date",
"+ status: Status"
],
"methods": [
"+ total(): Money",
"+ cancel()"
],
"in": "ordering"
},
{
"id": "line",
"label": "OrderLine",
"attributes": [
"+ quantity: Int",
"+ price: Money"
],
"in": "ordering"
},
{
"id": "product",
"label": "Product",
"attributes": [
"+ sku: String",
"+ name: String",
"+ price: Money"
],
"in": "catalog"
},
{
"id": "payment",
"label": "Payment",
"kind": "interface",
"methods": [
"+ charge(amount: Money): Receipt"
],
"in": "billing"
},
{
"id": "card",
"label": "CardPayment",
"attributes": [
"- number: String"
],
"methods": [
"+ charge(amount: Money): Receipt"
],
"in": "billing"
},
{
"id": "status",
"label": "Status",
"kind": "enum",
"attributes": [
"PLACED",
"PAID",
"SHIPPED",
"CANCELLED"
],
"in": "ordering"
}
],
"relations": [
{
"from": "customer",
"to": "order",
"fromCardinality": "1",
"toCardinality": "0..*",
"label": "places"
},
{
"from": "order",
"to": "line",
"kind": "composition",
"fromCardinality": "1",
"toCardinality": "1..*"
},
{
"from": "line",
"to": "product",
"fromCardinality": "*",
"toCardinality": "1"
},
{
"from": "card",
"to": "payment",
"kind": "realization"
},
{
"from": "order",
"to": "payment",
"kind": "dependency",
"label": "paid by"
},
{
"from": "order",
"to": "status",
"kind": "dependency"
}
]
}
}Focus
Source: Illustrative domain model
Show chart data
| Item | Kind | Package | Attributes | Methods | Relations |
|---|---|---|---|---|---|
| Customer | Class | + id: Int; + name: String; + email: String | + placeOrder(): Order | is associated with Order (1 : 0..*) [places] | |
| Order | Class | Shop › Ordering | + id: Int; + placedAt: Date; + status: Status | + total(): Money; + cancel() | is composed of OrderLine (1 : 1..*); depends on Payment [paid by]; depends on Status |
| OrderLine | Class | Shop › Ordering | + quantity: Int; + price: Money | is associated with Product (* : 1) | |
| Product | Class | Shop › Catalog | + sku: String; + name: String; + price: Money | ||
| Payment | Interface | Billing | + charge(amount: Money): Receipt | ||
| CardPayment | Class | Billing | - number: String | + charge(amount: Money): Receipt | implements Payment |
| Status | Enumeration | Shop › Ordering | PLACED; PAID; SHIPPED; CANCELLED |
Orders and their invoices
examples/invoice-model.jsonDetail: Orders and their invoices →{
"schemaVersion": 1,
"type": "classes",
"title": "Orders and their invoices",
"source": "Illustrative domain model",
"width": 900,
"height": 760,
"classes": {
"orientation": "portrait",
"packages": [
{
"id": "sales",
"label": "Sales"
},
{
"id": "billing",
"label": "Billing",
"orientation": "landscape"
}
],
"classes": [
{
"id": "customer",
"label": "Customer",
"attributes": [
"+ id: Int",
"+ name: String"
],
"in": "sales"
},
{
"id": "order",
"label": "Order",
"attributes": [
"+ id: Int",
"+ placedAt: Date"
],
"methods": [
"+ total(): Money"
],
"in": "sales"
},
{
"id": "invoice",
"label": "Invoice",
"attributes": [
"+ number: String",
"+ issuedAt: Date"
],
"methods": [
"+ total(): Money"
],
"in": "billing"
},
{
"id": "line",
"label": "InvoiceLine",
"attributes": [
"+ quantity: Int",
"+ net: Money"
],
"in": "billing"
},
{
"id": "tax",
"label": "TaxRate",
"attributes": [
"+ code: String",
"+ percent: Decimal"
],
"in": "billing"
},
{
"id": "reminder",
"label": "Reminder",
"attributes": [
"+ level: Int",
"+ sentAt: Date"
]
}
],
"relations": [
{
"from": "customer",
"to": "order",
"fromCardinality": "1",
"toCardinality": "0..*",
"label": "places"
},
{
"from": "order",
"to": "invoice",
"fromCardinality": "1",
"toCardinality": "1..*",
"label": "billed as"
},
{
"from": "invoice",
"to": "line",
"kind": "composition",
"fromCardinality": "1",
"toCardinality": "1..*",
"label": "lists"
},
{
"from": "line",
"to": "tax",
"fromCardinality": "*",
"toCardinality": "1",
"label": "taxed at"
},
{
"from": "invoice",
"to": "reminder",
"fromCardinality": "1",
"toCardinality": "0..3",
"label": "dunned by"
}
]
}
}Focus
Source: Illustrative domain model
Show chart data
| Item | Kind | Package | Attributes | Methods | Relations |
|---|---|---|---|---|---|
| Customer | Class | Sales | + id: Int; + name: String | is associated with Order (1 : 0..*) [places] | |
| Order | Class | Sales | + id: Int; + placedAt: Date | + total(): Money | is associated with Invoice (1 : 1..*) [billed as] |
| Invoice | Class | Billing | + number: String; + issuedAt: Date | + total(): Money | is composed of InvoiceLine (1 : 1..*) [lists]; is associated with Reminder (1 : 0..3) [dunned by] |
| InvoiceLine | Class | Billing | + quantity: Int; + net: Money | is associated with TaxRate (* : 1) [taxed at] | |
| TaxRate | Class | Billing | + code: String; + percent: Decimal | ||
| Reminder | Class | + level: Int; + sentAt: Date |
Subscription model
examples/subscription-model.jsonDetail: Subscription model →{
"schemaVersion": 1,
"type": "classes",
"title": "Subscription model",
"source": "Illustrative domain model",
"width": 900,
"height": 780,
"classes": {
"classes": [
{
"id": "customer",
"label": "Customer",
"attributes": [
"+ id: Int",
"+ email: String"
]
},
{
"id": "subscription",
"label": "Subscription",
"attributes": [
"+ startsOn: Date",
"+ renewsOn: Date"
],
"methods": [
"+ renew()",
"+ cancel()"
]
},
{
"id": "plan",
"label": "Plan",
"attributes": [
"+ name: String",
"+ monthly: Money"
]
},
{
"id": "invoice",
"label": "Invoice",
"attributes": [
"+ number: String",
"+ total: Money"
]
},
{
"id": "method",
"label": "PaymentMethod",
"kind": "interface",
"methods": [
"+ charge(amount: Money)"
]
},
{
"id": "card",
"label": "Card",
"attributes": [
"- token: String"
]
}
],
"relations": [
{
"from": "customer",
"to": "subscription",
"fromCardinality": "1",
"toCardinality": "0..*",
"label": "holds"
},
{
"from": "subscription",
"to": "plan",
"fromCardinality": "*",
"toCardinality": "1"
},
{
"from": "subscription",
"to": "invoice",
"kind": "composition",
"fromCardinality": "1",
"toCardinality": "0..*"
},
{
"from": "invoice",
"to": "method",
"kind": "dependency",
"label": "paid with"
},
{
"from": "card",
"to": "method",
"kind": "realization"
}
],
"notes": [
{
"on": "subscription",
"text": "Renews on the same day each month; a cancelled subscription runs to the end of its period."
},
{
"on": "plan",
"text": "Prices are net; tax is added on the invoice."
},
{
"on": "card",
"text": "Stores only a token from the payment provider, never the card number."
}
]
}
}Focus
Source: Illustrative domain model
Show chart data
| Item | Kind | Attributes | Methods | Relations | Notes |
|---|---|---|---|---|---|
| Customer | Class | + id: Int; + email: String | is associated with Subscription (1 : 0..*) [holds] | ||
| Subscription | Class | + startsOn: Date; + renewsOn: Date | + renew(); + cancel() | is associated with Plan (* : 1); is composed of Invoice (1 : 0..*) | Renews on the same day each month; a cancelled subscription runs to the end of its period. |
| Plan | Class | + name: String; + monthly: Money | Prices are net; tax is added on the invoice. | ||
| Invoice | Class | + number: String; + total: Money | depends on PaymentMethod [paid with] | ||
| PaymentMethod | Interface | + charge(amount: Money) | |||
| Card | Class | - token: String | implements PaymentMethod | Stores only a token from the payment provider, never the card number. |
Payments after the redesign
examples/payment-redesign.jsonDetail: Payments after the redesign →{
"schemaVersion": 1,
"type": "classes",
"title": "Payments after the redesign",
"source": "Illustrative domain model",
"width": 900,
"height": 600,
"classes": {
"classes": [
{
"id": "order",
"label": "Order",
"attributes": [
"+ id: Int",
"+ total: Money"
],
"methods": [
"+ pay(): Receipt"
],
"role": "critical"
},
{
"id": "payment",
"label": "Payment",
"kind": "interface",
"methods": [
"+ charge(amount: Money): Receipt"
]
},
{
"id": "card",
"label": "CardPayment",
"attributes": [
"- token: String"
],
"methods": [
"+ charge(amount: Money): Receipt"
]
},
{
"id": "wallet",
"label": "WalletPayment",
"attributes": [
"- walletId: String"
],
"methods": [
"+ charge(amount: Money): Receipt"
],
"role": "planned"
},
{
"id": "invoice",
"label": "PaperInvoice",
"attributes": [
"+ number: String",
"+ dueAt: Date"
],
"role": "deprecated"
},
{
"id": "receipt",
"label": "Receipt",
"attributes": [
"+ id: String",
"+ paidAt: Date"
]
}
],
"relations": [
{
"from": "order",
"to": "payment",
"kind": "dependency",
"label": "paid by",
"role": "critical"
},
{
"from": "card",
"to": "payment",
"kind": "realization"
},
{
"from": "wallet",
"to": "payment",
"kind": "realization"
},
{
"from": "order",
"to": "invoice",
"fromCardinality": "1",
"toCardinality": "0..1",
"role": "deprecated"
},
{
"from": "order",
"to": "receipt",
"kind": "composition",
"fromCardinality": "1",
"toCardinality": "0..*",
"role": "planned"
}
]
}
}Focus
Source: Illustrative domain model
Show chart data
| Item | Kind | Role | Attributes | Methods | Relations |
|---|---|---|---|---|---|
| Order | Class | critical | + id: Int; + total: Money | + pay(): Receipt | depends on Payment [paid by] (critical); is associated with PaperInvoice (1 : 0..1) (deprecated); is composed of Receipt (1 : 0..*) (planned) |
| Payment | Interface | + charge(amount: Money): Receipt | |||
| CardPayment | Class | - token: String | + charge(amount: Money): Receipt | implements Payment | |
| WalletPayment | Class | planned | - walletId: String | + charge(amount: Money): Receipt | implements Payment |
| PaperInvoice | Class | deprecated | + number: String; + dueAt: Date | ||
| Receipt | Class | + id: String; + paidAt: Date |
Trees and networks
Ownership structure of the Northwind group
examples/ownership-structure.jsonDetail: Ownership structure of the Northwind group →{
"schemaVersion": 1,
"type": "tree",
"title": "Ownership structure of the Northwind group",
"source": "Illustrative values",
"width": 1000,
"height": 520,
"tree": {
"nodes": [
{
"id": "holding",
"label": "Northwind Holding",
"sublabel": "parent company"
},
{
"id": "retail",
"label": "Northwind Retail",
"sublabel": "operating company",
"parent": "holding",
"link": "100 %",
"collapsed": true
},
{
"id": "logistics",
"label": "Northwind Logistics",
"sublabel": "operating company",
"parent": "holding",
"link": "75 %"
},
{
"id": "digital",
"label": "Northwind Digital",
"sublabel": "software",
"parent": "holding",
"link": "60 %"
},
{
"id": "stores",
"label": "Stores",
"parent": "retail",
"link": "100 %"
},
{
"id": "outlet",
"label": "Outlet",
"parent": "retail",
"link": "51 %"
},
{
"id": "fleet",
"label": "Fleet",
"sublabel": "leasing",
"parent": "logistics",
"link": "100 %"
},
{
"id": "platform",
"label": "Platform",
"parent": "digital",
"link": "100 %"
},
{
"id": "labs",
"label": "Labs",
"sublabel": "joint venture",
"parent": "digital",
"link": "50 %"
},
{
"id": "studio",
"label": "Studio",
"parent": "labs",
"link": "100 %"
}
]
},
"mobile": {
"width": 448,
"height": 540
}
}Focus
Source: Illustrative values
Show chart data
| Node | Level | Parent | Link | Children | Collapsed |
|---|---|---|---|---|---|
| Northwind Holding | 1 | Northwind Retail, Northwind Logistics, Northwind Digital | |||
| Northwind Retail | 2 | Northwind Holding | 100 % | Stores, Outlet | +2 |
| Stores | 3 | Northwind Retail | 100 % | ||
| Outlet | 3 | Northwind Retail | 51 % | ||
| Northwind Logistics | 2 | Northwind Holding | 75 % | Fleet | |
| Fleet | 3 | Northwind Logistics | 100 % | ||
| Northwind Digital | 2 | Northwind Holding | 60 % | Platform, Labs | |
| Platform | 3 | Northwind Digital | 100 % | ||
| Labs | 3 | Northwind Digital | 50 % | Studio | |
| Studio | 4 | Labs | 100 % |
Northwind group: the digital branch
examples/ownership-focus.jsonDetail: Northwind group: the digital branch →{
"schemaVersion": 1,
"type": "tree",
"title": "Northwind group: the digital branch",
"source": "Illustrative values",
"width": 1000,
"height": 520,
"tree": {
"nodes": [
{
"id": "holding",
"label": "Northwind Holding",
"sublabel": "parent company"
},
{
"id": "retail",
"label": "Northwind Retail",
"sublabel": "operating company",
"parent": "holding",
"link": "100 %",
"collapsed": true
},
{
"id": "logistics",
"label": "Northwind Logistics",
"sublabel": "operating company",
"parent": "holding",
"link": "75 %"
},
{
"id": "digital",
"label": "Northwind Digital",
"sublabel": "software",
"parent": "holding",
"link": "60 %"
},
{
"id": "stores",
"label": "Stores",
"parent": "retail",
"link": "100 %"
},
{
"id": "outlet",
"label": "Outlet",
"parent": "retail",
"link": "51 %"
},
{
"id": "fleet",
"label": "Fleet",
"sublabel": "leasing",
"parent": "logistics",
"link": "100 %"
},
{
"id": "platform",
"label": "Platform",
"parent": "digital",
"link": "100 %"
},
{
"id": "labs",
"label": "Labs",
"sublabel": "joint venture",
"parent": "digital",
"link": "50 %"
},
{
"id": "studio",
"label": "Studio",
"parent": "labs",
"link": "100 %"
}
]
},
"mobile": {
"width": 448,
"height": 540
},
"emphasis": {
"nodes": [
"digital"
],
"path": [
"holding",
"digital",
"platform"
]
},
"legend": "auto"
}Focus
Source: Illustrative values
Show chart data
| Node | Level | Parent | Link | Children | Collapsed | Emphasis |
|---|---|---|---|---|---|---|
| Northwind Holding | 1 | Northwind Retail, Northwind Logistics, Northwind Digital | on emphasized path | |||
| Northwind Retail | 2 | Northwind Holding | 100 % | Stores, Outlet | +2 | |
| Stores | 3 | Northwind Retail | 100 % | |||
| Outlet | 3 | Northwind Retail | 51 % | |||
| Northwind Logistics | 2 | Northwind Holding | 75 % | Fleet | ||
| Fleet | 3 | Northwind Logistics | 100 % | |||
| Northwind Digital | 2 | Northwind Holding | 60 % | Platform, Labs | emphasized, on emphasized path | |
| Platform | 3 | Northwind Digital | 100 % | on emphasized path | ||
| Labs | 3 | Northwind Digital | 50 % | Studio | ||
| Studio | 4 | Labs | 100 % |
Three generations of the Reyes family
examples/family-tree.jsonDetail: Three generations of the Reyes family →{
"schemaVersion": 1,
"type": "tree",
"title": "Three generations of the Reyes family",
"source": "Illustrative family",
"width": 960,
"height": 480,
"tree": {
"nodes": [
{
"id": "ana",
"label": "Ana Reyes",
"sublabel": "born 1948",
"kind": "person"
},
{
"id": "tomas",
"label": "Tomás Reyes",
"sublabel": "born 1945",
"kind": "person",
"partner": "ana"
},
{
"id": "lena",
"label": "Lena Reyes",
"sublabel": "born 1974",
"kind": "person",
"parent": "ana"
},
{
"id": "marc",
"label": "Marc Duval",
"sublabel": "born 1972",
"kind": "person",
"partner": "lena"
},
{
"id": "paul",
"label": "Paul Reyes",
"sublabel": "born 1978",
"kind": "person",
"parent": "ana"
},
{
"id": "sofia",
"label": "Sofia Duval",
"sublabel": "born 2003",
"kind": "person",
"parent": "lena"
},
{
"id": "nico",
"label": "Nico Duval",
"sublabel": "born 2006",
"kind": "person",
"parent": "lena"
},
{
"id": "estate",
"label": "Family foundation",
"sublabel": "owns the house",
"kind": "external",
"parent": "paul",
"link": "trustee"
}
]
},
"mobile": {
"width": 448,
"height": 560
}
}Focus
Source: Illustrative family
Show chart data
| Node | Level | Parent | Partner | Link | Children |
|---|---|---|---|---|---|
| Ana Reyes | 1 | Tomás Reyes | Lena Reyes, Paul Reyes | ||
| Tomás Reyes | 1 | Ana Reyes | |||
| Lena Reyes | 2 | Ana Reyes | Marc Duval | Sofia Duval, Nico Duval | |
| Marc Duval | 2 | Lena Reyes | |||
| Sofia Duval | 3 | Lena Reyes | |||
| Nico Duval | 3 | Lena Reyes | |||
| Paul Reyes | 2 | Ana Reyes | Family foundation | ||
| Family foundation | 3 | Paul Reyes | trustee |
Product strategy 2026
examples/product-strategy.jsonDetail: Product strategy 2026 →{
"schemaVersion": 1,
"type": "tree",
"title": "Product strategy 2026",
"source": "Illustrative themes and measures",
"width": 920,
"height": 540,
"tree": {
"layout": "radial",
"nodes": [
{
"id": "platform",
"label": "Platform",
"sublabel": "strategy 2026"
},
{
"id": "ux",
"label": "Experience",
"parent": "platform"
},
{
"id": "data",
"label": "Data",
"parent": "platform"
},
{
"id": "ops",
"label": "Operations",
"parent": "platform"
},
{
"id": "growth",
"label": "Growth",
"parent": "platform"
},
{
"id": "design-system",
"label": "Design system",
"parent": "ux"
},
{
"id": "mobile",
"label": "Mobile first",
"parent": "ux"
},
{
"id": "accessibility",
"label": "Accessibility",
"parent": "ux"
},
{
"id": "tracking",
"label": "Tracking",
"parent": "data"
},
{
"id": "reporting",
"label": "Reporting",
"parent": "data"
},
{
"id": "deploy",
"label": "Deployment",
"parent": "ops"
},
{
"id": "monitoring",
"label": "Monitoring",
"parent": "ops"
},
{
"id": "seo",
"label": "Search",
"parent": "growth"
},
{
"id": "crm",
"label": "CRM automation",
"parent": "growth"
},
{
"id": "partners",
"label": "Partner network",
"kind": "external",
"parent": "growth"
}
]
}
}Focus
Source: Illustrative themes and measures
Show chart data
| Node | Level | Parent | Children |
|---|---|---|---|
| Platform | 1 | Experience, Data, Operations, Growth | |
| Experience | 2 | Platform | Design system, Mobile first, Accessibility |
| Design system | 3 | Experience | |
| Mobile first | 3 | Experience | |
| Accessibility | 3 | Experience | |
| Data | 2 | Platform | Tracking, Reporting |
| Tracking | 3 | Data | |
| Reporting | 3 | Data | |
| Operations | 2 | Platform | Deployment, Monitoring |
| Deployment | 3 | Operations | |
| Monitoring | 3 | Operations | |
| Growth | 2 | Platform | Search, CRM automation, Partner network |
| Search | 3 | Growth | |
| CRM automation | 3 | Growth | |
| Partner network | 3 | Growth |
How alike the climates of twelve European capitals are
examples/climate-similarity.jsonDetail: How alike the climates of twelve European capitals are →{
"schemaVersion": 1,
"type": "tree",
"title": "How alike the climates of twelve European capitals are",
"source": "Mean temperature and precipitation, illustrative values",
"width": 720,
"height": 440,
"tree": {
"distances": {
"labels": [
"Lisbon",
"Madrid",
"Rome",
"Athens",
"Paris",
"London",
"Berlin",
"Warsaw",
"Oslo",
"Stockholm",
"Helsinki",
"Vienna"
],
"matrix": [
[
0,
5.4,
2,
5.2,
5.4,
6.5,
7.9,
9.4,
11.5,
10.9,
11.7,
7.3
],
[
5.4,
0,
6,
3.5,
4.4,
4.7,
5.5,
6.8,
10.5,
8.2,
9.8,
5.6
],
[
2,
6,
0,
6.8,
4.2,
5.4,
6.8,
8.2,
9.8,
9.7,
10.2,
6
],
[
5.2,
3.5,
6.8,
0,
7.3,
7.9,
8.9,
10.3,
13.8,
11.7,
13.2,
8.8
],
[
5.4,
4.4,
4.2,
7.3,
0,
1.2,
2.6,
4.1,
6.6,
5.5,
6.4,
1.9
],
[
6.5,
4.7,
5.4,
7.9,
1.2,
0,
1.4,
2.9,
5.9,
4.4,
5.5,
1
],
[
7.9,
5.5,
6.8,
8.9,
2.6,
1.4,
0,
1.5,
5,
3,
4.3,
0.9
],
[
9.4,
6.8,
8.2,
10.3,
4.1,
2.9,
1.5,
0,
4.2,
1.5,
3.1,
2.2
],
[
11.5,
10.5,
9.8,
13.8,
6.6,
5.9,
5,
4.2,
0,
3.7,
1.8,
4.9
],
[
10.9,
8.2,
9.7,
11.7,
5.5,
4.4,
3,
1.5,
3.7,
0,
2.1,
3.6
],
[
11.7,
9.8,
10.2,
13.2,
6.4,
5.5,
4.3,
3.1,
1.8,
2.1,
0,
4.5
],
[
7.3,
5.6,
6,
8.8,
1.9,
1,
0.9,
2.2,
4.9,
3.6,
4.5,
0
]
]
}
}
}Source: Mean temperature and precipitation, illustrative values
Show chart data
| Step | Joins | Distance | Items |
|---|---|---|---|
| 1 | Berlin + Vienna | 0.9 | 2 |
| 2 | Paris + London | 1.2 | 2 |
| 3 | Warsaw + Stockholm | 1.5 | 2 |
| 4 | {Paris, London} + {Berlin, Vienna} | 1.725 | 4 |
| 5 | Oslo + Helsinki | 1.8 | 2 |
| 6 | Lisbon + Rome | 2 | 2 |
| 7 | {Warsaw, Stockholm} + {Oslo, Helsinki} | 3.275 | 4 |
| 8 | Madrid + Athens | 3.5 | 2 |
| 9 | {Paris, London, Berlin, … +1} + {Warsaw, Stockholm, Oslo, … +1} | 4.39375 | 8 |
| 10 | {Lisbon, Rome} + {Madrid, Athens} | 5.85 | 4 |
| 11 | {Lisbon, Rome, Madrid, … +1} + {Paris, London, Berlin, … +5} | 8.384375 | 12 |
Budget by department
examples/department-budgets.jsonDetail: Budget by department →{
"schemaVersion": 1,
"type": "tree",
"title": "Budget by department",
"source": "Annual plan",
"width": 960,
"height": 300,
"tree": {
"valueLabel": "Budget (m €)",
"nodes": [
{
"id": "board",
"label": "Executive board",
"value": 4.2
},
{
"id": "product",
"label": "Product",
"parent": "board",
"value": 18.5
},
{
"id": "sales",
"label": "Sales",
"parent": "board",
"value": 11
},
{
"id": "finance",
"label": "Finance",
"parent": "board",
"value": 3.1
},
{
"id": "design",
"label": "Design",
"parent": "product",
"value": 2.4
},
{
"id": "engineering",
"label": "Engineering",
"parent": "product",
"value": 14.8
},
{
"id": "research",
"label": "Research",
"parent": "product",
"value": 1.3
},
{
"id": "field",
"label": "Field sales",
"parent": "sales",
"value": 7.6
},
{
"id": "partners",
"label": "Partner channel",
"parent": "sales",
"value": 3.4
},
{
"id": "controlling",
"label": "Controlling",
"parent": "finance",
"value": 1.2
},
{
"id": "accounting",
"label": "Accounting",
"parent": "finance",
"value": 1.9
}
]
}
}Focus
Source: Annual plan
Show chart data
| Node | Level | Parent | Budget (m €) | Children |
|---|---|---|---|---|
| Executive board | 1 | 4.2 | Product, Sales, Finance | |
| Product | 2 | Executive board | 18.5 | Design, Engineering, Research |
| Design | 3 | Product | 2.4 | |
| Engineering | 3 | Product | 14.8 | |
| Research | 3 | Product | 1.3 | |
| Sales | 2 | Executive board | 11 | Field sales, Partner channel |
| Field sales | 3 | Sales | 7.6 | |
| Partner channel | 3 | Sales | 3.4 | |
| Finance | 2 | Executive board | 3.1 | Controlling, Accounting |
| Controlling | 3 | Finance | 1.2 | |
| Accounting | 3 | Finance | 1.9 |
Joint papers between the members of four institutes
examples/co-authors.jsonDetail: Joint papers between the members of four institutes →{
"schemaVersion": 1,
"type": "network",
"title": "Joint papers between the members of four institutes",
"source": "Publication database, 2021–2025",
"width": 820,
"height": 640,
"mobile": {
"width": 360,
"height": 560
},
"network": {
"nodes": [
{
"id": "weber",
"label": "Weber",
"group": "Physics"
},
{
"id": "nair",
"label": "Nair",
"group": "Physics"
},
{
"id": "costa",
"label": "Costa",
"group": "Physics"
},
{
"id": "lindqvist",
"label": "Lindqvist",
"group": "Chemistry"
},
{
"id": "okafor",
"label": "Okafor",
"group": "Chemistry"
},
{
"id": "tanaka",
"label": "Tanaka",
"group": "Chemistry"
},
{
"id": "moreau",
"label": "Moreau",
"group": "Biology"
},
{
"id": "silva",
"label": "Silva",
"group": "Biology"
},
{
"id": "hughes",
"label": "Hughes",
"group": "Biology"
},
{
"id": "kowalski",
"label": "Kowalski",
"group": "Biology"
},
{
"id": "berger",
"label": "Berger",
"group": "Computing"
},
{
"id": "yilmaz",
"label": "Yilmaz",
"group": "Computing"
},
{
"id": "chen",
"label": "Chen",
"group": "Computing"
},
{
"id": "adeyemi",
"label": "Adeyemi",
"group": "Computing"
}
],
"edges": [
{
"from": "weber",
"to": "nair",
"weight": 9
},
{
"from": "weber",
"to": "costa",
"weight": 4
},
{
"from": "nair",
"to": "costa",
"weight": 6
},
{
"from": "lindqvist",
"to": "okafor",
"weight": 7
},
{
"from": "okafor",
"to": "tanaka",
"weight": 3
},
{
"from": "lindqvist",
"to": "tanaka",
"weight": 2
},
{
"from": "moreau",
"to": "silva",
"weight": 8
},
{
"from": "silva",
"to": "hughes",
"weight": 5
},
{
"from": "hughes",
"to": "kowalski",
"weight": 4
},
{
"from": "moreau",
"to": "kowalski",
"weight": 2
},
{
"from": "berger",
"to": "yilmaz",
"weight": 6
},
{
"from": "yilmaz",
"to": "chen",
"weight": 5
},
{
"from": "chen",
"to": "adeyemi",
"weight": 3
},
{
"from": "costa",
"to": "lindqvist",
"weight": 3
},
{
"from": "okafor",
"to": "silva",
"weight": 4
},
{
"from": "tanaka",
"to": "hughes",
"weight": 1
},
{
"from": "chen",
"to": "nair",
"weight": 5
},
{
"from": "yilmaz",
"to": "silva",
"weight": 6
},
{
"from": "adeyemi",
"to": "moreau",
"weight": 2
},
{
"from": "berger",
"to": "weber",
"weight": 1
}
]
}
}Focus
Source: Publication database, 2021–2025
Show chart data
| Node | Group | Connects to |
|---|---|---|
| Nair | Physics | Weber (weight 9), Costa (weight 6), Chen (weight 5) |
| Weber | Physics | Nair (weight 9), Costa (weight 4), Berger (weight 1) |
| Costa | Physics | Weber (weight 4), Nair (weight 6), Lindqvist (weight 3) |
| Lindqvist | Chemistry | Okafor (weight 7), Tanaka (weight 2), Costa (weight 3) |
| Tanaka | Chemistry | Okafor (weight 3), Lindqvist (weight 2), Hughes (weight 1) |
| Okafor | Chemistry | Lindqvist (weight 7), Tanaka (weight 3), Silva (weight 4) |
| Moreau | Biology | Silva (weight 8), Kowalski (weight 2), Adeyemi (weight 2) |
| Silva | Biology | Moreau (weight 8), Hughes (weight 5), Okafor (weight 4), Yilmaz (weight 6) |
| Hughes | Biology | Silva (weight 5), Kowalski (weight 4), Tanaka (weight 1) |
| Kowalski | Biology | Hughes (weight 4), Moreau (weight 2) |
| Berger | Computing | Yilmaz (weight 6), Weber (weight 1) |
| Yilmaz | Computing | Berger (weight 6), Chen (weight 5), Silva (weight 6) |
| Chen | Computing | Yilmaz (weight 5), Adeyemi (weight 3), Nair (weight 5) |
| Adeyemi | Computing | Chen (weight 3), Moreau (weight 2) |
What the checkout service depends on
examples/service-dependencies.jsonDetail: What the checkout service depends on →{
"schemaVersion": 1,
"type": "network",
"title": "What the checkout service depends on",
"source": "Service catalogue",
"width": 900,
"height": 640,
"network": {
"layout": "rings",
"center": "checkout",
"directed": true,
"nodes": [
{
"id": "checkout",
"label": "Checkout",
"group": "Shop"
},
{
"id": "cart",
"label": "Cart",
"group": "Shop"
},
{
"id": "pricing",
"label": "Pricing",
"group": "Shop"
},
{
"id": "payments",
"label": "Payments",
"group": "Finance"
},
{
"id": "auth",
"label": "Sign-in",
"group": "Platform"
},
{
"id": "catalog",
"label": "Catalog",
"group": "Shop"
},
{
"id": "tax",
"label": "Tax rules",
"group": "Finance"
},
{
"id": "fraud",
"label": "Fraud check",
"group": "Finance"
},
{
"id": "ledger",
"label": "Ledger",
"group": "Finance"
},
{
"id": "users",
"label": "User store",
"group": "Platform"
},
{
"id": "search",
"label": "Search",
"group": "Shop"
},
{
"id": "events",
"label": "Event bus",
"group": "Platform"
},
{
"id": "metrics",
"label": "Metrics",
"group": "Platform"
}
],
"edges": [
{
"from": "checkout",
"to": "cart"
},
{
"from": "checkout",
"to": "pricing"
},
{
"from": "checkout",
"to": "payments"
},
{
"from": "checkout",
"to": "auth"
},
{
"from": "cart",
"to": "catalog"
},
{
"from": "pricing",
"to": "catalog"
},
{
"from": "pricing",
"to": "tax"
},
{
"from": "payments",
"to": "fraud"
},
{
"from": "payments",
"to": "ledger"
},
{
"from": "auth",
"to": "users"
},
{
"from": "catalog",
"to": "search"
},
{
"from": "ledger",
"to": "events"
},
{
"from": "fraud",
"to": "events",
"dash": "dashed"
},
{
"from": "events",
"to": "metrics",
"dash": "dashed"
}
]
}
}Focus
Source: Service catalogue
Show chart data
| Node | Group | Ring | Leads to |
|---|---|---|---|
| Checkout | Shop | Center | Cart, Pricing, Payments, Sign-in |
| Cart | Shop | 1 | Catalog |
| Pricing | Shop | 1 | Catalog, Tax rules |
| Payments | Finance | 1 | Fraud check, Ledger |
| Sign-in | Platform | 1 | User store |
| Catalog | Shop | 2 | Search |
| Tax rules | Finance | 2 | |
| Fraud check | Finance | 2 | Event bus |
| Ledger | Finance | 2 | Event bus |
| User store | Platform | 2 | |
| Search | Shop | 3 | |
| Event bus | Platform | 3 | Metrics |
| Metrics | Platform | 4 |
Checkout dependencies: the payment chain
examples/dependencies-focus.jsonDetail: Checkout dependencies: the payment chain →{
"schemaVersion": 1,
"type": "network",
"title": "Checkout dependencies: the payment chain",
"source": "Service catalogue",
"width": 900,
"height": 560,
"network": {
"layout": "rings",
"center": "checkout",
"directed": true,
"nodes": [
{
"id": "checkout",
"label": "Checkout",
"group": "Shop"
},
{
"id": "cart",
"label": "Cart",
"group": "Shop"
},
{
"id": "pricing",
"label": "Pricing",
"group": "Shop"
},
{
"id": "payments",
"label": "Payments",
"group": "Finance"
},
{
"id": "auth",
"label": "Sign-in",
"group": "Platform"
},
{
"id": "fraud",
"label": "Fraud check",
"group": "Finance"
},
{
"id": "ledger",
"label": "Ledger",
"group": "Finance"
},
{
"id": "events",
"label": "Event bus",
"group": "Platform"
}
],
"edges": [
{
"from": "checkout",
"to": "cart"
},
{
"from": "checkout",
"to": "pricing"
},
{
"from": "checkout",
"to": "payments"
},
{
"from": "checkout",
"to": "auth"
},
{
"from": "payments",
"to": "fraud"
},
{
"from": "payments",
"to": "ledger"
},
{
"from": "ledger",
"to": "events"
},
{
"from": "fraud",
"to": "events",
"dash": "dashed"
}
]
},
"emphasis": {
"nodes": [
"payments"
],
"path": [
"checkout",
"payments",
"ledger",
"events"
]
},
"legend": "auto",
"mobile": {
"width": 540,
"height": 640
}
}Focus
Source: Service catalogue
Show chart data
| Node | Group | Ring | Leads to | Emphasis |
|---|---|---|---|---|
| Checkout | Shop | Center | Cart, Pricing, Payments, Sign-in | on emphasized path |
| Cart | Shop | 1 | ||
| Pricing | Shop | 1 | ||
| Payments | Finance | 1 | Fraud check, Ledger | emphasized, on emphasized path |
| Sign-in | Platform | 1 | ||
| Fraud check | Finance | 2 | Event bus | |
| Ledger | Finance | 2 | Event bus | on emphasized path |
| Event bus | Platform | 3 | on emphasized path |
The improvement cycle of a support team
examples/improvement-cycle.jsonDetail: The improvement cycle of a support team →{
"schemaVersion": 1,
"type": "cycle",
"title": "The improvement cycle of a support team",
"source": "Team handbook",
"width": 760,
"height": 520,
"mobile": {
"width": 420,
"height": 560
},
"cycle": {
"labels": "inside",
"steps": [
{
"id": "collect",
"label": "Collect tickets",
"note": "every channel"
},
{
"id": "sort",
"label": "Find patterns",
"note": "weekly"
},
{
"id": "fix",
"label": "Fix the cause",
"role": "critical"
},
{
"id": "document",
"label": "Write it down"
},
{
"id": "train",
"label": "Train the team",
"role": "planned"
}
]
}
}Focus
Source: Team handbook
Show chart data
| No. | Step | Notes | Role |
|---|---|---|---|
| 1 | Collect tickets | every channel | |
| 2 | Find patterns | weekly | |
| 3 | Fix the cause | critical | |
| 4 | Write it down | ||
| 5 | Train the team | planned |
Why a good product brings the next customers
examples/growth-flywheel.jsonDetail: Why a good product brings the next customers →{
"schemaVersion": 1,
"type": "cycle",
"title": "Why a good product brings the next customers",
"width": 760,
"height": 540,
"mobile": {
"width": 476,
"height": 640
},
"cycle": {
"steps": [
{
"id": "product",
"label": "Better product",
"note": "from feedback",
"hubLabel": "delights"
},
{
"id": "happy",
"label": "Happy customers",
"hubLabel": "stay on"
},
{
"id": "word",
"label": "Word of mouth",
"hubLabel": "refer"
},
{
"id": "growth",
"label": "More customers",
"hubLabel": "inform"
},
{
"id": "revenue",
"label": "Revenue to invest",
"hubLabel": "reinvest"
}
],
"hub": {
"label": "Customers",
"note": "at the center"
}
}
}Focus
Show chart data
| No. | Step | Notes | Hub link |
|---|---|---|---|
| 1 | Better product | from feedback | delights |
| 2 | Happy customers | stay on | |
| 3 | Word of mouth | refer | |
| 4 | More customers | inform | |
| 5 | Revenue to invest | reinvest |
The layers of the platform, from the machine up
examples/platform-layers.jsonDetail: The layers of the platform, from the machine up →{
"schemaVersion": 1,
"type": "layers",
"title": "The layers of the platform, from the machine up",
"source": "Platform team, architecture overview",
"width": 860,
"height": 600,
"mobile": {
"width": 360,
"height": 640
},
"layers": {
"layers": [
{
"id": "infrastructure",
"label": "Infrastructure",
"items": [
"Compute",
"Storage",
"Network"
],
"note": "Rented from one provider; capacity is changed by the platform team only."
},
{
"id": "runtime",
"label": "Runtime and data",
"items": [
"Containers",
"Message broker",
"Relational database",
"Object store"
]
},
{
"id": "services",
"label": "Domain services",
"items": [
"Orders",
"Catalog",
"Billing",
"Customers"
],
"note": "One team per service; services talk only through published interfaces.",
"role": "critical"
},
{
"id": "experience",
"label": "Experience",
"items": [
"Web shop",
"Mobile app",
"Partner API"
],
"note": "The partner API is planned for next year.",
"role": "planned"
}
]
}
}Focus
Source: Platform team, architecture overview
Show chart data
| Level | Layer | Items | Notes | Role |
|---|---|---|---|---|
| 1 | Infrastructure | Compute, Storage, Network | Rented from one provider; capacity is changed by the platform team only. | |
| 2 | Runtime and data | Containers, Message broker, Relational database, Object store | ||
| 3 | Domain services | Orders, Catalog, Billing, Customers | One team per service; services talk only through published interfaces. | critical |
| 4 | Experience | Web shop, Mobile app, Partner API | The partner API is planned for next year. | planned |
Who owns what: organization, team, service
examples/scope-nesting.jsonDetail: Who owns what: organization, team, service →{
"schemaVersion": 1,
"type": "layers",
"title": "Who owns what: organization, team, service",
"width": 820,
"height": 540,
"mobile": {
"width": 360,
"height": 640
},
"layers": {
"display": "nested",
"layers": [
{
"id": "organization",
"label": "Organization",
"items": [
"Security policy",
"Shared tooling"
],
"note": "Sets the rules every team works under."
},
{
"id": "team",
"label": "Payments team",
"items": [
"On-call rota",
"Roadmap"
],
"note": "Owns its services from design to operation."
},
{
"id": "service",
"label": "Billing service",
"items": [
"Invoices",
"Reminders",
"Tax rules"
],
"role": "critical"
}
]
}
}Focus
Show chart data
| Level | Scope | Items | Notes | Role |
|---|---|---|---|---|
| 1 | Organization | Security policy, Shared tooling | Sets the rules every team works under. | |
| 2 | Payments team | On-call rota, Roadmap | Owns its services from design to operation. | |
| 3 | Billing service | Invoices, Reminders, Tax rules | critical |
The platform layers, lifted apart
examples/platform-exploded.jsonDetail: The platform layers, lifted apart →{
"schemaVersion": 1,
"type": "layers",
"title": "The platform layers, lifted apart",
"source": "Platform team, architecture overview",
"width": 960,
"height": 640,
"mobile": {
"width": 420,
"height": 640
},
"layers": {
"projection": "exploded",
"layers": [
{
"id": "infrastructure",
"label": "Infrastructure",
"items": [
"Compute",
"Storage",
"Network"
],
"note": "Rented from one provider; capacity is changed by the platform team only."
},
{
"id": "runtime",
"label": "Runtime and data",
"items": [
"Containers",
"Message broker",
"Relational database"
]
},
{
"id": "services",
"label": "Domain services",
"items": [
"Orders",
"Catalog",
"Billing"
],
"note": "One team per service.",
"role": "critical"
},
{
"id": "experience",
"label": "Experience",
"items": [
"Web shop",
"Mobile app"
],
"role": "planned"
}
]
}
}Focus
Source: Platform team, architecture overview
Show chart data
| Level | Layer | Items | Notes | Role |
|---|---|---|---|---|
| 1 | Infrastructure | Compute, Storage, Network | Rented from one provider; capacity is changed by the platform team only. | |
| 2 | Runtime and data | Containers, Message broker, Relational database | ||
| 3 | Domain services | Orders, Catalog, Billing | One team per service. | critical |
| 4 | Experience | Web shop, Mobile app | planned |
The office floor today and in the two building phases
examples/office-floor.jsonDetail: The office floor today and in the two building phases →{
"schemaVersion": 1,
"type": "plan",
"title": "The office floor today and in the two building phases",
"source": "Facility planning, illustrative",
"width": 960,
"height": 560,
"mobile": {
"width": 420,
"height": 620
},
"plan": {
"areas": [
{
"id": "open-office",
"label": "Open office",
"x": 0,
"y": 0,
"w": 6,
"h": 4,
"phase": "Existing",
"items": [
{
"kind": "desk",
"x": 0.6,
"y": 0.6
},
{
"kind": "desk",
"x": 2.4,
"y": 0.6
},
{
"kind": "desk",
"x": 4.2,
"y": 0.6
},
{
"kind": "desk",
"x": 0.6,
"y": 2.6
},
{
"kind": "desk",
"x": 2.4,
"y": 2.6
},
{
"kind": "desk",
"x": 4.2,
"y": 2.6
}
]
},
{
"id": "meeting",
"label": "Meeting room",
"x": 6,
"y": 0,
"w": 4,
"h": 3,
"phase": "Existing",
"items": [
{
"kind": "table",
"x": 1.5,
"y": 1
}
]
},
{
"id": "kitchen",
"label": "Kitchen",
"x": 6,
"y": 3,
"w": 4,
"h": 3,
"phase": "Phase 1",
"items": [
{
"kind": "table",
"x": 1.5,
"y": 1
},
{
"kind": "plant",
"x": 3.3,
"y": 0.4
}
]
},
{
"id": "server",
"label": "Server room",
"x": 0,
"y": 4,
"w": 3,
"h": 2,
"phase": "Phase 1",
"items": [
{
"kind": "shelf",
"x": 0.4,
"y": 0.4
},
{
"kind": "shelf",
"x": 1.6,
"y": 0.4
}
]
},
{
"id": "library",
"label": "Library",
"x": 3,
"y": 4,
"w": 3,
"h": 2,
"phase": "Phase 2",
"items": [
{
"kind": "shelf",
"x": 0.3,
"y": 0.3
},
{
"kind": "sofa",
"x": 1,
"y": 1.1
}
]
},
{
"id": "terrace",
"label": "Terrace",
"kind": "outdoor",
"x": 10,
"y": 0,
"w": 3,
"h": 6,
"phase": "Phase 2"
}
]
}
}Focus
Source: Facility planning, illustrative
Show chart data
| Area | Kind | Position | Size | Phase | Items |
|---|---|---|---|---|---|
| Open office | room | 0, 0 | 6 × 4 | Existing | desk, desk, desk, desk, desk, desk |
| Meeting room | room | 6, 0 | 4 × 3 | Existing | table |
| Kitchen | room | 6, 3 | 4 × 3 | Phase 1 | table, plant |
| Server room | room | 0, 4 | 3 × 2 | Phase 1 | shelf, shelf |
| Library | room | 3, 4 | 3 × 2 | Phase 2 | shelf, sofa |
| Terrace | outdoor | 10, 0 | 3 × 6 | Phase 2 |
The school site: what stands, and what comes next
examples/campus-site.jsonDetail: The school site: what stands, and what comes next →{
"schemaVersion": 1,
"type": "plan",
"title": "The school site: what stands, and what comes next",
"width": 900,
"height": 540,
"mobile": {
"width": 400,
"height": 600
},
"plan": {
"areas": [
{
"id": "grounds",
"label": "School grounds",
"kind": "outdoor",
"x": 0,
"y": 0,
"w": 14,
"h": 9
},
{
"id": "main",
"label": "Main building",
"kind": "building",
"x": 1,
"y": 1,
"w": 8,
"h": 3,
"phase": "Existing"
},
{
"id": "gym",
"label": "Gym",
"kind": "building",
"x": 10,
"y": 1,
"w": 3,
"h": 5,
"phase": "Existing"
},
{
"id": "workshop",
"label": "Workshop",
"kind": "building",
"x": 1,
"y": 5,
"w": 4,
"h": 3,
"phase": "Phase 1"
},
{
"id": "library",
"label": "Library wing",
"kind": "building",
"x": 6,
"y": 5,
"w": 3,
"h": 3,
"phase": "Phase 2"
},
{
"id": "garden",
"label": "School garden",
"kind": "outdoor",
"x": 10,
"y": 6.5,
"w": 3.5,
"h": 2,
"phase": "Phase 1"
}
]
}
}Focus
Show chart data
| Area | Kind | Position | Size | Phase |
|---|---|---|---|---|
| School grounds | outdoor | 0, 0 | 14 × 9 | |
| Main building | building | 1, 1 | 8 × 3 | Existing |
| Gym | building | 10, 1 | 3 × 5 | Existing |
| Workshop | building | 1, 5 | 4 × 3 | Phase 1 |
| Library wing | building | 6, 5 | 3 × 3 | Phase 2 |
| School garden | outdoor | 10, 6.5 | 3.5 × 2 | Phase 1 |
The orders platform: today and as targeted
examples/orders-delta.jsonDetail: The orders platform: today and as targeted →{
"schemaVersion": 1,
"type": "architecture",
"title": "The orders platform: today and as targeted",
"width": 1280,
"height": 820,
"architecture": {
"components": [
{
"id": "web",
"label": "Web shop",
"sublabel": "React",
"kind": "frontend",
"in": "cloud"
},
{
"id": "orders",
"label": "Orders",
"sublabel": "Java",
"in": "datacenter"
},
{
"id": "orders-next",
"label": "Orders",
"sublabel": "Kotlin",
"in": "cloud",
"replaces": "orders"
},
{
"id": "legacy",
"label": "Legacy ERP",
"kind": "external",
"in": "datacenter"
},
{
"id": "queue",
"label": "Event bus",
"kind": "queue",
"in": "cloud"
},
{
"id": "billing",
"label": "Billing",
"in": "cloud"
},
{
"id": "db",
"label": "Orders DB",
"sublabel": "PostgreSQL",
"kind": "database",
"in": "cloud"
}
],
"boundaries": [
{
"id": "cloud",
"label": "Cloud region"
},
{
"id": "datacenter",
"label": "Data center"
}
],
"connections": [
{
"from": "web",
"to": "orders",
"label": "places orders",
"technology": "HTTPS"
},
{
"from": "orders",
"to": "legacy",
"label": "syncs stock",
"technology": "SOAP"
},
{
"from": "orders",
"to": "db",
"label": "reads and writes",
"technology": "SQL"
},
{
"from": "web",
"to": "orders-next",
"label": "places orders",
"technology": "HTTPS"
},
{
"from": "orders-next",
"to": "queue",
"label": "publishes order events"
},
{
"from": "queue",
"to": "billing",
"label": "delivers events"
},
{
"from": "orders-next",
"to": "db",
"label": "reads and writes",
"technology": "SQL"
}
],
"views": [
{
"key": "today",
"title": "Today",
"components": [
"web",
"orders",
"legacy",
"db"
]
},
{
"key": "target",
"title": "Target",
"components": [
"web",
"orders-next",
"queue",
"billing",
"db"
]
}
],
"delta": {
"before": "today",
"after": "target"
}
}
}Focus
Show chart data
| Change | Concerns | Detail |
|---|---|---|
| + added | Event bus | |
| + added | Billing | |
| − removed | Legacy ERP | |
| ~ changed | Orders | technology: Java → Kotlin |
| → moved | Orders | from Data center to Cloud region |
| ↔ rewired | Orders → Legacy ERP | removed |
| ↔ rewired | Orders → Event bus | added |
| ↔ rewired | Event bus → Billing | added |
Outlines and boards
Why parcels arrive late
examples/delivery-delays.jsonDetail: Why parcels arrive late →{
"schemaVersion": 1,
"type": "fishbone",
"title": "Why parcels arrive late",
"source": "Illustrative review of a regional delivery service",
"width": 900,
"height": 480,
"mobile": {
"width": 380,
"height": 560
},
"fishbone": {
"effect": "Late deliveries",
"bones": [
{
"label": "People",
"causes": [
{
"label": "New drivers",
"causes": [
{
"label": "No route training"
},
{
"label": "High turnover"
}
]
},
{
"label": "Uneven shifts"
}
]
},
{
"label": "Process",
"causes": [
{
"label": "Manual sorting",
"causes": [
{
"label": "Peaks at noon"
}
]
},
{
"label": "Late dispatch"
}
]
},
{
"label": "Vehicles",
"causes": [
{
"label": "Breakdowns",
"causes": [
{
"label": "Deferred service"
}
]
},
{
"label": "Small load space"
}
]
},
{
"label": "Information",
"causes": [
{
"label": "Wrong addresses"
},
{
"label": "No live tracking",
"causes": [
{
"label": "Old scanners"
}
]
}
]
},
{
"label": "Environment",
"causes": [
{
"label": "Road works"
},
{
"label": "Winter weather"
}
]
},
{
"label": "Customers",
"causes": [
{
"label": "Nobody at home",
"causes": [
{
"label": "No time windows"
}
]
}
]
}
]
}
}Source: Illustrative review of a regional delivery service
Show chart data
| Part | Label | Belongs to |
|---|---|---|
| Effect | Late deliveries | |
| Category | People | Late deliveries |
| Cause | New drivers | People |
| Sub-cause | No route training | New drivers |
| Sub-cause | High turnover | New drivers |
| Cause | Uneven shifts | People |
| Category | Process | Late deliveries |
| Cause | Manual sorting | Process |
| Sub-cause | Peaks at noon | Manual sorting |
| Cause | Late dispatch | Process |
| Category | Vehicles | Late deliveries |
| Cause | Breakdowns | Vehicles |
| Sub-cause | Deferred service | Breakdowns |
| Cause | Small load space | Vehicles |
| Category | Information | Late deliveries |
| Cause | Wrong addresses | Information |
| Cause | No live tracking | Information |
| Sub-cause | Old scanners | No live tracking |
| Category | Environment | Late deliveries |
| Cause | Road works | Environment |
| Cause | Winter weather | Environment |
| Category | Customers | Late deliveries |
| Cause | Nobody at home | Customers |
| Sub-cause | No time windows | Nobody at home |
Sprint board
examples/sprint-board.jsonDetail: Sprint board →{
"schemaVersion": 1,
"type": "kanban",
"title": "Sprint board",
"source": "Illustrative board of a small product team",
"width": 860,
"height": 480,
"mobile": {
"width": 380,
"height": 900
},
"kanban": {
"columns": [
{
"label": "Backlog",
"cards": [
{
"title": "Export the invoice list as CSV",
"tag": "Feature"
},
{
"title": "Dark mode for the dashboard",
"tag": "Design"
},
{
"title": "Upgrade the database driver",
"owner": "Noor",
"tag": "Chore"
}
]
},
{
"label": "In progress",
"limit": 2,
"cards": [
{
"title": "Single sign-on for teams",
"owner": "Mara",
"tag": "Feature"
},
{
"title": "Fix the duplicate email on signup",
"owner": "Jonas",
"tag": "Bug",
"blocked": true
},
{
"title": "Rework the onboarding checklist",
"owner": "Ines",
"tag": "Design"
}
]
},
{
"label": "Review",
"limit": 3,
"cards": [
{
"title": "Rate limits for the public API",
"owner": "Noor",
"tag": "Feature"
},
{
"title": "Correct the VAT rounding",
"owner": "Mara",
"tag": "Bug"
}
]
},
{
"label": "Done",
"cards": [
{
"title": "Billing page copy",
"owner": "Ines",
"tag": "Design"
},
{
"title": "Rotate the signing keys",
"owner": "Jonas",
"tag": "Chore"
}
]
}
]
}
}Source: Illustrative board of a small product team
Show chart data
| Column | Cards | Card | Owner | Tag | Status |
|---|---|---|---|---|---|
| Backlog | 3 | Export the invoice list as CSV | Feature | ||
| Backlog | 3 | Dark mode for the dashboard | Design | ||
| Backlog | 3 | Upgrade the database driver | Noor | Chore | |
| In progress | 3/2 | Single sign-on for teams | Mara | Feature | |
| In progress | 3/2 | Fix the duplicate email on signup | Jonas | Bug | Blocked |
| In progress | 3/2 | Rework the onboarding checklist | Ines | Design | |
| Review | 2/3 | Rate limits for the public API | Noor | Feature | |
| Review | 2/3 | Correct the VAT rounding | Mara | Bug | |
| Done | 2 | Billing page copy | Ines | Design | |
| Done | 2 | Rotate the signing keys | Jonas | Chore |
Story map of an online shop
examples/shop-story-map.jsonDetail: Story map of an online shop →{
"schemaVersion": 1,
"type": "storymap",
"title": "Story map of an online shop",
"source": "Illustrative backlog of a small shop",
"width": 960,
"height": 560,
"mobile": {
"width": 380,
"height": 900
},
"storymap": {
"releases": [
"MVP",
"Release 2",
"Later"
],
"activities": [
{
"label": "Find a product",
"tasks": [
{
"label": "Browse the catalog",
"stories": [
{
"title": "List products by category",
"release": "MVP"
},
{
"title": "Filter by price",
"release": "Release 2"
}
]
},
{
"label": "Search",
"stories": [
{
"title": "Search by name",
"release": "MVP"
},
{
"title": "Suggest while typing",
"release": "Later"
}
]
}
]
},
{
"label": "Buy it",
"tasks": [
{
"label": "Fill the cart",
"stories": [
{
"title": "Add and remove items",
"release": "MVP"
},
{
"title": "Save the cart for later",
"release": "Release 2"
}
]
},
{
"label": "Pay",
"stories": [
{
"title": "Pay by card",
"release": "MVP"
},
{
"title": "Pay by invoice",
"release": "Release 2"
},
{
"title": "Split the payment",
"release": "Later"
}
]
}
]
},
{
"label": "Receive it",
"tasks": [
{
"label": "Follow the order",
"stories": [
{
"title": "Confirmation email",
"release": "MVP"
},
{
"title": "Tracking page",
"release": "Release 2"
}
]
},
{
"label": "Return an item",
"stories": [
{
"title": "Return label by email",
"release": "Release 2"
}
]
}
]
}
]
}
}Source: Illustrative backlog of a small shop
Show chart data
| Activity | Task | Release | Story |
|---|---|---|---|
| Find a product | Browse the catalog | MVP | List products by category |
| Find a product | Browse the catalog | Release 2 | Filter by price |
| Find a product | Search | MVP | Search by name |
| Find a product | Search | Later | Suggest while typing |
| Buy it | Fill the cart | MVP | Add and remove items |
| Buy it | Fill the cart | Release 2 | Save the cart for later |
| Buy it | Pay | MVP | Pay by card |
| Buy it | Pay | Release 2 | Pay by invoice |
| Buy it | Pay | Later | Split the payment |
| Receive it | Follow the order | MVP | Confirmation email |
| Receive it | Follow the order | Release 2 | Tracking page |
| Receive it | Return an item | Release 2 | Return label by email |
A customer asks for help
examples/customer-support-journey.jsonDetail: A customer asks for help →{
"schemaVersion": 1,
"type": "journey",
"title": "A customer asks for help",
"source": "Illustrative journey of a software subscriber",
"width": 900,
"height": 520,
"mobile": {
"width": 380,
"height": 1260
},
"journey": {
"stages": [
{
"label": "Notice the problem",
"action": "Cannot export a report, tries twice",
"touchpoint": "Product",
"thought": "Did I do something wrong?",
"sentiment": -1
},
{
"label": "Look for an answer",
"action": "Searches the help center and the community forum",
"touchpoint": "Help center, forum",
"thought": "These articles are about the old version",
"sentiment": -2
},
{
"label": "Contact support",
"action": "Opens a chat and describes the export error",
"touchpoint": "Chat widget",
"thought": "At least someone answers quickly",
"sentiment": 0
},
{
"label": "Get it solved",
"action": "Follows the steps the agent sends",
"touchpoint": "Chat, email",
"thought": "That was simple once I knew it",
"sentiment": 1
},
{
"label": "Follow up",
"action": "Answers the satisfaction survey",
"touchpoint": "Email",
"thought": "I will recommend the support at least",
"sentiment": 2
}
]
}
}Source: Illustrative journey of a software subscriber
Show chart data
| Stage | Actions | Touchpoints | Thoughts | Sentiment |
|---|---|---|---|---|
| Notice the problem | Cannot export a report, tries twice | Product | Did I do something wrong? | -1 |
| Look for an answer | Searches the help center and the community forum | Help center, forum | These articles are about the old version | -2 |
| Contact support | Opens a chat and describes the export error | Chat widget | At least someone answers quickly | 0 |
| Get it solved | Follows the steps the agent sends | Chat, email | That was simple once I knew it | +1 |
| Follow up | Answers the satisfaction survey | I will recommend the support at least | +2 |
Service blueprint of a support request
examples/support-blueprint.jsonDetail: Service blueprint of a support request →{
"schemaVersion": 1,
"type": "journey",
"title": "Service blueprint of a support request",
"source": "Illustrative blueprint of a software subscription's support",
"width": 960,
"height": 640,
"mobile": {
"width": 380,
"height": 1300
},
"journey": {
"display": "blueprint",
"stages": [
{
"label": "Ask",
"action": "Opens a chat and describes the problem",
"touchpoint": "Chat widget",
"sentiment": -1,
"frontstage": "Greets the customer and asks for the account",
"backstage": "Routes the chat by product and language",
"support": "Chat platform, customer database"
},
{
"label": "Solve",
"action": "Follows the steps",
"touchpoint": "Chat, email",
"sentiment": 1,
"frontstage": "Sends the steps and checks that they worked",
"backstage": "Files a bug when the cause is the product",
"support": "Knowledge base, issue tracker"
},
{
"label": "Close",
"action": "Rates the conversation",
"touchpoint": "Email survey",
"sentiment": 2,
"frontstage": "Thanks the customer and closes the chat",
"backstage": "Tags the conversation, updates the article",
"support": "Survey tool, knowledge base"
}
]
}
}Source: Illustrative blueprint of a software subscription's support
Show chart data
| Stage | Actions | Touchpoints | Sentiment | Frontstage | Backstage | Support |
|---|---|---|---|---|---|---|
| Ask | Opens a chat and describes the problem | Chat widget | -1 | Greets the customer and asks for the account | Routes the chat by product and language | Chat platform, customer database |
| Solve | Follows the steps | Chat, email | +1 | Sends the steps and checks that they worked | Files a bug when the cause is the product | Knowledge base, issue tracker |
| Close | Rates the conversation | Email survey | +2 | Thanks the customer and closes the chat | Tags the conversation, updates the article | Survey tool, knowledge base |
Value chain of an online coffee shop
examples/coffee-shop-chain.jsonDetail: Value chain of an online coffee shop →{
"schemaVersion": 1,
"type": "valuemap",
"title": "Value chain of an online coffee shop",
"source": "Illustrative map of a small online retailer",
"width": 900,
"height": 560,
"mobile": {
"width": 380,
"height": 640
},
"valuemap": {
"components": [
{
"id": "customer",
"label": "Coffee at home",
"visibility": 0.97,
"evolution": 0.62
},
{
"id": "shop",
"label": "Web shop",
"visibility": 0.84,
"evolution": 0.55
},
{
"id": "subscription",
"label": "Subscription",
"visibility": 0.76,
"evolution": 0.3,
"movesTo": {
"evolution": 0.55
}
},
{
"id": "payment",
"label": "Payment",
"visibility": 0.62,
"evolution": 0.88
},
{
"id": "roasting",
"label": "Roasting",
"visibility": 0.5,
"evolution": 0.35,
"inertia": true
},
{
"id": "shipping",
"label": "Shipping",
"visibility": 0.44,
"evolution": 0.78
},
{
"id": "recommendation",
"label": "Taste matching",
"visibility": 0.58,
"evolution": 0.12,
"movesTo": {
"evolution": 0.34
}
},
{
"id": "beans",
"label": "Green beans",
"visibility": 0.28,
"evolution": 0.8
},
{
"id": "hosting",
"label": "Hosting",
"visibility": 0.16,
"evolution": 0.93
}
],
"dependencies": [
{
"from": "customer",
"to": "shop"
},
{
"from": "shop",
"to": "subscription"
},
{
"from": "shop",
"to": "payment"
},
{
"from": "shop",
"to": "recommendation"
},
{
"from": "subscription",
"to": "roasting"
},
{
"from": "subscription",
"to": "shipping"
},
{
"from": "roasting",
"to": "beans"
},
{
"from": "shop",
"to": "hosting"
},
{
"from": "recommendation",
"to": "hosting"
}
]
}
}Source: Illustrative map of a small online retailer
Show chart data
| Component | Visibility | Evolution | Stage | Moves to | Inertia | Needs |
|---|---|---|---|---|---|---|
| Coffee at home | 97% | 62% | Product | Web shop | ||
| Web shop | 84% | 55% | Product | Subscription, Payment, Taste matching, Hosting | ||
| Subscription | 76% | 30% | Custom | 55% | Roasting, Shipping | |
| Payment | 62% | 88% | Commodity | |||
| Taste matching | 58% | 12% | Genesis | 34% | Hosting | |
| Roasting | 50% | 35% | Custom | yes | Green beans | |
| Shipping | 44% | 78% | Commodity | |||
| Green beans | 28% | 80% | Commodity | |||
| Hosting | 16% | 93% | Commodity |
Where the team's skills overlap
examples/team-skills.jsonDetail: Where the team's skills overlap →{
"schemaVersion": 1,
"type": "venn",
"title": "Where the team's skills overlap",
"source": "Illustrative skills survey of a product team of 24",
"width": 760,
"height": 520,
"mobile": {
"width": 380,
"height": 560
},
"venn": {
"sets": [
"Design",
"Engineering",
"Research"
],
"regions": [
{
"sets": [
"Design"
],
"label": "Visual design only",
"count": 3
},
{
"sets": [
"Engineering"
],
"label": "Engineering only",
"count": 9
},
{
"sets": [
"Research"
],
"label": "Research only",
"count": 2
},
{
"sets": [
"Design",
"Engineering"
],
"label": "Prototyping",
"count": 4
},
{
"sets": [
"Design",
"Research"
],
"label": "Usability testing",
"count": 2
},
{
"sets": [
"Engineering",
"Research"
],
"label": "Analytics",
"count": 3
},
{
"sets": [
"Design",
"Engineering",
"Research"
],
"label": "Product discovery",
"count": 1
}
]
}
}Source: Illustrative skills survey of a product team of 24
Show chart data
| Region | Label | Count |
|---|---|---|
| only Design | Visual design only | 3 |
| only Engineering | Engineering only | 9 |
| only Research | Research only | 2 |
| Design and Engineering | Prototyping | 4 |
| Design and Research | Usability testing | 2 |
| Engineering and Research | Analytics | 3 |
| Design, Engineering and Research | Product discovery | 1 |
Mobile variant
Monthly revenue by sales channel
examples/mobile-revenue.jsonDetail: Monthly revenue by sales channel →{
"schemaVersion": 1,
"type": "time",
"title": "Monthly revenue by sales channel",
"description": "Direct sales led every month and grew from 420 to 560 thousand over eighteen months; partner and marketplace revenue rose more slowly, each with a peak in December.",
"source": "Illustrative values, chartlet",
"showValues": false,
"timeAxis": {
"timezone": "UTC",
"title": "Month"
},
"panes": [
{
"valueAxis": {
"title": "Revenue in thousands"
},
"layers": [
{
"mark": "line",
"name": "Direct sales",
"points": [
{
"time": "2025-01-01",
"value": 420
},
{
"time": "2025-02-01",
"value": 432
},
{
"time": "2025-03-01",
"value": 445
},
{
"time": "2025-04-01",
"value": 451
},
{
"time": "2025-05-01",
"value": 468
},
{
"time": "2025-06-01",
"value": 474
},
{
"time": "2025-07-01",
"value": 490
},
{
"time": "2025-08-01",
"value": 482
},
{
"time": "2025-09-01",
"value": 505
},
{
"time": "2025-10-01",
"value": 512
},
{
"time": "2025-11-01",
"value": 530
},
{
"time": "2025-12-01",
"value": 561
},
{
"time": "2026-01-01",
"value": 498
},
{
"time": "2026-02-01",
"value": 506
},
{
"time": "2026-03-01",
"value": 522
},
{
"time": "2026-04-01",
"value": 531
},
{
"time": "2026-05-01",
"value": 544
},
{
"time": "2026-06-01",
"value": 560
}
]
},
{
"mark": "line",
"name": "Partner network",
"points": [
{
"time": "2025-01-01",
"value": 180
},
{
"time": "2025-02-01",
"value": 186
},
{
"time": "2025-03-01",
"value": 205
},
{
"time": "2025-04-01",
"value": 199
},
{
"time": "2025-05-01",
"value": 198
},
{
"time": "2025-06-01",
"value": 214
},
{
"time": "2025-07-01",
"value": 224
},
{
"time": "2025-08-01",
"value": 219
},
{
"time": "2025-09-01",
"value": 236
},
{
"time": "2025-10-01",
"value": 232
},
{
"time": "2025-11-01",
"value": 241
},
{
"time": "2025-12-01",
"value": 268
},
{
"time": "2026-01-01",
"value": 226
},
{
"time": "2026-02-01",
"value": 231
},
{
"time": "2026-03-01",
"value": 244
},
{
"time": "2026-04-01",
"value": 250
},
{
"time": "2026-05-01",
"value": 255
},
{
"time": "2026-06-01",
"value": 262
}
]
},
{
"mark": "line",
"name": "Marketplace",
"points": [
{
"time": "2025-01-01",
"value": 96
},
{
"time": "2025-02-01",
"value": 91
},
{
"time": "2025-03-01",
"value": 88
},
{
"time": "2025-04-01",
"value": 104
},
{
"time": "2025-05-01",
"value": 121
},
{
"time": "2025-06-01",
"value": 118
},
{
"time": "2025-07-01",
"value": 132
},
{
"time": "2025-08-01",
"value": 127
},
{
"time": "2025-09-01",
"value": 140
},
{
"time": "2025-10-01",
"value": 146
},
{
"time": "2025-11-01",
"value": 158
},
{
"time": "2025-12-01",
"value": 189
},
{
"time": "2026-01-01",
"value": 149
},
{
"time": "2026-02-01",
"value": 152
},
{
"time": "2026-03-01",
"value": 160
},
{
"time": "2026-04-01",
"value": 166
},
{
"time": "2026-05-01",
"value": 171
},
{
"time": "2026-06-01",
"value": 178
}
]
}
]
}
],
"mobile": {
"width": 360,
"height": 420,
"breakpoint": 640
}
}Source: Illustrative values, chartlet
Show chart data
| Time | Direct sales | Partner network | Marketplace |
|---|---|---|---|
| 2025-01 | 420 | 180 | 96 |
| 2025-02 | 432 | 186 | 91 |
| 2025-03 | 445 | 205 | 88 |
| 2025-04 | 451 | 199 | 104 |
| 2025-05 | 468 | 198 | 121 |
| 2025-06 | 474 | 214 | 118 |
| 2025-07 | 490 | 224 | 132 |
| 2025-08 | 482 | 219 | 127 |
| 2025-09 | 505 | 236 | 140 |
| 2025-10 | 512 | 232 | 146 |
| 2025-11 | 530 | 241 | 158 |
| 2025-12 | 561 | 268 | 189 |
| 2026-01 | 498 | 226 | 149 |
| 2026-02 | 506 | 231 | 152 |
| 2026-03 | 522 | 244 | 160 |
| 2026-04 | 531 | 250 | 166 |
| 2026-05 | 544 | 255 | 171 |
| 2026-06 | 560 | 262 | 178 |
Recipes
Revenue by region and quarter
examples/recipes/report-from-csv/spec.jsonDetail: Revenue by region and quarter →{
"schemaVersion": 1,
"type": "bar",
"title": "Revenue by region and quarter",
"source": "Sample data for this recipe, not real measurements",
"width": 800,
"height": 450,
"categoryAxis": {
"title": "Quarter"
},
"valueAxis": {
"title": "Revenue in thousands",
"thousandsSeparator": true
},
"categories": [
"Q1",
"Q2",
"Q3",
"Q4"
],
"series": [
{
"name": "North",
"values": [
120,
135,
142,
150
]
},
{
"name": "South",
"values": [
98,
104,
null,
121
]
},
{
"name": "West",
"values": [
76,
81,
90,
97
]
}
],
"showValues": false,
"mobile": {
"width": 360
}
}Source: Sample data for this recipe, not real measurements
Show chart data
| Category | North | South | West |
|---|---|---|---|
| Q1 | 120 | 98 | 76 |
| Q2 | 135 | 104 | 81 |
| Q3 | 142 | Missing | 90 |
| Q4 | 150 | 121 | 97 |
How a cached page is served
examples/recipes/blog-explanation/spec.jsonDetail: How a cached page is served →{
"schemaVersion": 1,
"type": "flow",
"title": "How a cached page is served",
"source": "Illustration for this recipe",
"description": "A request is answered from the cache when the page is there and still fresh; otherwise the server renders it, stores it and answers.",
"width": 1200,
"height": 420,
"flow": {
"nodes": [
{
"id": "request",
"label": "Request arrives",
"kind": "start"
},
{
"id": "lookup",
"label": "In the cache?",
"kind": "decision"
},
{
"id": "fresh",
"label": "Still fresh?",
"kind": "decision"
},
{
"id": "render",
"label": "Render the page"
},
{
"id": "store",
"label": "Store it",
"kind": "store"
},
{
"id": "answer",
"label": "Send the answer",
"kind": "end"
}
],
"edges": [
{
"from": "request",
"to": "lookup"
},
{
"from": "lookup",
"to": "fresh",
"label": "yes"
},
{
"from": "lookup",
"to": "render",
"label": "no"
},
{
"from": "fresh",
"to": "answer",
"label": "yes"
},
{
"from": "fresh",
"to": "render",
"label": "no"
},
{
"from": "render",
"to": "store"
},
{
"from": "store",
"to": "answer"
}
]
},
"mobile": {
"width": 360,
"height": 660
}
}Focus
Source: Illustration for this recipe
Show chart data
| Step | Kind | Leads to |
|---|---|---|
| Request arrives | start | In the cache? |
| In the cache? | decision | Still fresh? (yes), Render the page (no) |
| Still fresh? | decision | Send the answer (yes), Render the page (no) |
| Render the page | step | Store it |
| Store it | data store | Send the answer |
| Send the answer | end |
Booking service
examples/recipes/architecture-views/spec.jsonDetail: Booking service →{
"schemaVersion": 1,
"type": "architecture",
"title": "Booking service",
"source": "Illustrative model for this recipe",
"width": 1200,
"height": 480,
"architecture": {
"boundaries": [
{
"id": "system",
"label": "Booking system"
}
],
"components": [
{
"id": "guest",
"label": "Guest",
"kind": "person"
},
{
"id": "web",
"label": "Booking site",
"sublabel": "browser",
"kind": "frontend",
"in": "system"
},
{
"id": "api",
"label": "Booking API",
"sublabel": "Node.js",
"in": "system"
},
{
"id": "db",
"label": "Reservations",
"sublabel": "Postgres",
"kind": "database",
"in": "system"
},
{
"id": "mail",
"label": "Mail service",
"sublabel": "SMTP provider",
"kind": "external"
}
],
"connections": [
{
"id": "visit",
"from": "guest",
"to": "web",
"label": "books a room"
},
{
"id": "call",
"from": "web",
"to": "api",
"label": "calls",
"technology": "HTTPS/JSON"
},
{
"id": "save",
"from": "api",
"to": "db",
"label": "stores",
"technology": "SQL/TLS"
},
{
"id": "confirm",
"from": "api",
"to": "mail",
"label": "sends confirmation",
"technology": "SMTP"
}
],
"views": [
{
"key": "context",
"title": "Booking service: context",
"components": [
"guest",
"api",
"mail"
]
},
{
"key": "booking",
"title": "Booking service: one booking",
"steps": [
{
"connection": "visit",
"label": "chooses dates"
},
{
"connection": "call",
"label": "submits"
},
{
"connection": "save",
"label": "reserves"
},
{
"connection": "confirm"
}
]
}
]
}
}Focus
Source: Illustrative model for this recipe
Show chart data
| Component | Kind | Boundary | Connects to |
|---|---|---|---|
| Guest | person | ||
| Booking API | service | Booking system | Mail service (sends confirmation, via SMTP) |
| Mail service | external system |
From tag to published release
examples/recipes/release-flow/spec.jsonDetail: From tag to published release →{
"schemaVersion": 1,
"type": "flow",
"title": "From tag to published release",
"source": "Illustrative process for this recipe",
"width": 1000,
"height": 700,
"flow": {
"lanes": [
{
"id": "dev",
"label": "Maintainer"
},
{
"id": "ci",
"label": "Pipeline"
}
],
"nodes": [
{
"id": "tag",
"label": "Push version tag",
"kind": "start",
"lane": "dev"
},
{
"id": "build",
"label": "Build artifacts",
"lane": "ci"
},
{
"id": "sums",
"label": "Write checksums",
"lane": "ci"
},
{
"id": "ok",
"label": "Checks pass?",
"kind": "decision",
"lane": "ci"
},
{
"id": "fix",
"label": "Fix and retag",
"lane": "dev"
},
{
"id": "publish",
"label": "Publish release",
"kind": "end",
"lane": "ci"
}
],
"edges": [
{
"from": "tag",
"to": "build"
},
{
"from": "build",
"to": "sums"
},
{
"from": "sums",
"to": "ok"
},
{
"from": "ok",
"to": "publish",
"label": "yes"
},
{
"from": "ok",
"to": "fix",
"label": "no"
},
{
"from": "fix",
"to": "tag"
}
]
},
"mobile": {
"width": 364,
"height": 760
}
}Focus
Source: Illustrative process for this recipe
Show chart data
| Step | Kind | Lane | Leads to |
|---|---|---|---|
| Push version tag | start | Maintainer | Build artifacts |
| Build artifacts | step | Pipeline | Write checksums |
| Write checksums | step | Pipeline | Checks pass? |
| Checks pass? | decision | Pipeline | Publish release (yes), Fix and retag (no) |
| Fix and retag | step | Maintainer | Push version tag |
| Publish release | end | Pipeline |
Support tickets per month
examples/recipes/slide-figure/spec.jsonDetail: Support tickets per month →{
"schemaVersion": 1,
"type": "bar",
"title": "Support tickets per month",
"source": "Sample data for this recipe, not real measurements",
"size": "slide-16x9",
"categoryAxis": {
"title": "Month"
},
"valueAxis": {
"title": "Tickets"
},
"categories": [
"Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun"
],
"series": [
{
"name": "Tickets",
"values": [
310,
290,
340,
275,
250,
238
]
}
]
}Source: Sample data for this recipe, not real measurements
Show chart data
| Category | Tickets |
|---|---|
| Jan | 310 |
| Feb | 290 |
| Mar | 340 |
| Apr | 275 |
| May | 250 |
| Jun | 238 |
QR codes
QR code for a link
examples/qr/link.svgDetail: QR code for a link →use chartlet::qr::{ErrorCorrection, QrCode};
let code = QrCode::encode("https://casoon.github.io/chartlet/", ErrorCorrection::Medium)?;
let svg = code.to_svg("Link to the chartlet documentation", 4);