mirror of
https://github.com/olehomelchenko/dataviz-portfolio.git
synced 2026-09-24 20:51:46 +00:00
2325 lines
47 KiB
JSON
2325 lines
47 KiB
JSON
{
|
||
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
|
||
"description": "Candidates per vacancy (weekly ratio line) over dimmed monthly magnitude bars. Bars use a hidden 0-265k count scale (two-width overlap, bullet style); the ratio axis is the only visible axis. Data comes from the named source 'labor_market_weekly' (fields: week, candidates, vacancies) - rebind it at runtime or serve labor-market-weekly.json next to this file.",
|
||
"width": "container",
|
||
"height": 430,
|
||
"background": "#fcfcfb",
|
||
"padding": {
|
||
"left": 5,
|
||
"top": 5,
|
||
"right": 46,
|
||
"bottom": 5
|
||
},
|
||
"config": {
|
||
"font": "system-ui, -apple-system, 'Segoe UI', sans-serif",
|
||
"axis": {
|
||
"labelColor": "#898781",
|
||
"titleColor": "#52514e",
|
||
"gridColor": "#e1e0d9",
|
||
"gridWidth": 1,
|
||
"domainColor": "#c3c2b7",
|
||
"tickColor": "#c3c2b7",
|
||
"labelFontSize": 11,
|
||
"titleFontSize": 11.5,
|
||
"titleFontWeight": 500,
|
||
"titlePadding": 8
|
||
},
|
||
"legend": {
|
||
"labelColor": "#52514e",
|
||
"labelFontSize": 12,
|
||
"titleColor": "#52514e"
|
||
},
|
||
"line": {
|
||
"strokeWidth": 2,
|
||
"strokeCap": "round",
|
||
"strokeJoin": "round"
|
||
},
|
||
"view": {
|
||
"stroke": null
|
||
}
|
||
},
|
||
"data": {
|
||
"name": "labor_market_weekly",
|
||
"values": [
|
||
{
|
||
"week": "2020-03-23",
|
||
"candidates": 18321,
|
||
"vacancies": 4927
|
||
},
|
||
{
|
||
"week": "2020-03-30",
|
||
"candidates": 18936,
|
||
"vacancies": 4216
|
||
},
|
||
{
|
||
"week": "2020-04-06",
|
||
"candidates": 18705,
|
||
"vacancies": 4570
|
||
},
|
||
{
|
||
"week": "2020-04-13",
|
||
"candidates": 19150,
|
||
"vacancies": 4920
|
||
},
|
||
{
|
||
"week": "2020-04-20",
|
||
"candidates": 19574,
|
||
"vacancies": 5125
|
||
},
|
||
{
|
||
"week": "2020-04-27",
|
||
"candidates": 19880,
|
||
"vacancies": 5183
|
||
},
|
||
{
|
||
"week": "2020-05-04",
|
||
"candidates": 20230,
|
||
"vacancies": 5286
|
||
},
|
||
{
|
||
"week": "2020-05-11",
|
||
"candidates": 20462,
|
||
"vacancies": 5115
|
||
},
|
||
{
|
||
"week": "2020-05-18",
|
||
"candidates": 20822,
|
||
"vacancies": 5432
|
||
},
|
||
{
|
||
"week": "2020-05-25",
|
||
"candidates": 21131,
|
||
"vacancies": 5615
|
||
},
|
||
{
|
||
"week": "2020-06-01",
|
||
"candidates": 21269,
|
||
"vacancies": 5823
|
||
},
|
||
{
|
||
"week": "2020-06-08",
|
||
"candidates": 21384,
|
||
"vacancies": 6084
|
||
},
|
||
{
|
||
"week": "2020-06-15",
|
||
"candidates": 20960,
|
||
"vacancies": 6318
|
||
},
|
||
{
|
||
"week": "2020-06-22",
|
||
"candidates": 21284,
|
||
"vacancies": 6454
|
||
},
|
||
{
|
||
"week": "2020-06-29",
|
||
"candidates": 21442,
|
||
"vacancies": 6540
|
||
},
|
||
{
|
||
"week": "2020-07-06",
|
||
"candidates": 21745,
|
||
"vacancies": 7019
|
||
},
|
||
{
|
||
"week": "2020-07-13",
|
||
"candidates": 21591,
|
||
"vacancies": 7046
|
||
},
|
||
{
|
||
"week": "2020-07-20",
|
||
"candidates": 21547,
|
||
"vacancies": 7284
|
||
},
|
||
{
|
||
"week": "2020-07-27",
|
||
"candidates": 21411,
|
||
"vacancies": 7514
|
||
},
|
||
{
|
||
"week": "2020-08-03",
|
||
"candidates": 21334,
|
||
"vacancies": 7458
|
||
},
|
||
{
|
||
"week": "2020-08-10",
|
||
"candidates": 21163,
|
||
"vacancies": 7676
|
||
},
|
||
{
|
||
"week": "2020-08-17",
|
||
"candidates": 20927,
|
||
"vacancies": 7879
|
||
},
|
||
{
|
||
"week": "2020-08-24",
|
||
"candidates": 20969,
|
||
"vacancies": 8012
|
||
},
|
||
{
|
||
"week": "2020-08-31",
|
||
"candidates": 20287,
|
||
"vacancies": 8569
|
||
},
|
||
{
|
||
"week": "2020-09-07",
|
||
"candidates": 20154,
|
||
"vacancies": 9989
|
||
},
|
||
{
|
||
"week": "2020-09-14",
|
||
"candidates": 20204,
|
||
"vacancies": 9543
|
||
},
|
||
{
|
||
"week": "2020-09-21",
|
||
"candidates": 20075,
|
||
"vacancies": 10058
|
||
},
|
||
{
|
||
"week": "2020-09-28",
|
||
"candidates": 20124,
|
||
"vacancies": 10135
|
||
},
|
||
{
|
||
"week": "2020-10-05",
|
||
"candidates": 19927,
|
||
"vacancies": 10778
|
||
},
|
||
{
|
||
"week": "2020-10-12",
|
||
"candidates": 19549,
|
||
"vacancies": 10726
|
||
},
|
||
{
|
||
"week": "2020-10-19",
|
||
"candidates": 19296,
|
||
"vacancies": 11426
|
||
},
|
||
{
|
||
"week": "2020-10-26",
|
||
"candidates": 19142,
|
||
"vacancies": 12008
|
||
},
|
||
{
|
||
"week": "2020-11-02",
|
||
"candidates": 18905,
|
||
"vacancies": 12300
|
||
},
|
||
{
|
||
"week": "2020-11-09",
|
||
"candidates": 18518,
|
||
"vacancies": 13124
|
||
},
|
||
{
|
||
"week": "2020-11-16",
|
||
"candidates": 18248,
|
||
"vacancies": 13225
|
||
},
|
||
{
|
||
"week": "2020-11-23",
|
||
"candidates": 18170,
|
||
"vacancies": 13413
|
||
},
|
||
{
|
||
"week": "2020-11-30",
|
||
"candidates": 17800,
|
||
"vacancies": 14061
|
||
},
|
||
{
|
||
"week": "2020-12-07",
|
||
"candidates": 17393,
|
||
"vacancies": 13939
|
||
},
|
||
{
|
||
"week": "2020-12-14",
|
||
"candidates": 16901,
|
||
"vacancies": 14221
|
||
},
|
||
{
|
||
"week": "2020-12-21",
|
||
"candidates": 16375,
|
||
"vacancies": 13573
|
||
},
|
||
{
|
||
"week": "2020-12-28",
|
||
"candidates": 15702,
|
||
"vacancies": 12037
|
||
},
|
||
{
|
||
"week": "2021-01-04",
|
||
"candidates": 16357,
|
||
"vacancies": 11888
|
||
},
|
||
{
|
||
"week": "2021-01-11",
|
||
"candidates": 16971,
|
||
"vacancies": 14127
|
||
},
|
||
{
|
||
"week": "2021-01-18",
|
||
"candidates": 16944,
|
||
"vacancies": 15651
|
||
},
|
||
{
|
||
"week": "2021-01-25",
|
||
"candidates": 16905,
|
||
"vacancies": 17219
|
||
},
|
||
{
|
||
"week": "2021-02-01",
|
||
"candidates": 17022,
|
||
"vacancies": 18082
|
||
},
|
||
{
|
||
"week": "2021-02-08",
|
||
"candidates": 16804,
|
||
"vacancies": 17414
|
||
},
|
||
{
|
||
"week": "2021-02-15",
|
||
"candidates": 16699,
|
||
"vacancies": 17930
|
||
},
|
||
{
|
||
"week": "2021-02-22",
|
||
"candidates": 16673,
|
||
"vacancies": 18450
|
||
},
|
||
{
|
||
"week": "2021-03-01",
|
||
"candidates": 16775,
|
||
"vacancies": 18923
|
||
},
|
||
{
|
||
"week": "2021-03-08",
|
||
"candidates": 16825,
|
||
"vacancies": 18875
|
||
},
|
||
{
|
||
"week": "2021-03-15",
|
||
"candidates": 16885,
|
||
"vacancies": 19080
|
||
},
|
||
{
|
||
"week": "2021-03-22",
|
||
"candidates": 16567,
|
||
"vacancies": 19506
|
||
},
|
||
{
|
||
"week": "2021-03-29",
|
||
"candidates": 16223,
|
||
"vacancies": 19997
|
||
},
|
||
{
|
||
"week": "2021-04-05",
|
||
"candidates": 16246,
|
||
"vacancies": 20362
|
||
},
|
||
{
|
||
"week": "2021-04-12",
|
||
"candidates": 16122,
|
||
"vacancies": 20432
|
||
},
|
||
{
|
||
"week": "2021-04-19",
|
||
"candidates": 15942,
|
||
"vacancies": 20416
|
||
},
|
||
{
|
||
"week": "2021-04-26",
|
||
"candidates": 15497,
|
||
"vacancies": 20627
|
||
},
|
||
{
|
||
"week": "2021-05-03",
|
||
"candidates": 14889,
|
||
"vacancies": 19656
|
||
},
|
||
{
|
||
"week": "2021-05-10",
|
||
"candidates": 15151,
|
||
"vacancies": 20128
|
||
},
|
||
{
|
||
"week": "2021-05-17",
|
||
"candidates": 16148,
|
||
"vacancies": 21201
|
||
},
|
||
{
|
||
"week": "2021-05-24",
|
||
"candidates": 16193,
|
||
"vacancies": 21607
|
||
},
|
||
{
|
||
"week": "2021-05-31",
|
||
"candidates": 16156,
|
||
"vacancies": 22631
|
||
},
|
||
{
|
||
"week": "2021-06-07",
|
||
"candidates": 15451,
|
||
"vacancies": 22309
|
||
},
|
||
{
|
||
"week": "2021-06-14",
|
||
"candidates": 15428,
|
||
"vacancies": 22282
|
||
},
|
||
{
|
||
"week": "2021-06-21",
|
||
"candidates": 15412,
|
||
"vacancies": 21494
|
||
},
|
||
{
|
||
"week": "2021-06-28",
|
||
"candidates": 15695,
|
||
"vacancies": 21985
|
||
},
|
||
{
|
||
"week": "2021-07-05",
|
||
"candidates": 16249,
|
||
"vacancies": 22585
|
||
},
|
||
{
|
||
"week": "2021-07-12",
|
||
"candidates": 16194,
|
||
"vacancies": 22658
|
||
},
|
||
{
|
||
"week": "2021-07-19",
|
||
"candidates": 16308,
|
||
"vacancies": 23064
|
||
},
|
||
{
|
||
"week": "2021-07-26",
|
||
"candidates": 16498,
|
||
"vacancies": 23514
|
||
},
|
||
{
|
||
"week": "2021-08-02",
|
||
"candidates": 16624,
|
||
"vacancies": 23782
|
||
},
|
||
{
|
||
"week": "2021-08-09",
|
||
"candidates": 16849,
|
||
"vacancies": 23946
|
||
},
|
||
{
|
||
"week": "2021-08-16",
|
||
"candidates": 17889,
|
||
"vacancies": 24445
|
||
},
|
||
{
|
||
"week": "2021-08-23",
|
||
"candidates": 20236,
|
||
"vacancies": 24039
|
||
},
|
||
{
|
||
"week": "2021-08-30",
|
||
"candidates": 21681,
|
||
"vacancies": 24118
|
||
},
|
||
{
|
||
"week": "2021-09-06",
|
||
"candidates": 23552,
|
||
"vacancies": 24361
|
||
},
|
||
{
|
||
"week": "2021-09-13",
|
||
"candidates": 24580,
|
||
"vacancies": 24421
|
||
},
|
||
{
|
||
"week": "2021-09-20",
|
||
"candidates": 25674,
|
||
"vacancies": 25083
|
||
},
|
||
{
|
||
"week": "2021-09-27",
|
||
"candidates": 26343,
|
||
"vacancies": 25163
|
||
},
|
||
{
|
||
"week": "2021-10-04",
|
||
"candidates": 27086,
|
||
"vacancies": 25324
|
||
},
|
||
{
|
||
"week": "2021-10-11",
|
||
"candidates": 27343,
|
||
"vacancies": 24537
|
||
},
|
||
{
|
||
"week": "2021-10-18",
|
||
"candidates": 28320,
|
||
"vacancies": 25634
|
||
},
|
||
{
|
||
"week": "2021-10-25",
|
||
"candidates": 28628,
|
||
"vacancies": 25825
|
||
},
|
||
{
|
||
"week": "2021-11-01",
|
||
"candidates": 29271,
|
||
"vacancies": 26318
|
||
},
|
||
{
|
||
"week": "2021-11-08",
|
||
"candidates": 29852,
|
||
"vacancies": 27431
|
||
},
|
||
{
|
||
"week": "2021-11-15",
|
||
"candidates": 30343,
|
||
"vacancies": 26802
|
||
},
|
||
{
|
||
"week": "2021-11-22",
|
||
"candidates": 30461,
|
||
"vacancies": 26745
|
||
},
|
||
{
|
||
"week": "2021-11-29",
|
||
"candidates": 30839,
|
||
"vacancies": 26571
|
||
},
|
||
{
|
||
"week": "2021-12-06",
|
||
"candidates": 31216,
|
||
"vacancies": 26701
|
||
},
|
||
{
|
||
"week": "2021-12-13",
|
||
"candidates": 31331,
|
||
"vacancies": 26377
|
||
},
|
||
{
|
||
"week": "2021-12-20",
|
||
"candidates": 31279,
|
||
"vacancies": 25244
|
||
},
|
||
{
|
||
"week": "2021-12-27",
|
||
"candidates": 30962,
|
||
"vacancies": 22121
|
||
},
|
||
{
|
||
"week": "2022-01-03",
|
||
"candidates": 31931,
|
||
"vacancies": 20319
|
||
},
|
||
{
|
||
"week": "2022-01-10",
|
||
"candidates": 33143,
|
||
"vacancies": 23622
|
||
},
|
||
{
|
||
"week": "2022-01-17",
|
||
"candidates": 34226,
|
||
"vacancies": 25758
|
||
},
|
||
{
|
||
"week": "2022-01-24",
|
||
"candidates": 35036,
|
||
"vacancies": 28009
|
||
},
|
||
{
|
||
"week": "2022-01-31",
|
||
"candidates": 35917,
|
||
"vacancies": 28965
|
||
},
|
||
{
|
||
"week": "2022-02-07",
|
||
"candidates": 36750,
|
||
"vacancies": 27448
|
||
},
|
||
{
|
||
"week": "2022-02-14",
|
||
"candidates": 36984,
|
||
"vacancies": 27009
|
||
},
|
||
{
|
||
"week": "2022-02-21",
|
||
"candidates": 36567,
|
||
"vacancies": 24824
|
||
},
|
||
{
|
||
"week": "2022-02-28",
|
||
"candidates": 33898,
|
||
"vacancies": 19653
|
||
},
|
||
{
|
||
"week": "2022-03-07",
|
||
"candidates": 36069,
|
||
"vacancies": 15596
|
||
},
|
||
{
|
||
"week": "2022-03-14",
|
||
"candidates": 37879,
|
||
"vacancies": 10408
|
||
},
|
||
{
|
||
"week": "2022-03-21",
|
||
"candidates": 39458,
|
||
"vacancies": 13950
|
||
},
|
||
{
|
||
"week": "2022-03-28",
|
||
"candidates": 40871,
|
||
"vacancies": 15442
|
||
},
|
||
{
|
||
"week": "2022-04-04",
|
||
"candidates": 42007,
|
||
"vacancies": 15910
|
||
},
|
||
{
|
||
"week": "2022-04-11",
|
||
"candidates": 42881,
|
||
"vacancies": 14670
|
||
},
|
||
{
|
||
"week": "2022-04-18",
|
||
"candidates": 43676,
|
||
"vacancies": 14934
|
||
},
|
||
{
|
||
"week": "2022-04-25",
|
||
"candidates": 44448,
|
||
"vacancies": 15054
|
||
},
|
||
{
|
||
"week": "2022-05-02",
|
||
"candidates": 45370,
|
||
"vacancies": 15411
|
||
},
|
||
{
|
||
"week": "2022-05-09",
|
||
"candidates": 46237,
|
||
"vacancies": 15574
|
||
},
|
||
{
|
||
"week": "2022-05-16",
|
||
"candidates": 47388,
|
||
"vacancies": 15289
|
||
},
|
||
{
|
||
"week": "2022-05-23",
|
||
"candidates": 47848,
|
||
"vacancies": 15319
|
||
},
|
||
{
|
||
"week": "2022-05-30",
|
||
"candidates": 49400,
|
||
"vacancies": 15342
|
||
},
|
||
{
|
||
"week": "2022-06-06",
|
||
"candidates": 50276,
|
||
"vacancies": 15160
|
||
},
|
||
{
|
||
"week": "2022-06-13",
|
||
"candidates": 51203,
|
||
"vacancies": 14726
|
||
},
|
||
{
|
||
"week": "2022-06-20",
|
||
"candidates": 52334,
|
||
"vacancies": 14720
|
||
},
|
||
{
|
||
"week": "2022-06-27",
|
||
"candidates": 53209,
|
||
"vacancies": 14336
|
||
},
|
||
{
|
||
"week": "2022-07-04",
|
||
"candidates": 54315,
|
||
"vacancies": 14137
|
||
},
|
||
{
|
||
"week": "2022-07-11",
|
||
"candidates": 55196,
|
||
"vacancies": 13739
|
||
},
|
||
{
|
||
"week": "2022-07-18",
|
||
"candidates": 56175,
|
||
"vacancies": 13557
|
||
},
|
||
{
|
||
"week": "2022-07-25",
|
||
"candidates": 57136,
|
||
"vacancies": 13490
|
||
},
|
||
{
|
||
"week": "2022-08-01",
|
||
"candidates": 58140,
|
||
"vacancies": 13490
|
||
},
|
||
{
|
||
"week": "2022-08-08",
|
||
"candidates": 59030,
|
||
"vacancies": 13197
|
||
},
|
||
{
|
||
"week": "2022-08-15",
|
||
"candidates": 59802,
|
||
"vacancies": 13159
|
||
},
|
||
{
|
||
"week": "2022-08-22",
|
||
"candidates": 60408,
|
||
"vacancies": 12709
|
||
},
|
||
{
|
||
"week": "2022-08-29",
|
||
"candidates": 61258,
|
||
"vacancies": 12561
|
||
},
|
||
{
|
||
"week": "2022-09-05",
|
||
"candidates": 62400,
|
||
"vacancies": 12901
|
||
},
|
||
{
|
||
"week": "2022-09-12",
|
||
"candidates": 63054,
|
||
"vacancies": 13097
|
||
},
|
||
{
|
||
"week": "2022-09-19",
|
||
"candidates": 63660,
|
||
"vacancies": 13572
|
||
},
|
||
{
|
||
"week": "2022-09-26",
|
||
"candidates": 64382,
|
||
"vacancies": 13360
|
||
},
|
||
{
|
||
"week": "2022-10-03",
|
||
"candidates": 65206,
|
||
"vacancies": 13355
|
||
},
|
||
{
|
||
"week": "2022-10-10",
|
||
"candidates": 65633,
|
||
"vacancies": 13007
|
||
},
|
||
{
|
||
"week": "2022-10-17",
|
||
"candidates": 66511,
|
||
"vacancies": 12987
|
||
},
|
||
{
|
||
"week": "2022-10-24",
|
||
"candidates": 67194,
|
||
"vacancies": 12881
|
||
},
|
||
{
|
||
"week": "2022-10-31",
|
||
"candidates": 69151,
|
||
"vacancies": 12483
|
||
},
|
||
{
|
||
"week": "2022-11-07",
|
||
"candidates": 70213,
|
||
"vacancies": 12377
|
||
},
|
||
{
|
||
"week": "2022-11-14",
|
||
"candidates": 70973,
|
||
"vacancies": 11845
|
||
},
|
||
{
|
||
"week": "2022-11-21",
|
||
"candidates": 71476,
|
||
"vacancies": 11507
|
||
},
|
||
{
|
||
"week": "2022-11-28",
|
||
"candidates": 72578,
|
||
"vacancies": 11097
|
||
},
|
||
{
|
||
"week": "2022-12-05",
|
||
"candidates": 73921,
|
||
"vacancies": 10632
|
||
},
|
||
{
|
||
"week": "2022-12-12",
|
||
"candidates": 75211,
|
||
"vacancies": 10091
|
||
},
|
||
{
|
||
"week": "2022-12-19",
|
||
"candidates": 76011,
|
||
"vacancies": 9682
|
||
},
|
||
{
|
||
"week": "2022-12-26",
|
||
"candidates": 76488,
|
||
"vacancies": 8727
|
||
},
|
||
{
|
||
"week": "2023-01-02",
|
||
"candidates": 78485,
|
||
"vacancies": 8300
|
||
},
|
||
{
|
||
"week": "2023-01-09",
|
||
"candidates": 80623,
|
||
"vacancies": 8791
|
||
},
|
||
{
|
||
"week": "2023-01-16",
|
||
"candidates": 82525,
|
||
"vacancies": 9300
|
||
},
|
||
{
|
||
"week": "2023-01-23",
|
||
"candidates": 84187,
|
||
"vacancies": 9874
|
||
},
|
||
{
|
||
"week": "2023-01-30",
|
||
"candidates": 71123,
|
||
"vacancies": 9905
|
||
},
|
||
{
|
||
"week": "2023-02-06",
|
||
"candidates": 72302,
|
||
"vacancies": 9623
|
||
},
|
||
{
|
||
"week": "2023-02-13",
|
||
"candidates": 74007,
|
||
"vacancies": 9644
|
||
},
|
||
{
|
||
"week": "2023-02-20",
|
||
"candidates": 75377,
|
||
"vacancies": 9575
|
||
},
|
||
{
|
||
"week": "2023-02-27",
|
||
"candidates": 76634,
|
||
"vacancies": 9536
|
||
},
|
||
{
|
||
"week": "2023-03-06",
|
||
"candidates": 77995,
|
||
"vacancies": 9489
|
||
},
|
||
{
|
||
"week": "2023-03-13",
|
||
"candidates": 79206,
|
||
"vacancies": 9466
|
||
},
|
||
{
|
||
"week": "2023-03-20",
|
||
"candidates": 80236,
|
||
"vacancies": 9478
|
||
},
|
||
{
|
||
"week": "2023-03-27",
|
||
"candidates": 81489,
|
||
"vacancies": 9483
|
||
},
|
||
{
|
||
"week": "2023-04-03",
|
||
"candidates": 82405,
|
||
"vacancies": 9573
|
||
},
|
||
{
|
||
"week": "2023-04-10",
|
||
"candidates": 82725,
|
||
"vacancies": 9327
|
||
},
|
||
{
|
||
"week": "2023-04-17",
|
||
"candidates": 83114,
|
||
"vacancies": 9285
|
||
},
|
||
{
|
||
"week": "2023-04-24",
|
||
"candidates": 83908,
|
||
"vacancies": 9335
|
||
},
|
||
{
|
||
"week": "2023-05-01",
|
||
"candidates": 84029,
|
||
"vacancies": 9469
|
||
},
|
||
{
|
||
"week": "2023-05-08",
|
||
"candidates": 84773,
|
||
"vacancies": 9438
|
||
},
|
||
{
|
||
"week": "2023-05-15",
|
||
"candidates": 84886,
|
||
"vacancies": 9682
|
||
},
|
||
{
|
||
"week": "2023-05-22",
|
||
"candidates": 85350,
|
||
"vacancies": 9500
|
||
},
|
||
{
|
||
"week": "2023-05-29",
|
||
"candidates": 85642,
|
||
"vacancies": 9523
|
||
},
|
||
{
|
||
"week": "2023-06-05",
|
||
"candidates": 86030,
|
||
"vacancies": 9236
|
||
},
|
||
{
|
||
"week": "2023-06-12",
|
||
"candidates": 86598,
|
||
"vacancies": 9343
|
||
},
|
||
{
|
||
"week": "2023-06-19",
|
||
"candidates": 87038,
|
||
"vacancies": 9364
|
||
},
|
||
{
|
||
"week": "2023-06-26",
|
||
"candidates": 87600,
|
||
"vacancies": 9236
|
||
},
|
||
{
|
||
"week": "2023-07-03",
|
||
"candidates": 88361,
|
||
"vacancies": 9471
|
||
},
|
||
{
|
||
"week": "2023-07-10",
|
||
"candidates": 89268,
|
||
"vacancies": 9283
|
||
},
|
||
{
|
||
"week": "2023-07-17",
|
||
"candidates": 89760,
|
||
"vacancies": 9223
|
||
},
|
||
{
|
||
"week": "2023-07-24",
|
||
"candidates": 89946,
|
||
"vacancies": 9219
|
||
},
|
||
{
|
||
"week": "2023-07-31",
|
||
"candidates": 90477,
|
||
"vacancies": 8117
|
||
},
|
||
{
|
||
"week": "2023-08-07",
|
||
"candidates": 91008,
|
||
"vacancies": 7600
|
||
},
|
||
{
|
||
"week": "2023-08-14",
|
||
"candidates": 91338,
|
||
"vacancies": 7092
|
||
},
|
||
{
|
||
"week": "2023-08-21",
|
||
"candidates": 91164,
|
||
"vacancies": 6653
|
||
},
|
||
{
|
||
"week": "2023-08-28",
|
||
"candidates": 91360,
|
||
"vacancies": 6774
|
||
},
|
||
{
|
||
"week": "2023-09-04",
|
||
"candidates": 91495,
|
||
"vacancies": 6879
|
||
},
|
||
{
|
||
"week": "2023-09-11",
|
||
"candidates": 91959,
|
||
"vacancies": 6761
|
||
},
|
||
{
|
||
"week": "2023-09-18",
|
||
"candidates": 92184,
|
||
"vacancies": 7075
|
||
},
|
||
{
|
||
"week": "2023-09-25",
|
||
"candidates": 92326,
|
||
"vacancies": 6952
|
||
},
|
||
{
|
||
"week": "2023-10-02",
|
||
"candidates": 91820,
|
||
"vacancies": 7008
|
||
},
|
||
{
|
||
"week": "2023-10-09",
|
||
"candidates": 91720,
|
||
"vacancies": 7052
|
||
},
|
||
{
|
||
"week": "2023-10-16",
|
||
"candidates": 91718,
|
||
"vacancies": 7061
|
||
},
|
||
{
|
||
"week": "2023-10-23",
|
||
"candidates": 92155,
|
||
"vacancies": 6999
|
||
},
|
||
{
|
||
"week": "2023-10-30",
|
||
"candidates": 92129,
|
||
"vacancies": 6888
|
||
},
|
||
{
|
||
"week": "2023-11-06",
|
||
"candidates": 92547,
|
||
"vacancies": 6852
|
||
},
|
||
{
|
||
"week": "2023-11-13",
|
||
"candidates": 92533,
|
||
"vacancies": 6941
|
||
},
|
||
{
|
||
"week": "2023-11-20",
|
||
"candidates": 92696,
|
||
"vacancies": 6935
|
||
},
|
||
{
|
||
"week": "2023-11-27",
|
||
"candidates": 92698,
|
||
"vacancies": 6915
|
||
},
|
||
{
|
||
"week": "2023-12-04",
|
||
"candidates": 92422,
|
||
"vacancies": 6795
|
||
},
|
||
{
|
||
"week": "2023-12-11",
|
||
"candidates": 91568,
|
||
"vacancies": 6685
|
||
},
|
||
{
|
||
"week": "2023-12-18",
|
||
"candidates": 90801,
|
||
"vacancies": 6367
|
||
},
|
||
{
|
||
"week": "2023-12-25",
|
||
"candidates": 89337,
|
||
"vacancies": 5701
|
||
},
|
||
{
|
||
"week": "2024-01-01",
|
||
"candidates": 89594,
|
||
"vacancies": 5716
|
||
},
|
||
{
|
||
"week": "2024-01-08",
|
||
"candidates": 90414,
|
||
"vacancies": 6142
|
||
},
|
||
{
|
||
"week": "2024-01-15",
|
||
"candidates": 90746,
|
||
"vacancies": 6577
|
||
},
|
||
{
|
||
"week": "2024-01-22",
|
||
"candidates": 90327,
|
||
"vacancies": 6939
|
||
},
|
||
{
|
||
"week": "2024-01-29",
|
||
"candidates": 90200,
|
||
"vacancies": 6983
|
||
},
|
||
{
|
||
"week": "2024-02-05",
|
||
"candidates": 90189,
|
||
"vacancies": 6852
|
||
},
|
||
{
|
||
"week": "2024-02-12",
|
||
"candidates": 89834,
|
||
"vacancies": 6900
|
||
},
|
||
{
|
||
"week": "2024-02-19",
|
||
"candidates": 89650,
|
||
"vacancies": 7200
|
||
},
|
||
{
|
||
"week": "2024-02-26",
|
||
"candidates": 89809,
|
||
"vacancies": 7512
|
||
},
|
||
{
|
||
"week": "2024-03-04",
|
||
"candidates": 89681,
|
||
"vacancies": 7523
|
||
},
|
||
{
|
||
"week": "2024-03-11",
|
||
"candidates": 90170,
|
||
"vacancies": 6752
|
||
},
|
||
{
|
||
"week": "2024-03-18",
|
||
"candidates": 90291,
|
||
"vacancies": 7074
|
||
},
|
||
{
|
||
"week": "2024-03-25",
|
||
"candidates": 90293,
|
||
"vacancies": 7305
|
||
},
|
||
{
|
||
"week": "2024-04-01",
|
||
"candidates": 90411,
|
||
"vacancies": 7424
|
||
},
|
||
{
|
||
"week": "2024-04-08",
|
||
"candidates": 90017,
|
||
"vacancies": 7468
|
||
},
|
||
{
|
||
"week": "2024-04-15",
|
||
"candidates": 89761,
|
||
"vacancies": 7461
|
||
},
|
||
{
|
||
"week": "2024-04-22",
|
||
"candidates": 89117,
|
||
"vacancies": 7214
|
||
},
|
||
{
|
||
"week": "2024-04-29",
|
||
"candidates": 88531,
|
||
"vacancies": 7288
|
||
},
|
||
{
|
||
"week": "2024-05-06",
|
||
"candidates": 88303,
|
||
"vacancies": 7187
|
||
},
|
||
{
|
||
"week": "2024-05-13",
|
||
"candidates": 87963,
|
||
"vacancies": 7054
|
||
},
|
||
{
|
||
"week": "2024-05-20",
|
||
"candidates": 87541,
|
||
"vacancies": 7189
|
||
},
|
||
{
|
||
"week": "2024-05-27",
|
||
"candidates": 87180,
|
||
"vacancies": 7211
|
||
},
|
||
{
|
||
"week": "2024-06-03",
|
||
"candidates": 86782,
|
||
"vacancies": 7277
|
||
},
|
||
{
|
||
"week": "2024-06-10",
|
||
"candidates": 86785,
|
||
"vacancies": 7232
|
||
},
|
||
{
|
||
"week": "2024-06-17",
|
||
"candidates": 86265,
|
||
"vacancies": 7159
|
||
},
|
||
{
|
||
"week": "2024-06-24",
|
||
"candidates": 86183,
|
||
"vacancies": 6958
|
||
},
|
||
{
|
||
"week": "2024-07-01",
|
||
"candidates": 86120,
|
||
"vacancies": 7280
|
||
},
|
||
{
|
||
"week": "2024-07-08",
|
||
"candidates": 86067,
|
||
"vacancies": 7269
|
||
},
|
||
{
|
||
"week": "2024-07-15",
|
||
"candidates": 85534,
|
||
"vacancies": 7279
|
||
},
|
||
{
|
||
"week": "2024-07-22",
|
||
"candidates": 85656,
|
||
"vacancies": 7352
|
||
},
|
||
{
|
||
"week": "2024-07-29",
|
||
"candidates": 85788,
|
||
"vacancies": 7396
|
||
},
|
||
{
|
||
"week": "2024-08-05",
|
||
"candidates": 85888,
|
||
"vacancies": 7507
|
||
},
|
||
{
|
||
"week": "2024-08-12",
|
||
"candidates": 85544,
|
||
"vacancies": 7549
|
||
},
|
||
{
|
||
"week": "2024-08-19",
|
||
"candidates": 85074,
|
||
"vacancies": 7357
|
||
},
|
||
{
|
||
"week": "2024-08-26",
|
||
"candidates": 84826,
|
||
"vacancies": 7030
|
||
},
|
||
{
|
||
"week": "2024-09-02",
|
||
"candidates": 85171,
|
||
"vacancies": 7208
|
||
},
|
||
{
|
||
"week": "2024-09-09",
|
||
"candidates": 85444,
|
||
"vacancies": 7447
|
||
},
|
||
{
|
||
"week": "2024-09-16",
|
||
"candidates": 85150,
|
||
"vacancies": 7401
|
||
},
|
||
{
|
||
"week": "2024-09-23",
|
||
"candidates": 85166,
|
||
"vacancies": 7427
|
||
},
|
||
{
|
||
"week": "2024-09-30",
|
||
"candidates": 84683,
|
||
"vacancies": 7226
|
||
},
|
||
{
|
||
"week": "2024-10-07",
|
||
"candidates": 84641,
|
||
"vacancies": 7348
|
||
},
|
||
{
|
||
"week": "2024-10-14",
|
||
"candidates": 84640,
|
||
"vacancies": 7494
|
||
},
|
||
{
|
||
"week": "2024-10-21",
|
||
"candidates": 83925,
|
||
"vacancies": 7406
|
||
},
|
||
{
|
||
"week": "2024-10-28",
|
||
"candidates": 83615,
|
||
"vacancies": 7367
|
||
},
|
||
{
|
||
"week": "2024-11-04",
|
||
"candidates": 83532,
|
||
"vacancies": 7365
|
||
},
|
||
{
|
||
"week": "2024-11-11",
|
||
"candidates": 83010,
|
||
"vacancies": 7425
|
||
},
|
||
{
|
||
"week": "2024-11-18",
|
||
"candidates": 82605,
|
||
"vacancies": 7574
|
||
},
|
||
{
|
||
"week": "2024-11-25",
|
||
"candidates": 82003,
|
||
"vacancies": 7586
|
||
},
|
||
{
|
||
"week": "2024-12-02",
|
||
"candidates": 81870,
|
||
"vacancies": 7382
|
||
},
|
||
{
|
||
"week": "2024-12-09",
|
||
"candidates": 81385,
|
||
"vacancies": 7426
|
||
},
|
||
{
|
||
"week": "2024-12-16",
|
||
"candidates": 80443,
|
||
"vacancies": 7142
|
||
},
|
||
{
|
||
"week": "2024-12-23",
|
||
"candidates": 78891,
|
||
"vacancies": 6456
|
||
},
|
||
{
|
||
"week": "2024-12-30",
|
||
"candidates": 78567,
|
||
"vacancies": 5942
|
||
},
|
||
{
|
||
"week": "2025-01-06",
|
||
"candidates": 80219,
|
||
"vacancies": 6350
|
||
},
|
||
{
|
||
"week": "2025-01-13",
|
||
"candidates": 80558,
|
||
"vacancies": 6794
|
||
},
|
||
{
|
||
"week": "2025-01-20",
|
||
"candidates": 80995,
|
||
"vacancies": 7339
|
||
},
|
||
{
|
||
"week": "2025-01-27",
|
||
"candidates": 81569,
|
||
"vacancies": 7983
|
||
},
|
||
{
|
||
"week": "2025-02-03",
|
||
"candidates": 82141,
|
||
"vacancies": 7676
|
||
},
|
||
{
|
||
"week": "2025-02-10",
|
||
"candidates": 82541,
|
||
"vacancies": 7917
|
||
},
|
||
{
|
||
"week": "2025-02-17",
|
||
"candidates": 82792,
|
||
"vacancies": 7964
|
||
},
|
||
{
|
||
"week": "2025-02-24",
|
||
"candidates": 82603,
|
||
"vacancies": 8232
|
||
},
|
||
{
|
||
"week": "2025-03-03",
|
||
"candidates": 82417,
|
||
"vacancies": 8008
|
||
},
|
||
{
|
||
"week": "2025-03-10",
|
||
"candidates": 82824,
|
||
"vacancies": 7959
|
||
},
|
||
{
|
||
"week": "2025-03-17",
|
||
"candidates": 82681,
|
||
"vacancies": 7957
|
||
},
|
||
{
|
||
"week": "2025-03-24",
|
||
"candidates": 83243,
|
||
"vacancies": 8007
|
||
},
|
||
{
|
||
"week": "2025-03-31",
|
||
"candidates": 83774,
|
||
"vacancies": 8065
|
||
},
|
||
{
|
||
"week": "2025-04-07",
|
||
"candidates": 84178,
|
||
"vacancies": 8059
|
||
},
|
||
{
|
||
"week": "2025-04-14",
|
||
"candidates": 83783,
|
||
"vacancies": 7970
|
||
},
|
||
{
|
||
"week": "2025-04-21",
|
||
"candidates": 83588,
|
||
"vacancies": 7984
|
||
},
|
||
{
|
||
"week": "2025-04-28",
|
||
"candidates": 83286,
|
||
"vacancies": 7926
|
||
},
|
||
{
|
||
"week": "2025-05-05",
|
||
"candidates": 83755,
|
||
"vacancies": 7978
|
||
},
|
||
{
|
||
"week": "2025-05-12",
|
||
"candidates": 83849,
|
||
"vacancies": 8028
|
||
},
|
||
{
|
||
"week": "2025-05-19",
|
||
"candidates": 83707,
|
||
"vacancies": 8265
|
||
},
|
||
{
|
||
"week": "2025-05-26",
|
||
"candidates": 83643,
|
||
"vacancies": 8389
|
||
},
|
||
{
|
||
"week": "2025-06-02",
|
||
"candidates": 83385,
|
||
"vacancies": 8387
|
||
},
|
||
{
|
||
"week": "2025-06-09",
|
||
"candidates": 83215,
|
||
"vacancies": 8357
|
||
},
|
||
{
|
||
"week": "2025-06-16",
|
||
"candidates": 83214,
|
||
"vacancies": 8319
|
||
},
|
||
{
|
||
"week": "2025-06-23",
|
||
"candidates": 83042,
|
||
"vacancies": 8135
|
||
},
|
||
{
|
||
"week": "2025-06-30",
|
||
"candidates": 83784,
|
||
"vacancies": 8211
|
||
},
|
||
{
|
||
"week": "2025-07-07",
|
||
"candidates": 83907,
|
||
"vacancies": 8471
|
||
},
|
||
{
|
||
"week": "2025-07-14",
|
||
"candidates": 83825,
|
||
"vacancies": 8653
|
||
},
|
||
{
|
||
"week": "2025-07-21",
|
||
"candidates": 83530,
|
||
"vacancies": 8826
|
||
},
|
||
{
|
||
"week": "2025-07-28",
|
||
"candidates": 83797,
|
||
"vacancies": 8773
|
||
},
|
||
{
|
||
"week": "2025-08-04",
|
||
"candidates": 83770,
|
||
"vacancies": 8816
|
||
},
|
||
{
|
||
"week": "2025-08-11",
|
||
"candidates": 83567,
|
||
"vacancies": 8877
|
||
},
|
||
{
|
||
"week": "2025-08-18",
|
||
"candidates": 83423,
|
||
"vacancies": 9092
|
||
},
|
||
{
|
||
"week": "2025-08-25",
|
||
"candidates": 83605,
|
||
"vacancies": 8978
|
||
},
|
||
{
|
||
"week": "2025-09-01",
|
||
"candidates": 84643,
|
||
"vacancies": 9020
|
||
},
|
||
{
|
||
"week": "2025-09-08",
|
||
"candidates": 84728,
|
||
"vacancies": 9021
|
||
},
|
||
{
|
||
"week": "2025-09-15",
|
||
"candidates": 84619,
|
||
"vacancies": 9193
|
||
},
|
||
{
|
||
"week": "2025-09-22",
|
||
"candidates": 84709,
|
||
"vacancies": 9362
|
||
},
|
||
{
|
||
"week": "2025-09-29",
|
||
"candidates": 84630,
|
||
"vacancies": 9312
|
||
},
|
||
{
|
||
"week": "2025-10-06",
|
||
"candidates": 84628,
|
||
"vacancies": 9444
|
||
},
|
||
{
|
||
"week": "2025-10-13",
|
||
"candidates": 84270,
|
||
"vacancies": 9508
|
||
},
|
||
{
|
||
"week": "2025-10-20",
|
||
"candidates": 84020,
|
||
"vacancies": 9462
|
||
},
|
||
{
|
||
"week": "2025-10-27",
|
||
"candidates": 83650,
|
||
"vacancies": 9505
|
||
},
|
||
{
|
||
"week": "2025-11-03",
|
||
"candidates": 83579,
|
||
"vacancies": 9602
|
||
},
|
||
{
|
||
"week": "2025-11-10",
|
||
"candidates": 83087,
|
||
"vacancies": 9648
|
||
},
|
||
{
|
||
"week": "2025-11-17",
|
||
"candidates": 82749,
|
||
"vacancies": 9624
|
||
},
|
||
{
|
||
"week": "2025-11-24",
|
||
"candidates": 82221,
|
||
"vacancies": 9636
|
||
},
|
||
{
|
||
"week": "2025-12-01",
|
||
"candidates": 82066,
|
||
"vacancies": 9421
|
||
},
|
||
{
|
||
"week": "2025-12-08",
|
||
"candidates": 81693,
|
||
"vacancies": 9420
|
||
},
|
||
{
|
||
"week": "2025-12-15",
|
||
"candidates": 81040,
|
||
"vacancies": 9106
|
||
},
|
||
{
|
||
"week": "2025-12-22",
|
||
"candidates": 79990,
|
||
"vacancies": 8285
|
||
},
|
||
{
|
||
"week": "2025-12-29",
|
||
"candidates": 79528,
|
||
"vacancies": 7440
|
||
},
|
||
{
|
||
"week": "2026-01-05",
|
||
"candidates": 81278,
|
||
"vacancies": 8218
|
||
},
|
||
{
|
||
"week": "2026-01-12",
|
||
"candidates": 81498,
|
||
"vacancies": 8557
|
||
},
|
||
{
|
||
"week": "2026-01-19",
|
||
"candidates": 82168,
|
||
"vacancies": 9304
|
||
},
|
||
{
|
||
"week": "2026-01-26",
|
||
"candidates": 82439,
|
||
"vacancies": 10010
|
||
},
|
||
{
|
||
"week": "2026-02-02",
|
||
"candidates": 83010,
|
||
"vacancies": 9587
|
||
},
|
||
{
|
||
"week": "2026-02-09",
|
||
"candidates": 83210,
|
||
"vacancies": 9604
|
||
},
|
||
{
|
||
"week": "2026-02-16",
|
||
"candidates": 83714,
|
||
"vacancies": 9601
|
||
},
|
||
{
|
||
"week": "2026-02-23",
|
||
"candidates": 83700,
|
||
"vacancies": 9548
|
||
},
|
||
{
|
||
"week": "2026-03-02",
|
||
"candidates": 83984,
|
||
"vacancies": 9474
|
||
},
|
||
{
|
||
"week": "2026-03-09",
|
||
"candidates": 84308,
|
||
"vacancies": 9355
|
||
},
|
||
{
|
||
"week": "2026-03-16",
|
||
"candidates": 84621,
|
||
"vacancies": 9260
|
||
},
|
||
{
|
||
"week": "2026-03-23",
|
||
"candidates": 85119,
|
||
"vacancies": 9127
|
||
},
|
||
{
|
||
"week": "2026-03-30",
|
||
"candidates": 86013,
|
||
"vacancies": 8762
|
||
},
|
||
{
|
||
"week": "2026-04-06",
|
||
"candidates": 86339,
|
||
"vacancies": 8610
|
||
},
|
||
{
|
||
"week": "2026-04-13",
|
||
"candidates": 86366,
|
||
"vacancies": 8221
|
||
},
|
||
{
|
||
"week": "2026-04-20",
|
||
"candidates": 86790,
|
||
"vacancies": 7825
|
||
},
|
||
{
|
||
"week": "2026-04-27",
|
||
"candidates": 86898,
|
||
"vacancies": 7785
|
||
},
|
||
{
|
||
"week": "2026-05-04",
|
||
"candidates": 87141,
|
||
"vacancies": 7834
|
||
},
|
||
{
|
||
"week": "2026-05-11",
|
||
"candidates": 87614,
|
||
"vacancies": 8118
|
||
},
|
||
{
|
||
"week": "2026-05-18",
|
||
"candidates": 87658,
|
||
"vacancies": 8149
|
||
},
|
||
{
|
||
"week": "2026-05-25",
|
||
"candidates": 88061,
|
||
"vacancies": 8173
|
||
},
|
||
{
|
||
"week": "2026-06-01",
|
||
"candidates": 88405,
|
||
"vacancies": 7946
|
||
},
|
||
{
|
||
"week": "2026-06-08",
|
||
"candidates": 88971,
|
||
"vacancies": 7901
|
||
},
|
||
{
|
||
"week": "2026-06-15",
|
||
"candidates": 88786,
|
||
"vacancies": 7755
|
||
},
|
||
{
|
||
"week": "2026-06-22",
|
||
"candidates": 89092,
|
||
"vacancies": 7572
|
||
},
|
||
{
|
||
"week": "2026-06-29",
|
||
"candidates": 89343,
|
||
"vacancies": 7248
|
||
},
|
||
{
|
||
"week": "2026-07-06",
|
||
"candidates": 89844,
|
||
"vacancies": 7155
|
||
},
|
||
{
|
||
"week": "2026-07-13",
|
||
"candidates": 89944,
|
||
"vacancies": 7093
|
||
},
|
||
{
|
||
"week": "2026-07-20",
|
||
"candidates": 90361,
|
||
"vacancies": 6980
|
||
},
|
||
{
|
||
"week": "2026-07-27",
|
||
"candidates": 90448,
|
||
"vacancies": 7249
|
||
}
|
||
]
|
||
},
|
||
"transform": [
|
||
{
|
||
"calculate": "datum.candidates / datum.vacancies",
|
||
"as": "ratio"
|
||
}
|
||
],
|
||
"resolve": {
|
||
"scale": {
|
||
"y": "independent"
|
||
}
|
||
},
|
||
"layer": [
|
||
{
|
||
"description": "Wide pale bars: monthly mean candidates (hidden count scale)",
|
||
"mark": {
|
||
"type": "bar",
|
||
"width": {
|
||
"band": 0.72
|
||
},
|
||
"opacity": 0.15
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"timeUnit": "yearmonth",
|
||
"type": "temporal",
|
||
"bandPosition": 0.5,
|
||
"title": null,
|
||
"axis": {
|
||
"grid": false,
|
||
"format": "%Y",
|
||
"tickCount": "year",
|
||
"labelFontSize": 11
|
||
}
|
||
},
|
||
"y": {
|
||
"aggregate": "mean",
|
||
"field": "candidates",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
265000
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"color": {
|
||
"datum": "Candidates",
|
||
"scale": {
|
||
"domain": [
|
||
"Candidates",
|
||
"Vacancies"
|
||
],
|
||
"range": [
|
||
"#2a78d6",
|
||
"#eb6834"
|
||
]
|
||
},
|
||
"legend": {
|
||
"orient": "top",
|
||
"title": null,
|
||
"symbolType": "square",
|
||
"symbolSize": 140,
|
||
"symbolOpacity": 0.35,
|
||
"labelExpr": "datum.label + ' (count)'"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Narrow bars in front: monthly mean vacancies (same hidden count scale)",
|
||
"mark": {
|
||
"type": "bar",
|
||
"width": {
|
||
"band": 0.32
|
||
},
|
||
"opacity": 0.32
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"timeUnit": "yearmonth",
|
||
"type": "temporal",
|
||
"bandPosition": 0.5,
|
||
"title": null,
|
||
"axis": {
|
||
"grid": false,
|
||
"format": "%Y",
|
||
"tickCount": "year",
|
||
"labelFontSize": 11
|
||
}
|
||
},
|
||
"y": {
|
||
"aggregate": "mean",
|
||
"field": "vacancies",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
265000
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"color": {
|
||
"datum": "Vacancies",
|
||
"scale": {
|
||
"domain": [
|
||
"Candidates",
|
||
"Vacancies"
|
||
],
|
||
"range": [
|
||
"#2a78d6",
|
||
"#eb6834"
|
||
]
|
||
},
|
||
"legend": {
|
||
"orient": "top",
|
||
"title": null,
|
||
"symbolType": "square",
|
||
"symbolSize": 140,
|
||
"symbolOpacity": 0.35,
|
||
"labelExpr": "datum.label + ' (count)'"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Count end label: last weekly candidates",
|
||
"transform": [
|
||
{
|
||
"window": [
|
||
{
|
||
"op": "row_number",
|
||
"as": "rn"
|
||
}
|
||
],
|
||
"sort": [
|
||
{
|
||
"field": "week",
|
||
"order": "descending"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"filter": "datum.rn == 1"
|
||
},
|
||
{
|
||
"calculate": "format(datum.candidates / 1000, '.0f') + 'k'",
|
||
"as": "lbl"
|
||
}
|
||
],
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"dx": 7,
|
||
"fontSize": 10.5,
|
||
"fill": "#898781"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "candidates",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
265000
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "lbl"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Count end label: last weekly vacancies",
|
||
"transform": [
|
||
{
|
||
"window": [
|
||
{
|
||
"op": "row_number",
|
||
"as": "rn"
|
||
}
|
||
],
|
||
"sort": [
|
||
{
|
||
"field": "week",
|
||
"order": "descending"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"filter": "datum.rn == 1"
|
||
},
|
||
{
|
||
"calculate": "format(datum.vacancies / 1000, '.1f') + 'k'",
|
||
"as": "lbl"
|
||
}
|
||
],
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"dx": 7,
|
||
"fontSize": 10.5,
|
||
"fill": "#898781"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "vacancies",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
265000
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "lbl"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Parity line: 1 candidate per vacancy",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"y": 1
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "rule",
|
||
"stroke": "#c3c2b7",
|
||
"strokeWidth": 1
|
||
},
|
||
"encoding": {
|
||
"y": {
|
||
"field": "y",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Parity label (halo)",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2020-04-06",
|
||
"y": 0.55,
|
||
"t": "1:1 parity"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"fontSize": 10.5,
|
||
"fill": "#fcfcfb",
|
||
"stroke": "#fcfcfb",
|
||
"strokeWidth": 3.5
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "y",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "t"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Parity label",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2020-04-06",
|
||
"y": 0.55,
|
||
"t": "1:1 parity"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"fontSize": 10.5,
|
||
"fill": "#898781"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "y",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "t"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Full-scale invasion rule",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2022-02-24"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "rule",
|
||
"stroke": "#c3c2b7",
|
||
"strokeWidth": 1
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Full-scale invasion label",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2022-02-24",
|
||
"t": "Full-scale invasion"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"dx": 6,
|
||
"y": 14,
|
||
"fontSize": 11,
|
||
"fill": "#52514e"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"text": {
|
||
"field": "t"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "2021 inversion annotation (halo)",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2021-06-01",
|
||
"y": 2.45,
|
||
"t": "Jan–Sep 2021: vacancies > candidates"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "center",
|
||
"fontSize": 10.5,
|
||
"fill": "#fcfcfb",
|
||
"stroke": "#fcfcfb",
|
||
"strokeWidth": 3.5
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "y",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "t"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "2021 inversion annotation",
|
||
"data": {
|
||
"values": [
|
||
{
|
||
"week": "2021-06-01",
|
||
"y": 2.45,
|
||
"t": "Jan–Sep 2021: vacancies > candidates"
|
||
}
|
||
]
|
||
},
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "center",
|
||
"fontSize": 10.5,
|
||
"fill": "#898781"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "y",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "t"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "The hero: weekly candidates-per-vacancy ratio",
|
||
"mark": {
|
||
"type": "line",
|
||
"stroke": "#0b0b0b"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal",
|
||
"title": null,
|
||
"axis": {
|
||
"grid": false,
|
||
"format": "%Y",
|
||
"tickCount": "year",
|
||
"labelFontSize": 11
|
||
}
|
||
},
|
||
"y": {
|
||
"field": "ratio",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": {
|
||
"tickCount": 5,
|
||
"title": "Candidates per vacancy"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Ratio end label (derived from last row)",
|
||
"transform": [
|
||
{
|
||
"window": [
|
||
{
|
||
"op": "row_number",
|
||
"as": "rn"
|
||
}
|
||
],
|
||
"sort": [
|
||
{
|
||
"field": "week",
|
||
"order": "descending"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"filter": "datum.rn == 1"
|
||
},
|
||
{
|
||
"calculate": "format(datum.ratio, '.1f')",
|
||
"as": "lbl"
|
||
}
|
||
],
|
||
"mark": {
|
||
"type": "text",
|
||
"align": "left",
|
||
"dx": 7,
|
||
"fontSize": 12,
|
||
"fontWeight": 600,
|
||
"fill": "#0b0b0b"
|
||
},
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"y": {
|
||
"field": "ratio",
|
||
"type": "quantitative",
|
||
"scale": {
|
||
"domain": [
|
||
0,
|
||
16
|
||
]
|
||
},
|
||
"axis": null
|
||
},
|
||
"text": {
|
||
"field": "lbl"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"description": "Crosshair + tooltip on nearest week",
|
||
"mark": {
|
||
"type": "rule",
|
||
"stroke": "#c3c2b7",
|
||
"strokeWidth": 1
|
||
},
|
||
"params": [
|
||
{
|
||
"name": "hover",
|
||
"select": {
|
||
"type": "point",
|
||
"fields": [
|
||
"week"
|
||
],
|
||
"nearest": true,
|
||
"on": "mouseover",
|
||
"clear": "mouseout"
|
||
}
|
||
}
|
||
],
|
||
"encoding": {
|
||
"x": {
|
||
"field": "week",
|
||
"type": "temporal"
|
||
},
|
||
"opacity": {
|
||
"condition": {
|
||
"param": "hover",
|
||
"empty": false,
|
||
"value": 0.6
|
||
},
|
||
"value": 0
|
||
},
|
||
"tooltip": [
|
||
{
|
||
"field": "week",
|
||
"type": "temporal",
|
||
"title": "Week",
|
||
"format": "%b %d, %Y"
|
||
},
|
||
{
|
||
"field": "candidates",
|
||
"type": "quantitative",
|
||
"title": "Candidates",
|
||
"format": ","
|
||
},
|
||
{
|
||
"field": "vacancies",
|
||
"type": "quantitative",
|
||
"title": "Vacancies",
|
||
"format": ","
|
||
},
|
||
{
|
||
"field": "ratio",
|
||
"type": "quantitative",
|
||
"title": "Per vacancy",
|
||
"format": ".2f"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|