[{"data":1,"prerenderedAt":4570},["ShallowReactive",2],{"kscript:cookbook/historical-returns":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":13,"tree":14},"cookbook/historical-returns","cookbook/historical-returns.md",{"title":7,"description":8,"verified":9},"Historical Returns Matrix","Month-by-year percentage returns as a foreign-domain matrix pane: rows are years, columns are months, with AVG / MED / WIN% summary rows and the forming month highlighted. Identical on every chart interval.",{"engine":10,"probes":11},"3.0.67",[12],"scripts/probes/cookbook/monthly_returns.ks","---\ntitle: Historical Returns Matrix\ndescription: >-\n  Month-by-year percentage returns as a foreign-domain matrix pane: rows are\n  years, columns are months, with AVG / MED / WIN% summary rows and the\n  forming month highlighted. Identical on every chart interval.\nverified:\n  engine: 3.0.67\n  probes:\n    - scripts/probes/cookbook/monthly_returns.ks\n---\n\n\u003Cdiv class=\"flex gap-3 mb-6\">\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-blue-50 text-blue-600 text-sm font-medium\">\n    Intermediate\n  \u003C/span>\n  \u003Cspan class=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-gray-100 text-gray-600 text-sm font-medium\">\n    6 min read\n  \u003C/span>\n\u003C/div>\n\n# Historical Returns Matrix\n\nThe classic seasonality table: every month's percentage return, laid out as a\ngrid with one row per year and one column per month, plus three summary rows\n(average, median, and win rate per calendar month) and the still-forming month\nhighlighted. It renders in a [foreign-domain pane](/kscript/functions/foreign-panes),\nso the grid ignores time pan and zoom entirely and looks identical whether the\nchart is on 1m or 1w.\n\nThis recipe is also the shortest path to understanding the foreign-pane\nworkflow end to end: pull a dataset that does not depend on the chart window,\nreduce it to categories, and hand the finished grid to\n[`plotMatrix`](/kscript/functions/foreign-panes#plotmatrix) once.\n\n```javascript title=\"historical_returns.ks\" lines wrap\n//@version=3\n// ============================================================================\n//  MONTHLY RETURNS\n//  Month × year percentage returns rendered as a foreign-domain MATRIX pane\n//  (rows = years, columns = months) with AVG / MED / WIN% summary rows per\n//  month and the latest data month highlighted.\n//\n//  Computed from ONE source of truth: native daily history pinned to the\n//  newest rows (requestBars + anchor \"latest\"), which the host keeps live\n//  with a dedicated tail refresh. The grid is therefore identical on every\n//  chart interval, stable across historical pans, and free of chart-window\n//  freshness races; the live month's cell updates at the tail-refresh\n//  cadence. Return for month M = close(M) / close(M-1) - 1, where close(M)\n//  is the month's last daily close.\n// ============================================================================\ndefine(\"Monthly Returns\", \"offchart\", true)\n\n// The chart source only drives the bar timeline (isLastBar + re-runs); all\n// returns math reads the anchored daily history below.\ntimeseries d = source(\"ohlcv\", currentSymbol, currentExchange)\n\nif (isLastBar) {\n  // Three years of native daily bars, independent of the chart interval,\n  // loaded depth, and historical pans.\n  var rows = requestBars(currentSymbol, \"1d\", { bars: 1095, anchor: \"latest\" })\n\n  // A venue with no native daily data makes requestBars fall back to\n  // chart-interval rows. Detect that by the SMALLEST consecutive spacing\n  // (real dailies have ~1-day minimum steps even when weekends or halts\n  // leave larger gaps): multi-day fallback rows would mislabel months (a\n  // bar's close can land in the month after its open), so treat them as\n  // unusable rather than silently wrong. Intraday fallback rows bucket\n  // correctly by timestamp, just over shallower history.\n  if (rows.length > 1) {\n    var minStep = na\n    for (var i = 1; i \u003C rows.length; i = i + 1) {\n      var step = rows[i][0] - rows[i - 1][0]\n      if (isnum(minStep) == false || step \u003C minStep) {\n        minStep = step\n      }\n    }\n    if (isnum(minStep) && minStep > 129600000) {\n      rows = []\n    }\n  }\n\n  // Last daily close per calendar month, chronological: key = year*100+month.\n  var monthKeys = []\n  var monthCloses = []\n  for (var i = 0; i \u003C rows.length; i = i + 1) {\n    var c = rows[i][4]\n    if (isnum(c) && c > 0) {\n      var key = year(rows[i][0]) * 100 + month(rows[i][0])\n      if (monthKeys.length == 0 || monthKeys[monthKeys.length - 1] != key) {\n        monthKeys.push(key)\n        monthCloses.push(c)\n      } else {\n        monthCloses[monthCloses.length - 1] = c\n      }\n    }\n  }\n\n  if (monthKeys.length > 0) {\n    // Distinct years, chronological (months arrive in order).\n    var years = []\n    for (var i = 0; i \u003C monthKeys.length; i = i + 1) {\n      var y = math.floor(monthKeys[i] / 100)\n      if (years.length == 0 || years[years.length - 1] != y) {\n        years.push(y)\n      }\n    }\n\n    // Month-over-month % returns placed at [yearRow, monthCol]. Flat parallel\n    // arrays (value + calendar month) so the summary pass below can re-bucket.\n    // Ratio rows require strictly POSITIVE endpoints (the valid-only close\n    // scan above guarantees that).\n    var cells = []\n    var retVals = []\n    var retCols = []\n    for (var i = 1; i \u003C monthKeys.length; i = i + 1) {\n      var key = monthKeys[i]\n      var prevKey = monthKeys[i - 1]\n      // Calendar adjacency: a month with no valid close must not turn the\n      // next month's cell into a mislabeled multi-month move.\n      var expected = prevKey % 100 == 12 ? (math.floor(prevKey / 100) + 1) * 100 + 1 : prevKey + 1\n      if (key == expected) {\n        var ret = monthCloses[i] / monthCloses[i - 1] - 1\n        var row = years.indexOf(math.floor(key / 100))\n        var col = key % 100 - 1\n        cells.push([row, col, ret])\n        retVals.push(ret)\n        retCols.push(col)\n      }\n    }\n\n    // Summary rows: AVG / MED / WIN% of each calendar month's returns across\n    // years; months with no observations stay blank (na).\n    var avgRow = []\n    var medRow = []\n    var winRow = []\n    for (var m = 0; m \u003C 12; m = m + 1) {\n      var monthRets = []\n      for (var i = 0; i \u003C retVals.length; i = i + 1) {\n        if (retCols[i] == m) {\n          monthRets.push(retVals[i])\n        }\n      }\n      if (monthRets.length == 0) {\n        avgRow.push(na)\n        medRow.push(na)\n        winRow.push(na)\n      } else {\n        var sum = monthRets.reduce((acc, r) => acc + r, 0)\n        var wins = monthRets.filter((r) => r > 0)\n        var sorted = monthRets.slice(0, monthRets.length).sort()\n        var mid = math.floor(sorted.length / 2)\n        var med = sorted.length % 2 == 1 ? sorted[mid] : (sorted[mid - 1] + sorted[mid]) / 2\n        avgRow.push(sum / monthRets.length)\n        medRow.push(med)\n        winRow.push(wins.length / monthRets.length)\n      }\n    }\n\n    // Highlight the latest DATA month: the last daily bar's month is the one\n    // still forming.\n    var lastKey = monthKeys[monthKeys.length - 1]\n    plotMatrix(\n      data = cells,\n      rowLabels = years.map((y) => \"\".concat(y)),\n      colLabels = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n      format = \"percent\",\n      summary = [\n        { label: \"AVG\", values: avgRow },\n        { label: \"MED\", values: medRow },\n        { label: \"WIN%\", values: winRow }\n      ],\n      highlight = { row: years.indexOf(math.floor(lastKey / 100)), col: lastKey % 100 - 1 },\n      gridHeight = 0.3\n    )\n  }\n}\n```\n\n## How it works\n\n**One source of truth for the data.** The grid is computed from\n[`requestBars`](/kscript/core-concepts/multi-source) with `\"1d\"` and\n`anchor: \"latest\"`: three years of native daily bars pinned to the newest data,\nindependent of the chart's interval, its loaded depth, and wherever the user\nhas panned. That anchor is the whole trick. Without it, the request follows the\nchart window, and panning into history would silently rewrite last year's\nreturns. The chart source at the top only drives the bar timeline; nothing is\ncomputed from it.\n\n**Guard against fallback rows.** A venue with no native daily history makes\n`requestBars` fall back to chart-interval rows. Multi-day rows would mislabel\nmonths (a bar's close can land in the month after its open), so the script\nscans for the smallest consecutive bar spacing and discards the dataset when\nthat step is wider than 1.5 days. An empty dataset simply renders an empty\npane, which is honest; a silently mislabeled grid is not.\n\n**Reduce to month closes, then to returns.** One pass keeps the last valid\ndaily close per calendar month (key = `year * 100 + month`). The return for a\nmonth is its close over the previous month's close, minus one, and only\ncalendar-adjacent months produce a cell: if a month has no valid close, the\ngap stays a gap instead of turning the next cell into a mislabeled two-month\nmove. Each return lands at `[yearRow, monthCol, value]`, which is exactly the\ncell shape `plotMatrix` wants.\n\n**Summary rows and the highlight.** The three `summary` rows re-bucket the\nsame returns by calendar month across years: mean, median (via the\n[`sort()`](/kscript/core-concepts/collections) comparator-free numeric sort),\nand share of positive months. Months with no observations push `na`, which\nrenders as a blank summary cell. `highlight` pins the eye to the forming\nmonth: the last daily bar's year row and month column.\n\n**Emit once, from the last bar.** Foreign panes take the finished dataset in\none call, so everything runs inside `if (isLastBar)` and the script ends with\na single `plotMatrix(...)` carrying data, labels, `format = \"percent\"`,\nsummaries, the highlight, and a `gridHeight` of 0.3.\n\n## Customize it\n\n- **Depth.** `bars: 1095` is three years. Stretch it to five (`1825`) and the\n  grid simply grows more year rows; the caps are far away (64 rows).\n- **Weekly seasonality.** Re-key the bucketing on\n  [`weekOfYear`](/kscript/core-concepts/time-and-sessions) instead of month\n  and swap the column labels for week numbers.\n- **Win rate only.** Drop the AVG and MED rows and keep WIN%: the `summary`\n  argument takes one to five rows.\n- **Different formatting.** `format = \"percent\"` renders `0.047` as `+4.7%`.\n  Use `\"number\"` for raw ratios, and see the\n  [foreign-pane reference](/kscript/functions/foreign-panes#plotmatrix) for\n  the full argument surface, caps, and error messages.\n- **Pane height.** `gridHeight = 0.3` gives the pane 30% of the chart. Any\n  value in 0.1 to 0.8 works.\n\nThe same accumulate-then-emit pattern drives the other two pane kinds:\n[`plotCurve`](/kscript/functions/foreign-panes#plotcurve) for numeric-X\nfunction panes (volatility cones, return distributions) and\n[`plotTiles`](/kscript/functions/foreign-panes#plottiles) for KPI dashboards.\n",{"type":15,"children":16,"data":4563,"position":4565},"root",[17,104,105,121,122,165,166,211,212,3619,3620,3638,3639,3738,3739,3788,3789,3878,3879,3997,3998,4105,4106,4122,4123,4491,4492],{"type":18,"tagName":19,"properties":20,"children":25,"position":99},"element","div",{"className":21},[22,23,24],"flex","gap-3","mb-6",[26,38,67,73,92],{"type":27,"value":28,"position":29},"text","\n  ",{"start":30,"end":34},{"line":31,"column":32,"offset":33},1,30,29,{"line":35,"column":36,"offset":37},2,3,32,{"type":18,"tagName":39,"properties":40,"children":52,"position":62},"span",{"className":41},[42,43,44,45,46,47,48,49,50,51],"inline-flex","items-center","gap-1.5","px-3","py-1","rounded-full","bg-blue-50","text-blue-600","text-sm","font-medium",[53],{"type":27,"value":54,"position":55},"\n    Intermediate\n  ",{"start":56,"end":59},{"line":35,"column":57,"offset":58},118,147,{"line":60,"column":36,"offset":61},4,167,{"start":63,"end":64},{"line":35,"column":36,"offset":37},{"line":60,"column":65,"offset":66},10,174,{"type":27,"value":28,"position":68},{"start":69,"end":70},{"line":60,"column":65,"offset":66},{"line":71,"column":36,"offset":72},5,177,{"type":18,"tagName":39,"properties":74,"children":78,"position":88},{"className":75},[42,43,44,45,46,47,76,77,50,51],"bg-gray-100","text-gray-600",[79],{"type":27,"value":80,"position":81},"\n    6 min read\n  ",{"start":82,"end":85},{"line":71,"column":83,"offset":84},119,293,{"line":86,"column":36,"offset":87},7,311,{"start":89,"end":90},{"line":71,"column":36,"offset":72},{"line":86,"column":65,"offset":91},318,{"type":27,"value":93,"position":94},"\n",{"start":95,"end":96},{"line":86,"column":65,"offset":91},{"line":97,"column":31,"offset":98},8,319,{"start":100,"end":102},{"line":31,"column":31,"offset":101},0,{"line":97,"column":86,"offset":103},325,{"type":27,"value":93},{"type":18,"tagName":106,"properties":107,"children":109,"position":117},"h1",{"id":108},"historical-returns-matrix",[110],{"type":27,"value":7,"position":111},{"start":112,"end":114},{"line":65,"column":36,"offset":113},329,{"line":65,"column":115,"offset":116},28,354,{"start":118,"end":120},{"line":65,"column":31,"offset":119},327,{"line":65,"column":115,"offset":116},{"type":27,"value":93},{"type":18,"tagName":123,"properties":124,"children":125,"position":162},"p",{},[126,135,154],{"type":27,"value":127,"position":128},"The classic seasonality table: every month's percentage return, laid out as a\ngrid with one row per year and one column per month, plus three summary rows\n(average, median, and win rate per calendar month) and the still-forming month\nhighlighted. It renders in a ",{"start":129,"end":132},{"line":130,"column":31,"offset":131},12,356,{"line":133,"column":32,"offset":134},15,619,{"type":18,"tagName":136,"properties":137,"children":139,"position":149},"a",{"href":138},"/kscript/functions/foreign-panes",[140],{"type":27,"value":141,"position":142},"foreign-domain pane",{"start":143,"end":146},{"line":133,"column":144,"offset":145},31,620,{"line":133,"column":147,"offset":148},50,639,{"start":150,"end":151},{"line":133,"column":32,"offset":134},{"line":133,"column":152,"offset":153},85,674,{"type":27,"value":155,"position":156},",\nso the grid ignores time pan and zoom entirely and looks identical whether the\nchart is on 1m or 1w.",{"start":157,"end":158},{"line":133,"column":152,"offset":153},{"line":159,"column":160,"offset":161},17,22,776,{"start":163,"end":164},{"line":130,"column":31,"offset":131},{"line":159,"column":160,"offset":161},{"type":27,"value":93},{"type":18,"tagName":123,"properties":167,"children":168,"position":208},{},[169,177,201],{"type":27,"value":170,"position":171},"This recipe is also the shortest path to understanding the foreign-pane\nworkflow end to end: pull a dataset that does not depend on the chart window,\nreduce it to categories, and hand the finished grid to\n",{"start":172,"end":175},{"line":173,"column":31,"offset":174},19,778,{"line":160,"column":31,"offset":176},983,{"type":18,"tagName":136,"properties":178,"children":180,"position":196},{"href":179},"/kscript/functions/foreign-panes#plotmatrix",[181],{"type":18,"tagName":182,"properties":183,"children":184,"position":193},"code",{},[185],{"type":27,"value":186,"position":187},"plotMatrix",{"start":188,"end":190},{"line":160,"column":35,"offset":189},984,{"line":160,"column":191,"offset":192},14,996,{"start":194,"end":195},{"line":160,"column":35,"offset":189},{"line":160,"column":191,"offset":192},{"start":197,"end":198},{"line":160,"column":31,"offset":176},{"line":160,"column":199,"offset":200},60,1042,{"type":27,"value":202,"position":203}," once.",{"start":204,"end":205},{"line":160,"column":199,"offset":200},{"line":160,"column":206,"offset":207},66,1048,{"start":209,"end":210},{"line":173,"column":31,"offset":174},{"line":160,"column":206,"offset":207},{"type":27,"value":93},{"type":15,"children":213},[214],{"type":18,"tagName":215,"properties":216,"children":221,"data":-1},"pre",{"class":217,"style":218,"tabindex":219,"title":220},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0","historical_returns.ks",[222],{"type":18,"tagName":182,"properties":223,"children":224},{},[225,235,236,244,245,253,254,262,263,271,272,280,281,289,290,298,299,307,308,316,317,325,326,334,335,343,344,352,353,360,361,407,408,411,412,420,421,429,430,463,464,467,468,481,482,490,491,499,500,557,558,561,562,570,571,579,580,588,589,597,598,606,607,615,616,624,625,658,659,681,682,757,758,821,822,872,873,890,891,899,900,908,909,952,953,970,971,978,979,987,988,991,992,1000,1001,1021,1022,1042,1043,1112,1113,1142,1143,1183,1184,1252,1253,1314,1315,1333,1334,1351,1352,1370,1371,1404,1405,1412,1413,1420,1421,1428,1429,1432,1433,1460,1461,1469,1470,1490,1491,1559,1560,1604,1605,1663,1664,1681,1682,1689,1690,1697,1698,1701,1702,1710,1711,1719,1720,1728,1729,1737,1738,1758,1759,1779,1780,1800,1801,1868,1869,1889,1890,1923,1924,1932,1933,1941,1942,2057,2058,2079,2080,2131,2132,2185,2186,2222,2223,2240,2241,2258,2259,2276,2277,2284,2285,2292,2293,2296,2297,2305,2306,2314,2315,2335,2336,2356,2357,2377,2378,2443,2444,2464,2465,2534,2535,2557,2558,2575,2576,2584,2585,2592,2593,2621,2622,2639,2640,2656,2657,2673,2674,2689,2690,2767,2768,2826,2827,2884,2885,2932,2933,3023,3024,3056,3057,3073,3074,3110,3111,3118,3119,3126,3127,3130,3131,3139,3140,3148,3149,3185,3186,3198,3199,3216,3217,3275,3276,3402,3403,3425,3426,3442,3443,3461,3462,3479,3480,3497,3498,3506,3507,3575,3576,3593,3594,3602,3603,3610,3611],{"type":18,"tagName":39,"properties":226,"children":228},{"class":227},"line",[229],{"type":18,"tagName":39,"properties":230,"children":232},{"style":231},"--shiki-dark:#6A737D;--shiki-light:#6A737D",[233],{"type":27,"value":234},"//@version=3",{"type":27,"value":93},{"type":18,"tagName":39,"properties":237,"children":238},{"class":227},[239],{"type":18,"tagName":39,"properties":240,"children":241},{"style":231},[242],{"type":27,"value":243},"// ============================================================================",{"type":27,"value":93},{"type":18,"tagName":39,"properties":246,"children":247},{"class":227},[248],{"type":18,"tagName":39,"properties":249,"children":250},{"style":231},[251],{"type":27,"value":252},"//  MONTHLY RETURNS",{"type":27,"value":93},{"type":18,"tagName":39,"properties":255,"children":256},{"class":227},[257],{"type":18,"tagName":39,"properties":258,"children":259},{"style":231},[260],{"type":27,"value":261},"//  Month × year percentage returns rendered as a foreign-domain MATRIX pane",{"type":27,"value":93},{"type":18,"tagName":39,"properties":264,"children":265},{"class":227},[266],{"type":18,"tagName":39,"properties":267,"children":268},{"style":231},[269],{"type":27,"value":270},"//  (rows = years, columns = months) with AVG / MED / WIN% summary rows per",{"type":27,"value":93},{"type":18,"tagName":39,"properties":273,"children":274},{"class":227},[275],{"type":18,"tagName":39,"properties":276,"children":277},{"style":231},[278],{"type":27,"value":279},"//  month and the latest data month highlighted.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":282,"children":283},{"class":227},[284],{"type":18,"tagName":39,"properties":285,"children":286},{"style":231},[287],{"type":27,"value":288},"//",{"type":27,"value":93},{"type":18,"tagName":39,"properties":291,"children":292},{"class":227},[293],{"type":18,"tagName":39,"properties":294,"children":295},{"style":231},[296],{"type":27,"value":297},"//  Computed from ONE source of truth: native daily history pinned to the",{"type":27,"value":93},{"type":18,"tagName":39,"properties":300,"children":301},{"class":227},[302],{"type":18,"tagName":39,"properties":303,"children":304},{"style":231},[305],{"type":27,"value":306},"//  newest rows (requestBars + anchor \"latest\"), which the host keeps live",{"type":27,"value":93},{"type":18,"tagName":39,"properties":309,"children":310},{"class":227},[311],{"type":18,"tagName":39,"properties":312,"children":313},{"style":231},[314],{"type":27,"value":315},"//  with a dedicated tail refresh. The grid is therefore identical on every",{"type":27,"value":93},{"type":18,"tagName":39,"properties":318,"children":319},{"class":227},[320],{"type":18,"tagName":39,"properties":321,"children":322},{"style":231},[323],{"type":27,"value":324},"//  chart interval, stable across historical pans, and free of chart-window",{"type":27,"value":93},{"type":18,"tagName":39,"properties":327,"children":328},{"class":227},[329],{"type":18,"tagName":39,"properties":330,"children":331},{"style":231},[332],{"type":27,"value":333},"//  freshness races; the live month's cell updates at the tail-refresh",{"type":27,"value":93},{"type":18,"tagName":39,"properties":336,"children":337},{"class":227},[338],{"type":18,"tagName":39,"properties":339,"children":340},{"style":231},[341],{"type":27,"value":342},"//  cadence. Return for month M = close(M) / close(M-1) - 1, where close(M)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":345,"children":346},{"class":227},[347],{"type":18,"tagName":39,"properties":348,"children":349},{"style":231},[350],{"type":27,"value":351},"//  is the month's last daily close.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":354,"children":355},{"class":227},[356],{"type":18,"tagName":39,"properties":357,"children":358},{"style":231},[359],{"type":27,"value":243},{"type":27,"value":93},{"type":18,"tagName":39,"properties":362,"children":363},{"class":227},[364,370,376,382,387,392,396,402],{"type":18,"tagName":39,"properties":365,"children":367},{"style":366},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[368],{"type":27,"value":369},"define",{"type":18,"tagName":39,"properties":371,"children":373},{"style":372},"--shiki-dark:#E1E4E8;--shiki-light:#24292E",[374],{"type":27,"value":375},"(",{"type":18,"tagName":39,"properties":377,"children":379},{"style":378},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[380],{"type":27,"value":381},"\"Monthly Returns\"",{"type":18,"tagName":39,"properties":383,"children":384},{"style":372},[385],{"type":27,"value":386},", ",{"type":18,"tagName":39,"properties":388,"children":389},{"style":378},[390],{"type":27,"value":391},"\"offchart\"",{"type":18,"tagName":39,"properties":393,"children":394},{"style":372},[395],{"type":27,"value":386},{"type":18,"tagName":39,"properties":397,"children":399},{"style":398},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[400],{"type":27,"value":401},"true",{"type":18,"tagName":39,"properties":403,"children":404},{"style":372},[405],{"type":27,"value":406},")",{"type":27,"value":93},{"type":18,"tagName":39,"properties":409,"children":410},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":413,"children":414},{"class":227},[415],{"type":18,"tagName":39,"properties":416,"children":417},{"style":231},[418],{"type":27,"value":419},"// The chart source only drives the bar timeline (isLastBar + re-runs); all",{"type":27,"value":93},{"type":18,"tagName":39,"properties":422,"children":423},{"class":227},[424],{"type":18,"tagName":39,"properties":425,"children":426},{"style":231},[427],{"type":27,"value":428},"// returns math reads the anchored daily history below.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":431,"children":432},{"class":227},[433,438,444,449,453,458],{"type":18,"tagName":39,"properties":434,"children":435},{"style":372},[436],{"type":27,"value":437},"timeseries d ",{"type":18,"tagName":39,"properties":439,"children":441},{"style":440},"--shiki-dark:#F97583;--shiki-light:#D73A49",[442],{"type":27,"value":443},"=",{"type":18,"tagName":39,"properties":445,"children":446},{"style":366},[447],{"type":27,"value":448}," source",{"type":18,"tagName":39,"properties":450,"children":451},{"style":372},[452],{"type":27,"value":375},{"type":18,"tagName":39,"properties":454,"children":455},{"style":378},[456],{"type":27,"value":457},"\"ohlcv\"",{"type":18,"tagName":39,"properties":459,"children":460},{"style":372},[461],{"type":27,"value":462},", currentSymbol, currentExchange)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":465,"children":466},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":469,"children":470},{"class":227},[471,476],{"type":18,"tagName":39,"properties":472,"children":473},{"style":440},[474],{"type":27,"value":475},"if",{"type":18,"tagName":39,"properties":477,"children":478},{"style":372},[479],{"type":27,"value":480}," (isLastBar) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":483,"children":484},{"class":227},[485],{"type":18,"tagName":39,"properties":486,"children":487},{"style":231},[488],{"type":27,"value":489},"  // Three years of native daily bars, independent of the chart interval,",{"type":27,"value":93},{"type":18,"tagName":39,"properties":492,"children":493},{"class":227},[494],{"type":18,"tagName":39,"properties":495,"children":496},{"style":231},[497],{"type":27,"value":498},"  // loaded depth, and historical pans.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":501,"children":502},{"class":227},[503,508,513,517,522,527,532,537,542,547,552],{"type":18,"tagName":39,"properties":504,"children":505},{"style":440},[506],{"type":27,"value":507},"  var",{"type":18,"tagName":39,"properties":509,"children":510},{"style":372},[511],{"type":27,"value":512}," rows ",{"type":18,"tagName":39,"properties":514,"children":515},{"style":440},[516],{"type":27,"value":443},{"type":18,"tagName":39,"properties":518,"children":519},{"style":366},[520],{"type":27,"value":521}," requestBars",{"type":18,"tagName":39,"properties":523,"children":524},{"style":372},[525],{"type":27,"value":526},"(currentSymbol, ",{"type":18,"tagName":39,"properties":528,"children":529},{"style":378},[530],{"type":27,"value":531},"\"1d\"",{"type":18,"tagName":39,"properties":533,"children":534},{"style":372},[535],{"type":27,"value":536},", { bars: ",{"type":18,"tagName":39,"properties":538,"children":539},{"style":398},[540],{"type":27,"value":541},"1095",{"type":18,"tagName":39,"properties":543,"children":544},{"style":372},[545],{"type":27,"value":546},", anchor: ",{"type":18,"tagName":39,"properties":548,"children":549},{"style":378},[550],{"type":27,"value":551},"\"latest\"",{"type":18,"tagName":39,"properties":553,"children":554},{"style":372},[555],{"type":27,"value":556}," })",{"type":27,"value":93},{"type":18,"tagName":39,"properties":559,"children":560},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":563,"children":564},{"class":227},[565],{"type":18,"tagName":39,"properties":566,"children":567},{"style":231},[568],{"type":27,"value":569},"  // A venue with no native daily data makes requestBars fall back to",{"type":27,"value":93},{"type":18,"tagName":39,"properties":572,"children":573},{"class":227},[574],{"type":18,"tagName":39,"properties":575,"children":576},{"style":231},[577],{"type":27,"value":578},"  // chart-interval rows. Detect that by the SMALLEST consecutive spacing",{"type":27,"value":93},{"type":18,"tagName":39,"properties":581,"children":582},{"class":227},[583],{"type":18,"tagName":39,"properties":584,"children":585},{"style":231},[586],{"type":27,"value":587},"  // (real dailies have ~1-day minimum steps even when weekends or halts",{"type":27,"value":93},{"type":18,"tagName":39,"properties":590,"children":591},{"class":227},[592],{"type":18,"tagName":39,"properties":593,"children":594},{"style":231},[595],{"type":27,"value":596},"  // leave larger gaps): multi-day fallback rows would mislabel months (a",{"type":27,"value":93},{"type":18,"tagName":39,"properties":599,"children":600},{"class":227},[601],{"type":18,"tagName":39,"properties":602,"children":603},{"style":231},[604],{"type":27,"value":605},"  // bar's close can land in the month after its open), so treat them as",{"type":27,"value":93},{"type":18,"tagName":39,"properties":608,"children":609},{"class":227},[610],{"type":18,"tagName":39,"properties":611,"children":612},{"style":231},[613],{"type":27,"value":614},"  // unusable rather than silently wrong. Intraday fallback rows bucket",{"type":27,"value":93},{"type":18,"tagName":39,"properties":617,"children":618},{"class":227},[619],{"type":18,"tagName":39,"properties":620,"children":621},{"style":231},[622],{"type":27,"value":623},"  // correctly by timestamp, just over shallower history.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":626,"children":627},{"class":227},[628,633,638,643,648,653],{"type":18,"tagName":39,"properties":629,"children":630},{"style":440},[631],{"type":27,"value":632},"  if",{"type":18,"tagName":39,"properties":634,"children":635},{"style":372},[636],{"type":27,"value":637}," (rows.",{"type":18,"tagName":39,"properties":639,"children":640},{"style":398},[641],{"type":27,"value":642},"length",{"type":18,"tagName":39,"properties":644,"children":645},{"style":440},[646],{"type":27,"value":647}," >",{"type":18,"tagName":39,"properties":649,"children":650},{"style":398},[651],{"type":27,"value":652}," 1",{"type":18,"tagName":39,"properties":654,"children":655},{"style":372},[656],{"type":27,"value":657},") {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":660,"children":661},{"class":227},[662,667,672,676],{"type":18,"tagName":39,"properties":663,"children":664},{"style":440},[665],{"type":27,"value":666},"    var",{"type":18,"tagName":39,"properties":668,"children":669},{"style":372},[670],{"type":27,"value":671}," minStep ",{"type":18,"tagName":39,"properties":673,"children":674},{"style":440},[675],{"type":27,"value":443},{"type":18,"tagName":39,"properties":677,"children":678},{"style":372},[679],{"type":27,"value":680}," na",{"type":27,"value":93},{"type":18,"tagName":39,"properties":683,"children":684},{"class":227},[685,690,695,700,705,709,713,718,723,728,732,736,740,744,749,753],{"type":18,"tagName":39,"properties":686,"children":687},{"style":440},[688],{"type":27,"value":689},"    for",{"type":18,"tagName":39,"properties":691,"children":692},{"style":372},[693],{"type":27,"value":694}," (",{"type":18,"tagName":39,"properties":696,"children":697},{"style":440},[698],{"type":27,"value":699},"var",{"type":18,"tagName":39,"properties":701,"children":702},{"style":372},[703],{"type":27,"value":704}," i ",{"type":18,"tagName":39,"properties":706,"children":707},{"style":440},[708],{"type":27,"value":443},{"type":18,"tagName":39,"properties":710,"children":711},{"style":398},[712],{"type":27,"value":652},{"type":18,"tagName":39,"properties":714,"children":715},{"style":372},[716],{"type":27,"value":717},"; i ",{"type":18,"tagName":39,"properties":719,"children":720},{"style":440},[721],{"type":27,"value":722},"\u003C",{"type":18,"tagName":39,"properties":724,"children":725},{"style":372},[726],{"type":27,"value":727}," rows.",{"type":18,"tagName":39,"properties":729,"children":730},{"style":398},[731],{"type":27,"value":642},{"type":18,"tagName":39,"properties":733,"children":734},{"style":372},[735],{"type":27,"value":717},{"type":18,"tagName":39,"properties":737,"children":738},{"style":440},[739],{"type":27,"value":443},{"type":18,"tagName":39,"properties":741,"children":742},{"style":372},[743],{"type":27,"value":704},{"type":18,"tagName":39,"properties":745,"children":746},{"style":440},[747],{"type":27,"value":748},"+",{"type":18,"tagName":39,"properties":750,"children":751},{"style":398},[752],{"type":27,"value":652},{"type":18,"tagName":39,"properties":754,"children":755},{"style":372},[756],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":759,"children":760},{"class":227},[761,766,771,775,780,784,789,794,799,803,807,812,816],{"type":18,"tagName":39,"properties":762,"children":763},{"style":440},[764],{"type":27,"value":765},"      var",{"type":18,"tagName":39,"properties":767,"children":768},{"style":372},[769],{"type":27,"value":770}," step ",{"type":18,"tagName":39,"properties":772,"children":773},{"style":440},[774],{"type":27,"value":443},{"type":18,"tagName":39,"properties":776,"children":777},{"style":372},[778],{"type":27,"value":779}," rows[i][",{"type":18,"tagName":39,"properties":781,"children":782},{"style":398},[783],{"type":27,"value":219},{"type":18,"tagName":39,"properties":785,"children":786},{"style":372},[787],{"type":27,"value":788},"] ",{"type":18,"tagName":39,"properties":790,"children":791},{"style":440},[792],{"type":27,"value":793},"-",{"type":18,"tagName":39,"properties":795,"children":796},{"style":372},[797],{"type":27,"value":798}," rows[i ",{"type":18,"tagName":39,"properties":800,"children":801},{"style":440},[802],{"type":27,"value":793},{"type":18,"tagName":39,"properties":804,"children":805},{"style":398},[806],{"type":27,"value":652},{"type":18,"tagName":39,"properties":808,"children":809},{"style":372},[810],{"type":27,"value":811},"][",{"type":18,"tagName":39,"properties":813,"children":814},{"style":398},[815],{"type":27,"value":219},{"type":18,"tagName":39,"properties":817,"children":818},{"style":372},[819],{"type":27,"value":820},"]",{"type":27,"value":93},{"type":18,"tagName":39,"properties":823,"children":824},{"class":227},[825,830,834,839,844,849,854,859,863,867],{"type":18,"tagName":39,"properties":826,"children":827},{"style":440},[828],{"type":27,"value":829},"      if",{"type":18,"tagName":39,"properties":831,"children":832},{"style":372},[833],{"type":27,"value":694},{"type":18,"tagName":39,"properties":835,"children":836},{"style":366},[837],{"type":27,"value":838},"isnum",{"type":18,"tagName":39,"properties":840,"children":841},{"style":372},[842],{"type":27,"value":843},"(minStep) ",{"type":18,"tagName":39,"properties":845,"children":846},{"style":440},[847],{"type":27,"value":848},"==",{"type":18,"tagName":39,"properties":850,"children":851},{"style":398},[852],{"type":27,"value":853}," false",{"type":18,"tagName":39,"properties":855,"children":856},{"style":440},[857],{"type":27,"value":858}," ||",{"type":18,"tagName":39,"properties":860,"children":861},{"style":372},[862],{"type":27,"value":770},{"type":18,"tagName":39,"properties":864,"children":865},{"style":440},[866],{"type":27,"value":722},{"type":18,"tagName":39,"properties":868,"children":869},{"style":372},[870],{"type":27,"value":871}," minStep) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":874,"children":875},{"class":227},[876,881,885],{"type":18,"tagName":39,"properties":877,"children":878},{"style":372},[879],{"type":27,"value":880},"        minStep ",{"type":18,"tagName":39,"properties":882,"children":883},{"style":440},[884],{"type":27,"value":443},{"type":18,"tagName":39,"properties":886,"children":887},{"style":372},[888],{"type":27,"value":889}," step",{"type":27,"value":93},{"type":18,"tagName":39,"properties":892,"children":893},{"class":227},[894],{"type":18,"tagName":39,"properties":895,"children":896},{"style":372},[897],{"type":27,"value":898},"      }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":901,"children":902},{"class":227},[903],{"type":18,"tagName":39,"properties":904,"children":905},{"style":372},[906],{"type":27,"value":907},"    }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":910,"children":911},{"class":227},[912,917,921,925,929,934,938,943,948],{"type":18,"tagName":39,"properties":913,"children":914},{"style":440},[915],{"type":27,"value":916},"    if",{"type":18,"tagName":39,"properties":918,"children":919},{"style":372},[920],{"type":27,"value":694},{"type":18,"tagName":39,"properties":922,"children":923},{"style":366},[924],{"type":27,"value":838},{"type":18,"tagName":39,"properties":926,"children":927},{"style":372},[928],{"type":27,"value":843},{"type":18,"tagName":39,"properties":930,"children":931},{"style":440},[932],{"type":27,"value":933},"&&",{"type":18,"tagName":39,"properties":935,"children":936},{"style":372},[937],{"type":27,"value":671},{"type":18,"tagName":39,"properties":939,"children":940},{"style":440},[941],{"type":27,"value":942},">",{"type":18,"tagName":39,"properties":944,"children":945},{"style":398},[946],{"type":27,"value":947}," 129600000",{"type":18,"tagName":39,"properties":949,"children":950},{"style":372},[951],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":954,"children":955},{"class":227},[956,961,965],{"type":18,"tagName":39,"properties":957,"children":958},{"style":372},[959],{"type":27,"value":960},"      rows ",{"type":18,"tagName":39,"properties":962,"children":963},{"style":440},[964],{"type":27,"value":443},{"type":18,"tagName":39,"properties":966,"children":967},{"style":372},[968],{"type":27,"value":969}," []",{"type":27,"value":93},{"type":18,"tagName":39,"properties":972,"children":973},{"class":227},[974],{"type":18,"tagName":39,"properties":975,"children":976},{"style":372},[977],{"type":27,"value":907},{"type":27,"value":93},{"type":18,"tagName":39,"properties":980,"children":981},{"class":227},[982],{"type":18,"tagName":39,"properties":983,"children":984},{"style":372},[985],{"type":27,"value":986},"  }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":989,"children":990},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":993,"children":994},{"class":227},[995],{"type":18,"tagName":39,"properties":996,"children":997},{"style":231},[998],{"type":27,"value":999},"  // Last daily close per calendar month, chronological: key = year*100+month.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1002,"children":1003},{"class":227},[1004,1008,1013,1017],{"type":18,"tagName":39,"properties":1005,"children":1006},{"style":440},[1007],{"type":27,"value":507},{"type":18,"tagName":39,"properties":1009,"children":1010},{"style":372},[1011],{"type":27,"value":1012}," monthKeys ",{"type":18,"tagName":39,"properties":1014,"children":1015},{"style":440},[1016],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1018,"children":1019},{"style":372},[1020],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1023,"children":1024},{"class":227},[1025,1029,1034,1038],{"type":18,"tagName":39,"properties":1026,"children":1027},{"style":440},[1028],{"type":27,"value":507},{"type":18,"tagName":39,"properties":1030,"children":1031},{"style":372},[1032],{"type":27,"value":1033}," monthCloses ",{"type":18,"tagName":39,"properties":1035,"children":1036},{"style":440},[1037],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1039,"children":1040},{"style":372},[1041],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1044,"children":1045},{"class":227},[1046,1051,1055,1059,1063,1067,1072,1076,1080,1084,1088,1092,1096,1100,1104,1108],{"type":18,"tagName":39,"properties":1047,"children":1048},{"style":440},[1049],{"type":27,"value":1050},"  for",{"type":18,"tagName":39,"properties":1052,"children":1053},{"style":372},[1054],{"type":27,"value":694},{"type":18,"tagName":39,"properties":1056,"children":1057},{"style":440},[1058],{"type":27,"value":699},{"type":18,"tagName":39,"properties":1060,"children":1061},{"style":372},[1062],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1064,"children":1065},{"style":440},[1066],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1068,"children":1069},{"style":398},[1070],{"type":27,"value":1071}," 0",{"type":18,"tagName":39,"properties":1073,"children":1074},{"style":372},[1075],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1077,"children":1078},{"style":440},[1079],{"type":27,"value":722},{"type":18,"tagName":39,"properties":1081,"children":1082},{"style":372},[1083],{"type":27,"value":727},{"type":18,"tagName":39,"properties":1085,"children":1086},{"style":398},[1087],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1089,"children":1090},{"style":372},[1091],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1093,"children":1094},{"style":440},[1095],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1097,"children":1098},{"style":372},[1099],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1101,"children":1102},{"style":440},[1103],{"type":27,"value":748},{"type":18,"tagName":39,"properties":1105,"children":1106},{"style":398},[1107],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1109,"children":1110},{"style":372},[1111],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1114,"children":1115},{"class":227},[1116,1120,1125,1129,1133,1138],{"type":18,"tagName":39,"properties":1117,"children":1118},{"style":440},[1119],{"type":27,"value":666},{"type":18,"tagName":39,"properties":1121,"children":1122},{"style":372},[1123],{"type":27,"value":1124}," c ",{"type":18,"tagName":39,"properties":1126,"children":1127},{"style":440},[1128],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1130,"children":1131},{"style":372},[1132],{"type":27,"value":779},{"type":18,"tagName":39,"properties":1134,"children":1135},{"style":398},[1136],{"type":27,"value":1137},"4",{"type":18,"tagName":39,"properties":1139,"children":1140},{"style":372},[1141],{"type":27,"value":820},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1144,"children":1145},{"class":227},[1146,1150,1154,1158,1163,1167,1171,1175,1179],{"type":18,"tagName":39,"properties":1147,"children":1148},{"style":440},[1149],{"type":27,"value":916},{"type":18,"tagName":39,"properties":1151,"children":1152},{"style":372},[1153],{"type":27,"value":694},{"type":18,"tagName":39,"properties":1155,"children":1156},{"style":366},[1157],{"type":27,"value":838},{"type":18,"tagName":39,"properties":1159,"children":1160},{"style":372},[1161],{"type":27,"value":1162},"(c) ",{"type":18,"tagName":39,"properties":1164,"children":1165},{"style":440},[1166],{"type":27,"value":933},{"type":18,"tagName":39,"properties":1168,"children":1169},{"style":372},[1170],{"type":27,"value":1124},{"type":18,"tagName":39,"properties":1172,"children":1173},{"style":440},[1174],{"type":27,"value":942},{"type":18,"tagName":39,"properties":1176,"children":1177},{"style":398},[1178],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":1180,"children":1181},{"style":372},[1182],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1185,"children":1186},{"class":227},[1187,1191,1196,1200,1205,1210,1214,1219,1224,1229,1234,1239,1243,1247],{"type":18,"tagName":39,"properties":1188,"children":1189},{"style":440},[1190],{"type":27,"value":765},{"type":18,"tagName":39,"properties":1192,"children":1193},{"style":372},[1194],{"type":27,"value":1195}," key ",{"type":18,"tagName":39,"properties":1197,"children":1198},{"style":440},[1199],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1201,"children":1202},{"style":366},[1203],{"type":27,"value":1204}," year",{"type":18,"tagName":39,"properties":1206,"children":1207},{"style":372},[1208],{"type":27,"value":1209},"(rows[i][",{"type":18,"tagName":39,"properties":1211,"children":1212},{"style":398},[1213],{"type":27,"value":219},{"type":18,"tagName":39,"properties":1215,"children":1216},{"style":372},[1217],{"type":27,"value":1218},"]) ",{"type":18,"tagName":39,"properties":1220,"children":1221},{"style":440},[1222],{"type":27,"value":1223},"*",{"type":18,"tagName":39,"properties":1225,"children":1226},{"style":398},[1227],{"type":27,"value":1228}," 100",{"type":18,"tagName":39,"properties":1230,"children":1231},{"style":440},[1232],{"type":27,"value":1233}," +",{"type":18,"tagName":39,"properties":1235,"children":1236},{"style":366},[1237],{"type":27,"value":1238}," month",{"type":18,"tagName":39,"properties":1240,"children":1241},{"style":372},[1242],{"type":27,"value":1209},{"type":18,"tagName":39,"properties":1244,"children":1245},{"style":398},[1246],{"type":27,"value":219},{"type":18,"tagName":39,"properties":1248,"children":1249},{"style":372},[1250],{"type":27,"value":1251},"])",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1254,"children":1255},{"class":227},[1256,1260,1265,1269,1274,1278,1282,1287,1291,1296,1300,1304,1309],{"type":18,"tagName":39,"properties":1257,"children":1258},{"style":440},[1259],{"type":27,"value":829},{"type":18,"tagName":39,"properties":1261,"children":1262},{"style":372},[1263],{"type":27,"value":1264}," (monthKeys.",{"type":18,"tagName":39,"properties":1266,"children":1267},{"style":398},[1268],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1270,"children":1271},{"style":440},[1272],{"type":27,"value":1273}," ==",{"type":18,"tagName":39,"properties":1275,"children":1276},{"style":398},[1277],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":1279,"children":1280},{"style":440},[1281],{"type":27,"value":858},{"type":18,"tagName":39,"properties":1283,"children":1284},{"style":372},[1285],{"type":27,"value":1286}," monthKeys[monthKeys.",{"type":18,"tagName":39,"properties":1288,"children":1289},{"style":398},[1290],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1292,"children":1293},{"style":440},[1294],{"type":27,"value":1295}," -",{"type":18,"tagName":39,"properties":1297,"children":1298},{"style":398},[1299],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1301,"children":1302},{"style":372},[1303],{"type":27,"value":788},{"type":18,"tagName":39,"properties":1305,"children":1306},{"style":440},[1307],{"type":27,"value":1308},"!=",{"type":18,"tagName":39,"properties":1310,"children":1311},{"style":372},[1312],{"type":27,"value":1313}," key) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1316,"children":1317},{"class":227},[1318,1323,1328],{"type":18,"tagName":39,"properties":1319,"children":1320},{"style":372},[1321],{"type":27,"value":1322},"        monthKeys.",{"type":18,"tagName":39,"properties":1324,"children":1325},{"style":366},[1326],{"type":27,"value":1327},"push",{"type":18,"tagName":39,"properties":1329,"children":1330},{"style":372},[1331],{"type":27,"value":1332},"(key)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1335,"children":1336},{"class":227},[1337,1342,1346],{"type":18,"tagName":39,"properties":1338,"children":1339},{"style":372},[1340],{"type":27,"value":1341},"        monthCloses.",{"type":18,"tagName":39,"properties":1343,"children":1344},{"style":366},[1345],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":1347,"children":1348},{"style":372},[1349],{"type":27,"value":1350},"(c)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1353,"children":1354},{"class":227},[1355,1360,1365],{"type":18,"tagName":39,"properties":1356,"children":1357},{"style":372},[1358],{"type":27,"value":1359},"      } ",{"type":18,"tagName":39,"properties":1361,"children":1362},{"style":440},[1363],{"type":27,"value":1364},"else",{"type":18,"tagName":39,"properties":1366,"children":1367},{"style":372},[1368],{"type":27,"value":1369}," {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1372,"children":1373},{"class":227},[1374,1379,1383,1387,1391,1395,1399],{"type":18,"tagName":39,"properties":1375,"children":1376},{"style":372},[1377],{"type":27,"value":1378},"        monthCloses[monthCloses.",{"type":18,"tagName":39,"properties":1380,"children":1381},{"style":398},[1382],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1384,"children":1385},{"style":440},[1386],{"type":27,"value":1295},{"type":18,"tagName":39,"properties":1388,"children":1389},{"style":398},[1390],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1392,"children":1393},{"style":372},[1394],{"type":27,"value":788},{"type":18,"tagName":39,"properties":1396,"children":1397},{"style":440},[1398],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1400,"children":1401},{"style":372},[1402],{"type":27,"value":1403}," c",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1406,"children":1407},{"class":227},[1408],{"type":18,"tagName":39,"properties":1409,"children":1410},{"style":372},[1411],{"type":27,"value":898},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1414,"children":1415},{"class":227},[1416],{"type":18,"tagName":39,"properties":1417,"children":1418},{"style":372},[1419],{"type":27,"value":907},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1422,"children":1423},{"class":227},[1424],{"type":18,"tagName":39,"properties":1425,"children":1426},{"style":372},[1427],{"type":27,"value":986},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1430,"children":1431},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":1434,"children":1435},{"class":227},[1436,1440,1444,1448,1452,1456],{"type":18,"tagName":39,"properties":1437,"children":1438},{"style":440},[1439],{"type":27,"value":632},{"type":18,"tagName":39,"properties":1441,"children":1442},{"style":372},[1443],{"type":27,"value":1264},{"type":18,"tagName":39,"properties":1445,"children":1446},{"style":398},[1447],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1449,"children":1450},{"style":440},[1451],{"type":27,"value":647},{"type":18,"tagName":39,"properties":1453,"children":1454},{"style":398},[1455],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":1457,"children":1458},{"style":372},[1459],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1462,"children":1463},{"class":227},[1464],{"type":18,"tagName":39,"properties":1465,"children":1466},{"style":231},[1467],{"type":27,"value":1468},"    // Distinct years, chronological (months arrive in order).",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1471,"children":1472},{"class":227},[1473,1477,1482,1486],{"type":18,"tagName":39,"properties":1474,"children":1475},{"style":440},[1476],{"type":27,"value":666},{"type":18,"tagName":39,"properties":1478,"children":1479},{"style":372},[1480],{"type":27,"value":1481}," years ",{"type":18,"tagName":39,"properties":1483,"children":1484},{"style":440},[1485],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1487,"children":1488},{"style":372},[1489],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1492,"children":1493},{"class":227},[1494,1498,1502,1506,1510,1514,1518,1522,1526,1531,1535,1539,1543,1547,1551,1555],{"type":18,"tagName":39,"properties":1495,"children":1496},{"style":440},[1497],{"type":27,"value":689},{"type":18,"tagName":39,"properties":1499,"children":1500},{"style":372},[1501],{"type":27,"value":694},{"type":18,"tagName":39,"properties":1503,"children":1504},{"style":440},[1505],{"type":27,"value":699},{"type":18,"tagName":39,"properties":1507,"children":1508},{"style":372},[1509],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1511,"children":1512},{"style":440},[1513],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1515,"children":1516},{"style":398},[1517],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":1519,"children":1520},{"style":372},[1521],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1523,"children":1524},{"style":440},[1525],{"type":27,"value":722},{"type":18,"tagName":39,"properties":1527,"children":1528},{"style":372},[1529],{"type":27,"value":1530}," monthKeys.",{"type":18,"tagName":39,"properties":1532,"children":1533},{"style":398},[1534],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1536,"children":1537},{"style":372},[1538],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1540,"children":1541},{"style":440},[1542],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1544,"children":1545},{"style":372},[1546],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1548,"children":1549},{"style":440},[1550],{"type":27,"value":748},{"type":18,"tagName":39,"properties":1552,"children":1553},{"style":398},[1554],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1556,"children":1557},{"style":372},[1558],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1561,"children":1562},{"class":227},[1563,1567,1572,1576,1581,1586,1591,1596,1600],{"type":18,"tagName":39,"properties":1564,"children":1565},{"style":440},[1566],{"type":27,"value":765},{"type":18,"tagName":39,"properties":1568,"children":1569},{"style":372},[1570],{"type":27,"value":1571}," y ",{"type":18,"tagName":39,"properties":1573,"children":1574},{"style":440},[1575],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1577,"children":1578},{"style":372},[1579],{"type":27,"value":1580}," math.",{"type":18,"tagName":39,"properties":1582,"children":1583},{"style":366},[1584],{"type":27,"value":1585},"floor",{"type":18,"tagName":39,"properties":1587,"children":1588},{"style":372},[1589],{"type":27,"value":1590},"(monthKeys[i] ",{"type":18,"tagName":39,"properties":1592,"children":1593},{"style":440},[1594],{"type":27,"value":1595},"/",{"type":18,"tagName":39,"properties":1597,"children":1598},{"style":398},[1599],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":1601,"children":1602},{"style":372},[1603],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1606,"children":1607},{"class":227},[1608,1612,1617,1621,1625,1629,1633,1638,1642,1646,1650,1654,1658],{"type":18,"tagName":39,"properties":1609,"children":1610},{"style":440},[1611],{"type":27,"value":829},{"type":18,"tagName":39,"properties":1613,"children":1614},{"style":372},[1615],{"type":27,"value":1616}," (years.",{"type":18,"tagName":39,"properties":1618,"children":1619},{"style":398},[1620],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1622,"children":1623},{"style":440},[1624],{"type":27,"value":1273},{"type":18,"tagName":39,"properties":1626,"children":1627},{"style":398},[1628],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":1630,"children":1631},{"style":440},[1632],{"type":27,"value":858},{"type":18,"tagName":39,"properties":1634,"children":1635},{"style":372},[1636],{"type":27,"value":1637}," years[years.",{"type":18,"tagName":39,"properties":1639,"children":1640},{"style":398},[1641],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1643,"children":1644},{"style":440},[1645],{"type":27,"value":1295},{"type":18,"tagName":39,"properties":1647,"children":1648},{"style":398},[1649],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1651,"children":1652},{"style":372},[1653],{"type":27,"value":788},{"type":18,"tagName":39,"properties":1655,"children":1656},{"style":440},[1657],{"type":27,"value":1308},{"type":18,"tagName":39,"properties":1659,"children":1660},{"style":372},[1661],{"type":27,"value":1662}," y) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1665,"children":1666},{"class":227},[1667,1672,1676],{"type":18,"tagName":39,"properties":1668,"children":1669},{"style":372},[1670],{"type":27,"value":1671},"        years.",{"type":18,"tagName":39,"properties":1673,"children":1674},{"style":366},[1675],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":1677,"children":1678},{"style":372},[1679],{"type":27,"value":1680},"(y)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1683,"children":1684},{"class":227},[1685],{"type":18,"tagName":39,"properties":1686,"children":1687},{"style":372},[1688],{"type":27,"value":898},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1691,"children":1692},{"class":227},[1693],{"type":18,"tagName":39,"properties":1694,"children":1695},{"style":372},[1696],{"type":27,"value":907},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1699,"children":1700},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":1703,"children":1704},{"class":227},[1705],{"type":18,"tagName":39,"properties":1706,"children":1707},{"style":231},[1708],{"type":27,"value":1709},"    // Month-over-month % returns placed at [yearRow, monthCol]. Flat parallel",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1712,"children":1713},{"class":227},[1714],{"type":18,"tagName":39,"properties":1715,"children":1716},{"style":231},[1717],{"type":27,"value":1718},"    // arrays (value + calendar month) so the summary pass below can re-bucket.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1721,"children":1722},{"class":227},[1723],{"type":18,"tagName":39,"properties":1724,"children":1725},{"style":231},[1726],{"type":27,"value":1727},"    // Ratio rows require strictly POSITIVE endpoints (the valid-only close",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1730,"children":1731},{"class":227},[1732],{"type":18,"tagName":39,"properties":1733,"children":1734},{"style":231},[1735],{"type":27,"value":1736},"    // scan above guarantees that).",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1739,"children":1740},{"class":227},[1741,1745,1750,1754],{"type":18,"tagName":39,"properties":1742,"children":1743},{"style":440},[1744],{"type":27,"value":666},{"type":18,"tagName":39,"properties":1746,"children":1747},{"style":372},[1748],{"type":27,"value":1749}," cells ",{"type":18,"tagName":39,"properties":1751,"children":1752},{"style":440},[1753],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1755,"children":1756},{"style":372},[1757],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1760,"children":1761},{"class":227},[1762,1766,1771,1775],{"type":18,"tagName":39,"properties":1763,"children":1764},{"style":440},[1765],{"type":27,"value":666},{"type":18,"tagName":39,"properties":1767,"children":1768},{"style":372},[1769],{"type":27,"value":1770}," retVals ",{"type":18,"tagName":39,"properties":1772,"children":1773},{"style":440},[1774],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1776,"children":1777},{"style":372},[1778],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1781,"children":1782},{"class":227},[1783,1787,1792,1796],{"type":18,"tagName":39,"properties":1784,"children":1785},{"style":440},[1786],{"type":27,"value":666},{"type":18,"tagName":39,"properties":1788,"children":1789},{"style":372},[1790],{"type":27,"value":1791}," retCols ",{"type":18,"tagName":39,"properties":1793,"children":1794},{"style":440},[1795],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1797,"children":1798},{"style":372},[1799],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1802,"children":1803},{"class":227},[1804,1808,1812,1816,1820,1824,1828,1832,1836,1840,1844,1848,1852,1856,1860,1864],{"type":18,"tagName":39,"properties":1805,"children":1806},{"style":440},[1807],{"type":27,"value":689},{"type":18,"tagName":39,"properties":1809,"children":1810},{"style":372},[1811],{"type":27,"value":694},{"type":18,"tagName":39,"properties":1813,"children":1814},{"style":440},[1815],{"type":27,"value":699},{"type":18,"tagName":39,"properties":1817,"children":1818},{"style":372},[1819],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1821,"children":1822},{"style":440},[1823],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1825,"children":1826},{"style":398},[1827],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1829,"children":1830},{"style":372},[1831],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1833,"children":1834},{"style":440},[1835],{"type":27,"value":722},{"type":18,"tagName":39,"properties":1837,"children":1838},{"style":372},[1839],{"type":27,"value":1530},{"type":18,"tagName":39,"properties":1841,"children":1842},{"style":398},[1843],{"type":27,"value":642},{"type":18,"tagName":39,"properties":1845,"children":1846},{"style":372},[1847],{"type":27,"value":717},{"type":18,"tagName":39,"properties":1849,"children":1850},{"style":440},[1851],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1853,"children":1854},{"style":372},[1855],{"type":27,"value":704},{"type":18,"tagName":39,"properties":1857,"children":1858},{"style":440},[1859],{"type":27,"value":748},{"type":18,"tagName":39,"properties":1861,"children":1862},{"style":398},[1863],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1865,"children":1866},{"style":372},[1867],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1870,"children":1871},{"class":227},[1872,1876,1880,1884],{"type":18,"tagName":39,"properties":1873,"children":1874},{"style":440},[1875],{"type":27,"value":765},{"type":18,"tagName":39,"properties":1877,"children":1878},{"style":372},[1879],{"type":27,"value":1195},{"type":18,"tagName":39,"properties":1881,"children":1882},{"style":440},[1883],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1885,"children":1886},{"style":372},[1887],{"type":27,"value":1888}," monthKeys[i]",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1891,"children":1892},{"class":227},[1893,1897,1902,1906,1911,1915,1919],{"type":18,"tagName":39,"properties":1894,"children":1895},{"style":440},[1896],{"type":27,"value":765},{"type":18,"tagName":39,"properties":1898,"children":1899},{"style":372},[1900],{"type":27,"value":1901}," prevKey ",{"type":18,"tagName":39,"properties":1903,"children":1904},{"style":440},[1905],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1907,"children":1908},{"style":372},[1909],{"type":27,"value":1910}," monthKeys[i ",{"type":18,"tagName":39,"properties":1912,"children":1913},{"style":440},[1914],{"type":27,"value":793},{"type":18,"tagName":39,"properties":1916,"children":1917},{"style":398},[1918],{"type":27,"value":652},{"type":18,"tagName":39,"properties":1920,"children":1921},{"style":372},[1922],{"type":27,"value":820},{"type":27,"value":93},{"type":18,"tagName":39,"properties":1925,"children":1926},{"class":227},[1927],{"type":18,"tagName":39,"properties":1928,"children":1929},{"style":231},[1930],{"type":27,"value":1931},"      // Calendar adjacency: a month with no valid close must not turn the",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1934,"children":1935},{"class":227},[1936],{"type":18,"tagName":39,"properties":1937,"children":1938},{"style":231},[1939],{"type":27,"value":1940},"      // next month's cell into a mislabeled multi-month move.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":1943,"children":1944},{"class":227},[1945,1949,1954,1958,1962,1967,1971,1975,1980,1985,1990,1994,1999,2003,2007,2012,2016,2020,2024,2028,2032,2036,2040,2045,2049,2053],{"type":18,"tagName":39,"properties":1946,"children":1947},{"style":440},[1948],{"type":27,"value":765},{"type":18,"tagName":39,"properties":1950,"children":1951},{"style":372},[1952],{"type":27,"value":1953}," expected ",{"type":18,"tagName":39,"properties":1955,"children":1956},{"style":440},[1957],{"type":27,"value":443},{"type":18,"tagName":39,"properties":1959,"children":1960},{"style":372},[1961],{"type":27,"value":1901},{"type":18,"tagName":39,"properties":1963,"children":1964},{"style":440},[1965],{"type":27,"value":1966},"%",{"type":18,"tagName":39,"properties":1968,"children":1969},{"style":398},[1970],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":1972,"children":1973},{"style":440},[1974],{"type":27,"value":1273},{"type":18,"tagName":39,"properties":1976,"children":1977},{"style":398},[1978],{"type":27,"value":1979}," 12",{"type":18,"tagName":39,"properties":1981,"children":1982},{"style":440},[1983],{"type":27,"value":1984}," ?",{"type":18,"tagName":39,"properties":1986,"children":1987},{"style":372},[1988],{"type":27,"value":1989}," (math.",{"type":18,"tagName":39,"properties":1991,"children":1992},{"style":366},[1993],{"type":27,"value":1585},{"type":18,"tagName":39,"properties":1995,"children":1996},{"style":372},[1997],{"type":27,"value":1998},"(prevKey ",{"type":18,"tagName":39,"properties":2000,"children":2001},{"style":440},[2002],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":2004,"children":2005},{"style":398},[2006],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":2008,"children":2009},{"style":372},[2010],{"type":27,"value":2011},") ",{"type":18,"tagName":39,"properties":2013,"children":2014},{"style":440},[2015],{"type":27,"value":748},{"type":18,"tagName":39,"properties":2017,"children":2018},{"style":398},[2019],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2021,"children":2022},{"style":372},[2023],{"type":27,"value":2011},{"type":18,"tagName":39,"properties":2025,"children":2026},{"style":440},[2027],{"type":27,"value":1223},{"type":18,"tagName":39,"properties":2029,"children":2030},{"style":398},[2031],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":2033,"children":2034},{"style":440},[2035],{"type":27,"value":1233},{"type":18,"tagName":39,"properties":2037,"children":2038},{"style":398},[2039],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2041,"children":2042},{"style":440},[2043],{"type":27,"value":2044}," :",{"type":18,"tagName":39,"properties":2046,"children":2047},{"style":372},[2048],{"type":27,"value":1901},{"type":18,"tagName":39,"properties":2050,"children":2051},{"style":440},[2052],{"type":27,"value":748},{"type":18,"tagName":39,"properties":2054,"children":2055},{"style":398},[2056],{"type":27,"value":652},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2059,"children":2060},{"class":227},[2061,2065,2070,2074],{"type":18,"tagName":39,"properties":2062,"children":2063},{"style":440},[2064],{"type":27,"value":829},{"type":18,"tagName":39,"properties":2066,"children":2067},{"style":372},[2068],{"type":27,"value":2069}," (key ",{"type":18,"tagName":39,"properties":2071,"children":2072},{"style":440},[2073],{"type":27,"value":848},{"type":18,"tagName":39,"properties":2075,"children":2076},{"style":372},[2077],{"type":27,"value":2078}," expected) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2081,"children":2082},{"class":227},[2083,2088,2093,2097,2102,2106,2111,2115,2119,2123,2127],{"type":18,"tagName":39,"properties":2084,"children":2085},{"style":440},[2086],{"type":27,"value":2087},"        var",{"type":18,"tagName":39,"properties":2089,"children":2090},{"style":372},[2091],{"type":27,"value":2092}," ret ",{"type":18,"tagName":39,"properties":2094,"children":2095},{"style":440},[2096],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2098,"children":2099},{"style":372},[2100],{"type":27,"value":2101}," monthCloses[i] ",{"type":18,"tagName":39,"properties":2103,"children":2104},{"style":440},[2105],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":2107,"children":2108},{"style":372},[2109],{"type":27,"value":2110}," monthCloses[i ",{"type":18,"tagName":39,"properties":2112,"children":2113},{"style":440},[2114],{"type":27,"value":793},{"type":18,"tagName":39,"properties":2116,"children":2117},{"style":398},[2118],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2120,"children":2121},{"style":372},[2122],{"type":27,"value":788},{"type":18,"tagName":39,"properties":2124,"children":2125},{"style":440},[2126],{"type":27,"value":793},{"type":18,"tagName":39,"properties":2128,"children":2129},{"style":398},[2130],{"type":27,"value":652},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2133,"children":2134},{"class":227},[2135,2139,2144,2148,2153,2158,2163,2167,2172,2176,2180],{"type":18,"tagName":39,"properties":2136,"children":2137},{"style":440},[2138],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2140,"children":2141},{"style":372},[2142],{"type":27,"value":2143}," row ",{"type":18,"tagName":39,"properties":2145,"children":2146},{"style":440},[2147],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2149,"children":2150},{"style":372},[2151],{"type":27,"value":2152}," years.",{"type":18,"tagName":39,"properties":2154,"children":2155},{"style":366},[2156],{"type":27,"value":2157},"indexOf",{"type":18,"tagName":39,"properties":2159,"children":2160},{"style":372},[2161],{"type":27,"value":2162},"(math.",{"type":18,"tagName":39,"properties":2164,"children":2165},{"style":366},[2166],{"type":27,"value":1585},{"type":18,"tagName":39,"properties":2168,"children":2169},{"style":372},[2170],{"type":27,"value":2171},"(key ",{"type":18,"tagName":39,"properties":2173,"children":2174},{"style":440},[2175],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":2177,"children":2178},{"style":398},[2179],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":2181,"children":2182},{"style":372},[2183],{"type":27,"value":2184},"))",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2187,"children":2188},{"class":227},[2189,2193,2198,2202,2206,2210,2214,2218],{"type":18,"tagName":39,"properties":2190,"children":2191},{"style":440},[2192],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2194,"children":2195},{"style":372},[2196],{"type":27,"value":2197}," col ",{"type":18,"tagName":39,"properties":2199,"children":2200},{"style":440},[2201],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2203,"children":2204},{"style":372},[2205],{"type":27,"value":1195},{"type":18,"tagName":39,"properties":2207,"children":2208},{"style":440},[2209],{"type":27,"value":1966},{"type":18,"tagName":39,"properties":2211,"children":2212},{"style":398},[2213],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":2215,"children":2216},{"style":440},[2217],{"type":27,"value":1295},{"type":18,"tagName":39,"properties":2219,"children":2220},{"style":398},[2221],{"type":27,"value":652},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2224,"children":2225},{"class":227},[2226,2231,2235],{"type":18,"tagName":39,"properties":2227,"children":2228},{"style":372},[2229],{"type":27,"value":2230},"        cells.",{"type":18,"tagName":39,"properties":2232,"children":2233},{"style":366},[2234],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2236,"children":2237},{"style":372},[2238],{"type":27,"value":2239},"([row, col, ret])",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2242,"children":2243},{"class":227},[2244,2249,2253],{"type":18,"tagName":39,"properties":2245,"children":2246},{"style":372},[2247],{"type":27,"value":2248},"        retVals.",{"type":18,"tagName":39,"properties":2250,"children":2251},{"style":366},[2252],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2254,"children":2255},{"style":372},[2256],{"type":27,"value":2257},"(ret)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2260,"children":2261},{"class":227},[2262,2267,2271],{"type":18,"tagName":39,"properties":2263,"children":2264},{"style":372},[2265],{"type":27,"value":2266},"        retCols.",{"type":18,"tagName":39,"properties":2268,"children":2269},{"style":366},[2270],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2272,"children":2273},{"style":372},[2274],{"type":27,"value":2275},"(col)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2278,"children":2279},{"class":227},[2280],{"type":18,"tagName":39,"properties":2281,"children":2282},{"style":372},[2283],{"type":27,"value":898},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2286,"children":2287},{"class":227},[2288],{"type":18,"tagName":39,"properties":2289,"children":2290},{"style":372},[2291],{"type":27,"value":907},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2294,"children":2295},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":2298,"children":2299},{"class":227},[2300],{"type":18,"tagName":39,"properties":2301,"children":2302},{"style":231},[2303],{"type":27,"value":2304},"    // Summary rows: AVG / MED / WIN% of each calendar month's returns across",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2307,"children":2308},{"class":227},[2309],{"type":18,"tagName":39,"properties":2310,"children":2311},{"style":231},[2312],{"type":27,"value":2313},"    // years; months with no observations stay blank (na).",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2316,"children":2317},{"class":227},[2318,2322,2327,2331],{"type":18,"tagName":39,"properties":2319,"children":2320},{"style":440},[2321],{"type":27,"value":666},{"type":18,"tagName":39,"properties":2323,"children":2324},{"style":372},[2325],{"type":27,"value":2326}," avgRow ",{"type":18,"tagName":39,"properties":2328,"children":2329},{"style":440},[2330],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2332,"children":2333},{"style":372},[2334],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2337,"children":2338},{"class":227},[2339,2343,2348,2352],{"type":18,"tagName":39,"properties":2340,"children":2341},{"style":440},[2342],{"type":27,"value":666},{"type":18,"tagName":39,"properties":2344,"children":2345},{"style":372},[2346],{"type":27,"value":2347}," medRow ",{"type":18,"tagName":39,"properties":2349,"children":2350},{"style":440},[2351],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2353,"children":2354},{"style":372},[2355],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2358,"children":2359},{"class":227},[2360,2364,2369,2373],{"type":18,"tagName":39,"properties":2361,"children":2362},{"style":440},[2363],{"type":27,"value":666},{"type":18,"tagName":39,"properties":2365,"children":2366},{"style":372},[2367],{"type":27,"value":2368}," winRow ",{"type":18,"tagName":39,"properties":2370,"children":2371},{"style":440},[2372],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2374,"children":2375},{"style":372},[2376],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2379,"children":2380},{"class":227},[2381,2385,2389,2393,2398,2402,2406,2411,2415,2419,2423,2427,2431,2435,2439],{"type":18,"tagName":39,"properties":2382,"children":2383},{"style":440},[2384],{"type":27,"value":689},{"type":18,"tagName":39,"properties":2386,"children":2387},{"style":372},[2388],{"type":27,"value":694},{"type":18,"tagName":39,"properties":2390,"children":2391},{"style":440},[2392],{"type":27,"value":699},{"type":18,"tagName":39,"properties":2394,"children":2395},{"style":372},[2396],{"type":27,"value":2397}," m ",{"type":18,"tagName":39,"properties":2399,"children":2400},{"style":440},[2401],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2403,"children":2404},{"style":398},[2405],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":2407,"children":2408},{"style":372},[2409],{"type":27,"value":2410},"; m ",{"type":18,"tagName":39,"properties":2412,"children":2413},{"style":440},[2414],{"type":27,"value":722},{"type":18,"tagName":39,"properties":2416,"children":2417},{"style":398},[2418],{"type":27,"value":1979},{"type":18,"tagName":39,"properties":2420,"children":2421},{"style":372},[2422],{"type":27,"value":2410},{"type":18,"tagName":39,"properties":2424,"children":2425},{"style":440},[2426],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2428,"children":2429},{"style":372},[2430],{"type":27,"value":2397},{"type":18,"tagName":39,"properties":2432,"children":2433},{"style":440},[2434],{"type":27,"value":748},{"type":18,"tagName":39,"properties":2436,"children":2437},{"style":398},[2438],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2440,"children":2441},{"style":372},[2442],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2445,"children":2446},{"class":227},[2447,2451,2456,2460],{"type":18,"tagName":39,"properties":2448,"children":2449},{"style":440},[2450],{"type":27,"value":765},{"type":18,"tagName":39,"properties":2452,"children":2453},{"style":372},[2454],{"type":27,"value":2455}," monthRets ",{"type":18,"tagName":39,"properties":2457,"children":2458},{"style":440},[2459],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2461,"children":2462},{"style":372},[2463],{"type":27,"value":969},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2466,"children":2467},{"class":227},[2468,2473,2477,2481,2485,2489,2493,2497,2501,2506,2510,2514,2518,2522,2526,2530],{"type":18,"tagName":39,"properties":2469,"children":2470},{"style":440},[2471],{"type":27,"value":2472},"      for",{"type":18,"tagName":39,"properties":2474,"children":2475},{"style":372},[2476],{"type":27,"value":694},{"type":18,"tagName":39,"properties":2478,"children":2479},{"style":440},[2480],{"type":27,"value":699},{"type":18,"tagName":39,"properties":2482,"children":2483},{"style":372},[2484],{"type":27,"value":704},{"type":18,"tagName":39,"properties":2486,"children":2487},{"style":440},[2488],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2490,"children":2491},{"style":398},[2492],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":2494,"children":2495},{"style":372},[2496],{"type":27,"value":717},{"type":18,"tagName":39,"properties":2498,"children":2499},{"style":440},[2500],{"type":27,"value":722},{"type":18,"tagName":39,"properties":2502,"children":2503},{"style":372},[2504],{"type":27,"value":2505}," retVals.",{"type":18,"tagName":39,"properties":2507,"children":2508},{"style":398},[2509],{"type":27,"value":642},{"type":18,"tagName":39,"properties":2511,"children":2512},{"style":372},[2513],{"type":27,"value":717},{"type":18,"tagName":39,"properties":2515,"children":2516},{"style":440},[2517],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2519,"children":2520},{"style":372},[2521],{"type":27,"value":704},{"type":18,"tagName":39,"properties":2523,"children":2524},{"style":440},[2525],{"type":27,"value":748},{"type":18,"tagName":39,"properties":2527,"children":2528},{"style":398},[2529],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2531,"children":2532},{"style":372},[2533],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2536,"children":2537},{"class":227},[2538,2543,2548,2552],{"type":18,"tagName":39,"properties":2539,"children":2540},{"style":440},[2541],{"type":27,"value":2542},"        if",{"type":18,"tagName":39,"properties":2544,"children":2545},{"style":372},[2546],{"type":27,"value":2547}," (retCols[i] ",{"type":18,"tagName":39,"properties":2549,"children":2550},{"style":440},[2551],{"type":27,"value":848},{"type":18,"tagName":39,"properties":2553,"children":2554},{"style":372},[2555],{"type":27,"value":2556}," m) {",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2559,"children":2560},{"class":227},[2561,2566,2570],{"type":18,"tagName":39,"properties":2562,"children":2563},{"style":372},[2564],{"type":27,"value":2565},"          monthRets.",{"type":18,"tagName":39,"properties":2567,"children":2568},{"style":366},[2569],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2571,"children":2572},{"style":372},[2573],{"type":27,"value":2574},"(retVals[i])",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2577,"children":2578},{"class":227},[2579],{"type":18,"tagName":39,"properties":2580,"children":2581},{"style":372},[2582],{"type":27,"value":2583},"        }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2586,"children":2587},{"class":227},[2588],{"type":18,"tagName":39,"properties":2589,"children":2590},{"style":372},[2591],{"type":27,"value":898},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2594,"children":2595},{"class":227},[2596,2600,2605,2609,2613,2617],{"type":18,"tagName":39,"properties":2597,"children":2598},{"style":440},[2599],{"type":27,"value":829},{"type":18,"tagName":39,"properties":2601,"children":2602},{"style":372},[2603],{"type":27,"value":2604}," (monthRets.",{"type":18,"tagName":39,"properties":2606,"children":2607},{"style":398},[2608],{"type":27,"value":642},{"type":18,"tagName":39,"properties":2610,"children":2611},{"style":440},[2612],{"type":27,"value":1273},{"type":18,"tagName":39,"properties":2614,"children":2615},{"style":398},[2616],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":2618,"children":2619},{"style":372},[2620],{"type":27,"value":657},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2623,"children":2624},{"class":227},[2625,2630,2634],{"type":18,"tagName":39,"properties":2626,"children":2627},{"style":372},[2628],{"type":27,"value":2629},"        avgRow.",{"type":18,"tagName":39,"properties":2631,"children":2632},{"style":366},[2633],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2635,"children":2636},{"style":372},[2637],{"type":27,"value":2638},"(na)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2641,"children":2642},{"class":227},[2643,2648,2652],{"type":18,"tagName":39,"properties":2644,"children":2645},{"style":372},[2646],{"type":27,"value":2647},"        medRow.",{"type":18,"tagName":39,"properties":2649,"children":2650},{"style":366},[2651],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2653,"children":2654},{"style":372},[2655],{"type":27,"value":2638},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2658,"children":2659},{"class":227},[2660,2665,2669],{"type":18,"tagName":39,"properties":2661,"children":2662},{"style":372},[2663],{"type":27,"value":2664},"        winRow.",{"type":18,"tagName":39,"properties":2666,"children":2667},{"style":366},[2668],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":2670,"children":2671},{"style":372},[2672],{"type":27,"value":2638},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2675,"children":2676},{"class":227},[2677,2681,2685],{"type":18,"tagName":39,"properties":2678,"children":2679},{"style":372},[2680],{"type":27,"value":1359},{"type":18,"tagName":39,"properties":2682,"children":2683},{"style":440},[2684],{"type":27,"value":1364},{"type":18,"tagName":39,"properties":2686,"children":2687},{"style":372},[2688],{"type":27,"value":1369},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2691,"children":2692},{"class":227},[2693,2697,2702,2706,2711,2716,2721,2727,2731,2736,2740,2745,2750,2754,2759,2763],{"type":18,"tagName":39,"properties":2694,"children":2695},{"style":440},[2696],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2698,"children":2699},{"style":372},[2700],{"type":27,"value":2701}," sum ",{"type":18,"tagName":39,"properties":2703,"children":2704},{"style":440},[2705],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2707,"children":2708},{"style":372},[2709],{"type":27,"value":2710}," monthRets.",{"type":18,"tagName":39,"properties":2712,"children":2713},{"style":366},[2714],{"type":27,"value":2715},"reduce",{"type":18,"tagName":39,"properties":2717,"children":2718},{"style":372},[2719],{"type":27,"value":2720},"((",{"type":18,"tagName":39,"properties":2722,"children":2724},{"style":2723},"--shiki-dark:#FFAB70;--shiki-light:#E36209",[2725],{"type":27,"value":2726},"acc",{"type":18,"tagName":39,"properties":2728,"children":2729},{"style":372},[2730],{"type":27,"value":386},{"type":18,"tagName":39,"properties":2732,"children":2733},{"style":2723},[2734],{"type":27,"value":2735},"r",{"type":18,"tagName":39,"properties":2737,"children":2738},{"style":372},[2739],{"type":27,"value":2011},{"type":18,"tagName":39,"properties":2741,"children":2742},{"style":440},[2743],{"type":27,"value":2744},"=>",{"type":18,"tagName":39,"properties":2746,"children":2747},{"style":372},[2748],{"type":27,"value":2749}," acc ",{"type":18,"tagName":39,"properties":2751,"children":2752},{"style":440},[2753],{"type":27,"value":748},{"type":18,"tagName":39,"properties":2755,"children":2756},{"style":372},[2757],{"type":27,"value":2758}," r, ",{"type":18,"tagName":39,"properties":2760,"children":2761},{"style":398},[2762],{"type":27,"value":219},{"type":18,"tagName":39,"properties":2764,"children":2765},{"style":372},[2766],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2769,"children":2770},{"class":227},[2771,2775,2780,2784,2788,2793,2797,2801,2805,2809,2814,2818,2822],{"type":18,"tagName":39,"properties":2772,"children":2773},{"style":440},[2774],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2776,"children":2777},{"style":372},[2778],{"type":27,"value":2779}," wins ",{"type":18,"tagName":39,"properties":2781,"children":2782},{"style":440},[2783],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2785,"children":2786},{"style":372},[2787],{"type":27,"value":2710},{"type":18,"tagName":39,"properties":2789,"children":2790},{"style":366},[2791],{"type":27,"value":2792},"filter",{"type":18,"tagName":39,"properties":2794,"children":2795},{"style":372},[2796],{"type":27,"value":2720},{"type":18,"tagName":39,"properties":2798,"children":2799},{"style":2723},[2800],{"type":27,"value":2735},{"type":18,"tagName":39,"properties":2802,"children":2803},{"style":372},[2804],{"type":27,"value":2011},{"type":18,"tagName":39,"properties":2806,"children":2807},{"style":440},[2808],{"type":27,"value":2744},{"type":18,"tagName":39,"properties":2810,"children":2811},{"style":372},[2812],{"type":27,"value":2813}," r ",{"type":18,"tagName":39,"properties":2815,"children":2816},{"style":440},[2817],{"type":27,"value":942},{"type":18,"tagName":39,"properties":2819,"children":2820},{"style":398},[2821],{"type":27,"value":1071},{"type":18,"tagName":39,"properties":2823,"children":2824},{"style":372},[2825],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2828,"children":2829},{"class":227},[2830,2834,2839,2843,2847,2852,2856,2860,2865,2869,2874,2879],{"type":18,"tagName":39,"properties":2831,"children":2832},{"style":440},[2833],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2835,"children":2836},{"style":372},[2837],{"type":27,"value":2838}," sorted ",{"type":18,"tagName":39,"properties":2840,"children":2841},{"style":440},[2842],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2844,"children":2845},{"style":372},[2846],{"type":27,"value":2710},{"type":18,"tagName":39,"properties":2848,"children":2849},{"style":366},[2850],{"type":27,"value":2851},"slice",{"type":18,"tagName":39,"properties":2853,"children":2854},{"style":372},[2855],{"type":27,"value":375},{"type":18,"tagName":39,"properties":2857,"children":2858},{"style":398},[2859],{"type":27,"value":219},{"type":18,"tagName":39,"properties":2861,"children":2862},{"style":372},[2863],{"type":27,"value":2864},", monthRets.",{"type":18,"tagName":39,"properties":2866,"children":2867},{"style":398},[2868],{"type":27,"value":642},{"type":18,"tagName":39,"properties":2870,"children":2871},{"style":372},[2872],{"type":27,"value":2873},").",{"type":18,"tagName":39,"properties":2875,"children":2876},{"style":366},[2877],{"type":27,"value":2878},"sort",{"type":18,"tagName":39,"properties":2880,"children":2881},{"style":372},[2882],{"type":27,"value":2883},"()",{"type":27,"value":93},{"type":18,"tagName":39,"properties":2886,"children":2887},{"class":227},[2888,2892,2897,2901,2905,2909,2914,2918,2923,2928],{"type":18,"tagName":39,"properties":2889,"children":2890},{"style":440},[2891],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2893,"children":2894},{"style":372},[2895],{"type":27,"value":2896}," mid ",{"type":18,"tagName":39,"properties":2898,"children":2899},{"style":440},[2900],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2902,"children":2903},{"style":372},[2904],{"type":27,"value":1580},{"type":18,"tagName":39,"properties":2906,"children":2907},{"style":366},[2908],{"type":27,"value":1585},{"type":18,"tagName":39,"properties":2910,"children":2911},{"style":372},[2912],{"type":27,"value":2913},"(sorted.",{"type":18,"tagName":39,"properties":2915,"children":2916},{"style":398},[2917],{"type":27,"value":642},{"type":18,"tagName":39,"properties":2919,"children":2920},{"style":440},[2921],{"type":27,"value":2922}," /",{"type":18,"tagName":39,"properties":2924,"children":2925},{"style":398},[2926],{"type":27,"value":2927}," 2",{"type":18,"tagName":39,"properties":2929,"children":2930},{"style":372},[2931],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":2934,"children":2935},{"class":227},[2936,2940,2945,2949,2954,2958,2963,2967,2971,2975,2979,2984,2989,2994,2998,3002,3006,3010,3015,3019],{"type":18,"tagName":39,"properties":2937,"children":2938},{"style":440},[2939],{"type":27,"value":2087},{"type":18,"tagName":39,"properties":2941,"children":2942},{"style":372},[2943],{"type":27,"value":2944}," med ",{"type":18,"tagName":39,"properties":2946,"children":2947},{"style":440},[2948],{"type":27,"value":443},{"type":18,"tagName":39,"properties":2950,"children":2951},{"style":372},[2952],{"type":27,"value":2953}," sorted.",{"type":18,"tagName":39,"properties":2955,"children":2956},{"style":398},[2957],{"type":27,"value":642},{"type":18,"tagName":39,"properties":2959,"children":2960},{"style":440},[2961],{"type":27,"value":2962}," %",{"type":18,"tagName":39,"properties":2964,"children":2965},{"style":398},[2966],{"type":27,"value":2927},{"type":18,"tagName":39,"properties":2968,"children":2969},{"style":440},[2970],{"type":27,"value":1273},{"type":18,"tagName":39,"properties":2972,"children":2973},{"style":398},[2974],{"type":27,"value":652},{"type":18,"tagName":39,"properties":2976,"children":2977},{"style":440},[2978],{"type":27,"value":1984},{"type":18,"tagName":39,"properties":2980,"children":2981},{"style":372},[2982],{"type":27,"value":2983}," sorted[mid] ",{"type":18,"tagName":39,"properties":2985,"children":2986},{"style":440},[2987],{"type":27,"value":2988},":",{"type":18,"tagName":39,"properties":2990,"children":2991},{"style":372},[2992],{"type":27,"value":2993}," (sorted[mid ",{"type":18,"tagName":39,"properties":2995,"children":2996},{"style":440},[2997],{"type":27,"value":793},{"type":18,"tagName":39,"properties":2999,"children":3000},{"style":398},[3001],{"type":27,"value":652},{"type":18,"tagName":39,"properties":3003,"children":3004},{"style":372},[3005],{"type":27,"value":788},{"type":18,"tagName":39,"properties":3007,"children":3008},{"style":440},[3009],{"type":27,"value":748},{"type":18,"tagName":39,"properties":3011,"children":3012},{"style":372},[3013],{"type":27,"value":3014}," sorted[mid]) ",{"type":18,"tagName":39,"properties":3016,"children":3017},{"style":440},[3018],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":3020,"children":3021},{"style":398},[3022],{"type":27,"value":2927},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3025,"children":3026},{"class":227},[3027,3031,3035,3040,3044,3048,3052],{"type":18,"tagName":39,"properties":3028,"children":3029},{"style":372},[3030],{"type":27,"value":2629},{"type":18,"tagName":39,"properties":3032,"children":3033},{"style":366},[3034],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":3036,"children":3037},{"style":372},[3038],{"type":27,"value":3039},"(sum ",{"type":18,"tagName":39,"properties":3041,"children":3042},{"style":440},[3043],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":3045,"children":3046},{"style":372},[3047],{"type":27,"value":2710},{"type":18,"tagName":39,"properties":3049,"children":3050},{"style":398},[3051],{"type":27,"value":642},{"type":18,"tagName":39,"properties":3053,"children":3054},{"style":372},[3055],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3058,"children":3059},{"class":227},[3060,3064,3068],{"type":18,"tagName":39,"properties":3061,"children":3062},{"style":372},[3063],{"type":27,"value":2647},{"type":18,"tagName":39,"properties":3065,"children":3066},{"style":366},[3067],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":3069,"children":3070},{"style":372},[3071],{"type":27,"value":3072},"(med)",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3075,"children":3076},{"class":227},[3077,3081,3085,3090,3094,3098,3102,3106],{"type":18,"tagName":39,"properties":3078,"children":3079},{"style":372},[3080],{"type":27,"value":2664},{"type":18,"tagName":39,"properties":3082,"children":3083},{"style":366},[3084],{"type":27,"value":1327},{"type":18,"tagName":39,"properties":3086,"children":3087},{"style":372},[3088],{"type":27,"value":3089},"(wins.",{"type":18,"tagName":39,"properties":3091,"children":3092},{"style":398},[3093],{"type":27,"value":642},{"type":18,"tagName":39,"properties":3095,"children":3096},{"style":440},[3097],{"type":27,"value":2922},{"type":18,"tagName":39,"properties":3099,"children":3100},{"style":372},[3101],{"type":27,"value":2710},{"type":18,"tagName":39,"properties":3103,"children":3104},{"style":398},[3105],{"type":27,"value":642},{"type":18,"tagName":39,"properties":3107,"children":3108},{"style":372},[3109],{"type":27,"value":406},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3112,"children":3113},{"class":227},[3114],{"type":18,"tagName":39,"properties":3115,"children":3116},{"style":372},[3117],{"type":27,"value":898},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3120,"children":3121},{"class":227},[3122],{"type":18,"tagName":39,"properties":3123,"children":3124},{"style":372},[3125],{"type":27,"value":907},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3128,"children":3129},{"class":227},[],{"type":27,"value":93},{"type":18,"tagName":39,"properties":3132,"children":3133},{"class":227},[3134],{"type":18,"tagName":39,"properties":3135,"children":3136},{"style":231},[3137],{"type":27,"value":3138},"    // Highlight the latest DATA month: the last daily bar's month is the one",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3141,"children":3142},{"class":227},[3143],{"type":18,"tagName":39,"properties":3144,"children":3145},{"style":231},[3146],{"type":27,"value":3147},"    // still forming.",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3150,"children":3151},{"class":227},[3152,3156,3161,3165,3169,3173,3177,3181],{"type":18,"tagName":39,"properties":3153,"children":3154},{"style":440},[3155],{"type":27,"value":666},{"type":18,"tagName":39,"properties":3157,"children":3158},{"style":372},[3159],{"type":27,"value":3160}," lastKey ",{"type":18,"tagName":39,"properties":3162,"children":3163},{"style":440},[3164],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3166,"children":3167},{"style":372},[3168],{"type":27,"value":1286},{"type":18,"tagName":39,"properties":3170,"children":3171},{"style":398},[3172],{"type":27,"value":642},{"type":18,"tagName":39,"properties":3174,"children":3175},{"style":440},[3176],{"type":27,"value":1295},{"type":18,"tagName":39,"properties":3178,"children":3179},{"style":398},[3180],{"type":27,"value":652},{"type":18,"tagName":39,"properties":3182,"children":3183},{"style":372},[3184],{"type":27,"value":820},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3187,"children":3188},{"class":227},[3189,3194],{"type":18,"tagName":39,"properties":3190,"children":3191},{"style":366},[3192],{"type":27,"value":3193},"    plotMatrix",{"type":18,"tagName":39,"properties":3195,"children":3196},{"style":372},[3197],{"type":27,"value":375},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3200,"children":3201},{"class":227},[3202,3207,3211],{"type":18,"tagName":39,"properties":3203,"children":3204},{"style":372},[3205],{"type":27,"value":3206},"      data ",{"type":18,"tagName":39,"properties":3208,"children":3209},{"style":440},[3210],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3212,"children":3213},{"style":372},[3214],{"type":27,"value":3215}," cells,",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3218,"children":3219},{"class":227},[3220,3225,3229,3233,3238,3242,3247,3251,3255,3260,3265,3270],{"type":18,"tagName":39,"properties":3221,"children":3222},{"style":372},[3223],{"type":27,"value":3224},"      rowLabels ",{"type":18,"tagName":39,"properties":3226,"children":3227},{"style":440},[3228],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3230,"children":3231},{"style":372},[3232],{"type":27,"value":2152},{"type":18,"tagName":39,"properties":3234,"children":3235},{"style":366},[3236],{"type":27,"value":3237},"map",{"type":18,"tagName":39,"properties":3239,"children":3240},{"style":372},[3241],{"type":27,"value":2720},{"type":18,"tagName":39,"properties":3243,"children":3244},{"style":2723},[3245],{"type":27,"value":3246},"y",{"type":18,"tagName":39,"properties":3248,"children":3249},{"style":372},[3250],{"type":27,"value":2011},{"type":18,"tagName":39,"properties":3252,"children":3253},{"style":440},[3254],{"type":27,"value":2744},{"type":18,"tagName":39,"properties":3256,"children":3257},{"style":378},[3258],{"type":27,"value":3259}," \"\"",{"type":18,"tagName":39,"properties":3261,"children":3262},{"style":372},[3263],{"type":27,"value":3264},".",{"type":18,"tagName":39,"properties":3266,"children":3267},{"style":366},[3268],{"type":27,"value":3269},"concat",{"type":18,"tagName":39,"properties":3271,"children":3272},{"style":372},[3273],{"type":27,"value":3274},"(y)),",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3277,"children":3278},{"class":227},[3279,3284,3288,3293,3298,3302,3307,3311,3316,3320,3325,3329,3334,3338,3343,3347,3352,3356,3361,3365,3370,3374,3379,3383,3388,3392,3397],{"type":18,"tagName":39,"properties":3280,"children":3281},{"style":372},[3282],{"type":27,"value":3283},"      colLabels ",{"type":18,"tagName":39,"properties":3285,"children":3286},{"style":440},[3287],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3289,"children":3290},{"style":372},[3291],{"type":27,"value":3292}," [",{"type":18,"tagName":39,"properties":3294,"children":3295},{"style":378},[3296],{"type":27,"value":3297},"\"Jan\"",{"type":18,"tagName":39,"properties":3299,"children":3300},{"style":372},[3301],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3303,"children":3304},{"style":378},[3305],{"type":27,"value":3306},"\"Feb\"",{"type":18,"tagName":39,"properties":3308,"children":3309},{"style":372},[3310],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3312,"children":3313},{"style":378},[3314],{"type":27,"value":3315},"\"Mar\"",{"type":18,"tagName":39,"properties":3317,"children":3318},{"style":372},[3319],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3321,"children":3322},{"style":378},[3323],{"type":27,"value":3324},"\"Apr\"",{"type":18,"tagName":39,"properties":3326,"children":3327},{"style":372},[3328],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3330,"children":3331},{"style":378},[3332],{"type":27,"value":3333},"\"May\"",{"type":18,"tagName":39,"properties":3335,"children":3336},{"style":372},[3337],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3339,"children":3340},{"style":378},[3341],{"type":27,"value":3342},"\"Jun\"",{"type":18,"tagName":39,"properties":3344,"children":3345},{"style":372},[3346],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3348,"children":3349},{"style":378},[3350],{"type":27,"value":3351},"\"Jul\"",{"type":18,"tagName":39,"properties":3353,"children":3354},{"style":372},[3355],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3357,"children":3358},{"style":378},[3359],{"type":27,"value":3360},"\"Aug\"",{"type":18,"tagName":39,"properties":3362,"children":3363},{"style":372},[3364],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3366,"children":3367},{"style":378},[3368],{"type":27,"value":3369},"\"Sep\"",{"type":18,"tagName":39,"properties":3371,"children":3372},{"style":372},[3373],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3375,"children":3376},{"style":378},[3377],{"type":27,"value":3378},"\"Oct\"",{"type":18,"tagName":39,"properties":3380,"children":3381},{"style":372},[3382],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3384,"children":3385},{"style":378},[3386],{"type":27,"value":3387},"\"Nov\"",{"type":18,"tagName":39,"properties":3389,"children":3390},{"style":372},[3391],{"type":27,"value":386},{"type":18,"tagName":39,"properties":3393,"children":3394},{"style":378},[3395],{"type":27,"value":3396},"\"Dec\"",{"type":18,"tagName":39,"properties":3398,"children":3399},{"style":372},[3400],{"type":27,"value":3401},"],",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3404,"children":3405},{"class":227},[3406,3411,3415,3420],{"type":18,"tagName":39,"properties":3407,"children":3408},{"style":372},[3409],{"type":27,"value":3410},"      format ",{"type":18,"tagName":39,"properties":3412,"children":3413},{"style":440},[3414],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3416,"children":3417},{"style":378},[3418],{"type":27,"value":3419}," \"percent\"",{"type":18,"tagName":39,"properties":3421,"children":3422},{"style":372},[3423],{"type":27,"value":3424},",",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3427,"children":3428},{"class":227},[3429,3434,3438],{"type":18,"tagName":39,"properties":3430,"children":3431},{"style":372},[3432],{"type":27,"value":3433},"      summary ",{"type":18,"tagName":39,"properties":3435,"children":3436},{"style":440},[3437],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3439,"children":3440},{"style":372},[3441],{"type":27,"value":3292},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3444,"children":3445},{"class":227},[3446,3451,3456],{"type":18,"tagName":39,"properties":3447,"children":3448},{"style":372},[3449],{"type":27,"value":3450},"        { label: ",{"type":18,"tagName":39,"properties":3452,"children":3453},{"style":378},[3454],{"type":27,"value":3455},"\"AVG\"",{"type":18,"tagName":39,"properties":3457,"children":3458},{"style":372},[3459],{"type":27,"value":3460},", values: avgRow },",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3463,"children":3464},{"class":227},[3465,3469,3474],{"type":18,"tagName":39,"properties":3466,"children":3467},{"style":372},[3468],{"type":27,"value":3450},{"type":18,"tagName":39,"properties":3470,"children":3471},{"style":378},[3472],{"type":27,"value":3473},"\"MED\"",{"type":18,"tagName":39,"properties":3475,"children":3476},{"style":372},[3477],{"type":27,"value":3478},", values: medRow },",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3481,"children":3482},{"class":227},[3483,3487,3492],{"type":18,"tagName":39,"properties":3484,"children":3485},{"style":372},[3486],{"type":27,"value":3450},{"type":18,"tagName":39,"properties":3488,"children":3489},{"style":378},[3490],{"type":27,"value":3491},"\"WIN%\"",{"type":18,"tagName":39,"properties":3493,"children":3494},{"style":372},[3495],{"type":27,"value":3496},", values: winRow }",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3499,"children":3500},{"class":227},[3501],{"type":18,"tagName":39,"properties":3502,"children":3503},{"style":372},[3504],{"type":27,"value":3505},"      ],",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3508,"children":3509},{"class":227},[3510,3515,3519,3524,3528,3532,3536,3541,3545,3549,3554,3558,3562,3566,3570],{"type":18,"tagName":39,"properties":3511,"children":3512},{"style":372},[3513],{"type":27,"value":3514},"      highlight ",{"type":18,"tagName":39,"properties":3516,"children":3517},{"style":440},[3518],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3520,"children":3521},{"style":372},[3522],{"type":27,"value":3523}," { row: years.",{"type":18,"tagName":39,"properties":3525,"children":3526},{"style":366},[3527],{"type":27,"value":2157},{"type":18,"tagName":39,"properties":3529,"children":3530},{"style":372},[3531],{"type":27,"value":2162},{"type":18,"tagName":39,"properties":3533,"children":3534},{"style":366},[3535],{"type":27,"value":1585},{"type":18,"tagName":39,"properties":3537,"children":3538},{"style":372},[3539],{"type":27,"value":3540},"(lastKey ",{"type":18,"tagName":39,"properties":3542,"children":3543},{"style":440},[3544],{"type":27,"value":1595},{"type":18,"tagName":39,"properties":3546,"children":3547},{"style":398},[3548],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":3550,"children":3551},{"style":372},[3552],{"type":27,"value":3553},")), col: lastKey ",{"type":18,"tagName":39,"properties":3555,"children":3556},{"style":440},[3557],{"type":27,"value":1966},{"type":18,"tagName":39,"properties":3559,"children":3560},{"style":398},[3561],{"type":27,"value":1228},{"type":18,"tagName":39,"properties":3563,"children":3564},{"style":440},[3565],{"type":27,"value":1295},{"type":18,"tagName":39,"properties":3567,"children":3568},{"style":398},[3569],{"type":27,"value":652},{"type":18,"tagName":39,"properties":3571,"children":3572},{"style":372},[3573],{"type":27,"value":3574}," },",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3577,"children":3578},{"class":227},[3579,3584,3588],{"type":18,"tagName":39,"properties":3580,"children":3581},{"style":372},[3582],{"type":27,"value":3583},"      gridHeight ",{"type":18,"tagName":39,"properties":3585,"children":3586},{"style":440},[3587],{"type":27,"value":443},{"type":18,"tagName":39,"properties":3589,"children":3590},{"style":398},[3591],{"type":27,"value":3592}," 0.3",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3595,"children":3596},{"class":227},[3597],{"type":18,"tagName":39,"properties":3598,"children":3599},{"style":372},[3600],{"type":27,"value":3601},"    )",{"type":27,"value":93},{"type":18,"tagName":39,"properties":3604,"children":3605},{"class":227},[3606],{"type":18,"tagName":39,"properties":3607,"children":3608},{"style":372},[3609],{"type":27,"value":986},{"type":27,"value":93},{"type":18,"tagName":39,"properties":3612,"children":3613},{"class":227},[3614],{"type":18,"tagName":39,"properties":3615,"children":3616},{"style":372},[3617],{"type":27,"value":3618},"}",{"type":27,"value":93},{"type":18,"tagName":3621,"properties":3622,"children":3624,"position":3634},"h2",{"id":3623},"how-it-works",[3625],{"type":27,"value":3626,"position":3627},"How it works",{"start":3628,"end":3631},{"line":3629,"column":60,"offset":3630},168,6652,{"line":3629,"column":3632,"offset":3633},16,6664,{"start":3635,"end":3637},{"line":3629,"column":31,"offset":3636},6649,{"line":3629,"column":3632,"offset":3633},{"type":27,"value":93},{"type":18,"tagName":123,"properties":3640,"children":3641,"position":3735},{},[3642,3661,3668,3690,3697,3709,3716,3728],{"type":18,"tagName":3643,"properties":3644,"children":3645,"position":3655},"strong",{},[3646],{"type":27,"value":3647,"position":3648},"One source of truth for the data.",{"start":3649,"end":3652},{"line":3650,"column":36,"offset":3651},170,6668,{"line":3650,"column":3653,"offset":3654},36,6701,{"start":3656,"end":3658},{"line":3650,"column":31,"offset":3657},6666,{"line":3650,"column":3659,"offset":3660},38,6703,{"type":27,"value":3662,"position":3663}," The grid is computed from\n",{"start":3664,"end":3665},{"line":3650,"column":3659,"offset":3660},{"line":3666,"column":31,"offset":3667},171,6730,{"type":18,"tagName":136,"properties":3669,"children":3671,"position":3685},{"href":3670},"/kscript/core-concepts/multi-source",[3672],{"type":18,"tagName":182,"properties":3673,"children":3674,"position":3682},{},[3675],{"type":27,"value":3676,"position":3677},"requestBars",{"start":3678,"end":3680},{"line":3666,"column":35,"offset":3679},6731,{"line":3666,"column":133,"offset":3681},6744,{"start":3683,"end":3684},{"line":3666,"column":35,"offset":3679},{"line":3666,"column":133,"offset":3681},{"start":3686,"end":3687},{"line":3666,"column":31,"offset":3667},{"line":3666,"column":3688,"offset":3689},53,6782,{"type":27,"value":3691,"position":3692}," with ",{"start":3693,"end":3694},{"line":3666,"column":3688,"offset":3689},{"line":3666,"column":3695,"offset":3696},59,6788,{"type":18,"tagName":182,"properties":3698,"children":3699,"position":3706},{},[3700],{"type":27,"value":531,"position":3701},{"start":3702,"end":3703},{"line":3666,"column":3695,"offset":3696},{"line":3666,"column":3704,"offset":3705},65,6794,{"start":3707,"end":3708},{"line":3666,"column":3695,"offset":3696},{"line":3666,"column":3704,"offset":3705},{"type":27,"value":3710,"position":3711}," and\n",{"start":3712,"end":3713},{"line":3666,"column":3704,"offset":3705},{"line":3714,"column":31,"offset":3715},172,6799,{"type":18,"tagName":182,"properties":3717,"children":3718,"position":3725},{},[3719],{"type":27,"value":3720,"position":3721},"anchor: \"latest\"",{"start":3722,"end":3723},{"line":3714,"column":31,"offset":3715},{"line":3714,"column":173,"offset":3724},6817,{"start":3726,"end":3727},{"line":3714,"column":31,"offset":3715},{"line":3714,"column":173,"offset":3724},{"type":27,"value":3729,"position":3730},": three years of native daily bars pinned to the newest data,\nindependent of the chart's interval, its loaded depth, and wherever the user\nhas panned. That anchor is the whole trick. Without it, the request follows the\nchart window, and panning into history would silently rewrite last year's\nreturns. The chart source at the top only drives the bar timeline; nothing is\ncomputed from it.",{"start":3731,"end":3732},{"line":3714,"column":173,"offset":3724},{"line":72,"column":3733,"offset":3734},18,7205,{"start":3736,"end":3737},{"line":3650,"column":31,"offset":3657},{"line":72,"column":3733,"offset":3734},{"type":27,"value":93},{"type":18,"tagName":123,"properties":3740,"children":3741,"position":3785},{},[3742,3759,3766,3777],{"type":18,"tagName":3643,"properties":3743,"children":3744,"position":3753},{},[3745],{"type":27,"value":3746,"position":3747},"Guard against fallback rows.",{"start":3748,"end":3751},{"line":3749,"column":36,"offset":3750},179,7209,{"line":3749,"column":144,"offset":3752},7237,{"start":3754,"end":3756},{"line":3749,"column":31,"offset":3755},7207,{"line":3749,"column":3757,"offset":3758},33,7239,{"type":27,"value":3760,"position":3761}," A venue with no native daily history makes\n",{"start":3762,"end":3763},{"line":3749,"column":3757,"offset":3758},{"line":3764,"column":31,"offset":3765},180,7283,{"type":18,"tagName":182,"properties":3767,"children":3768,"position":3774},{},[3769],{"type":27,"value":3676,"position":3770},{"start":3771,"end":3772},{"line":3764,"column":31,"offset":3765},{"line":3764,"column":191,"offset":3773},7296,{"start":3775,"end":3776},{"line":3764,"column":31,"offset":3765},{"line":3764,"column":191,"offset":3773},{"type":27,"value":3778,"position":3779}," fall back to chart-interval rows. Multi-day rows would mislabel\nmonths (a bar's close can land in the month after its open), so the script\nscans for the smallest consecutive bar spacing and discards the dataset when\nthat step is wider than 1.5 days. An empty dataset simply renders an empty\npane, which is honest; a silently mislabeled grid is not.",{"start":3780,"end":3781},{"line":3764,"column":191,"offset":3773},{"line":3782,"column":3783,"offset":3784},184,58,7645,{"start":3786,"end":3787},{"line":3749,"column":31,"offset":3755},{"line":3782,"column":3783,"offset":3784},{"type":27,"value":93},{"type":18,"tagName":123,"properties":3790,"children":3791,"position":3875},{},[3792,3810,3818,3830,3837,3850,3857,3869],{"type":18,"tagName":3643,"properties":3793,"children":3794,"position":3804},{},[3795],{"type":27,"value":3796,"position":3797},"Reduce to month closes, then to returns.",{"start":3798,"end":3801},{"line":3799,"column":36,"offset":3800},186,7649,{"line":3799,"column":3802,"offset":3803},43,7689,{"start":3805,"end":3807},{"line":3799,"column":31,"offset":3806},7647,{"line":3799,"column":3808,"offset":3809},45,7691,{"type":27,"value":3811,"position":3812}," One pass keeps the last valid\ndaily close per calendar month (key = ",{"start":3813,"end":3814},{"line":3799,"column":3808,"offset":3809},{"line":3815,"column":3816,"offset":3817},187,39,7760,{"type":18,"tagName":182,"properties":3819,"children":3820,"position":3827},{},[3821],{"type":27,"value":3822,"position":3823},"year * 100 + month",{"start":3824,"end":3825},{"line":3815,"column":3816,"offset":3817},{"line":3815,"column":3695,"offset":3826},7780,{"start":3828,"end":3829},{"line":3815,"column":3816,"offset":3817},{"line":3815,"column":3695,"offset":3826},{"type":27,"value":3831,"position":3832},"). The return for a\nmonth is its close over the previous month's close, minus one, and only\ncalendar-adjacent months produce a cell: if a month has no valid close, the\ngap stays a gap instead of turning the next cell into a mislabeled two-month\nmove. Each return lands at ",{"start":3833,"end":3834},{"line":3815,"column":3695,"offset":3826},{"line":3835,"column":115,"offset":3836},191,8052,{"type":18,"tagName":182,"properties":3838,"children":3839,"position":3847},{},[3840],{"type":27,"value":3841,"position":3842},"[yearRow, monthCol, value]",{"start":3843,"end":3844},{"line":3835,"column":115,"offset":3836},{"line":3835,"column":3845,"offset":3846},56,8080,{"start":3848,"end":3849},{"line":3835,"column":115,"offset":3836},{"line":3835,"column":3845,"offset":3846},{"type":27,"value":3851,"position":3852},", which is exactly the\ncell shape ",{"start":3853,"end":3854},{"line":3835,"column":3845,"offset":3846},{"line":3855,"column":130,"offset":3856},192,8114,{"type":18,"tagName":182,"properties":3858,"children":3859,"position":3866},{},[3860],{"type":27,"value":186,"position":3861},{"start":3862,"end":3863},{"line":3855,"column":130,"offset":3856},{"line":3855,"column":3864,"offset":3865},24,8126,{"start":3867,"end":3868},{"line":3855,"column":130,"offset":3856},{"line":3855,"column":3864,"offset":3865},{"type":27,"value":3870,"position":3871}," wants.",{"start":3872,"end":3873},{"line":3855,"column":3864,"offset":3865},{"line":3855,"column":144,"offset":3874},8133,{"start":3876,"end":3877},{"line":3799,"column":31,"offset":3806},{"line":3855,"column":144,"offset":3874},{"type":27,"value":93},{"type":18,"tagName":123,"properties":3880,"children":3881,"position":3994},{},[3882,3899,3906,3918,3925,3946,3954,3967,3974,3986],{"type":18,"tagName":3643,"properties":3883,"children":3884,"position":3894},{},[3885],{"type":27,"value":3886,"position":3887},"Summary rows and the highlight.",{"start":3888,"end":3891},{"line":3889,"column":36,"offset":3890},194,8137,{"line":3889,"column":3892,"offset":3893},34,8168,{"start":3895,"end":3897},{"line":3889,"column":31,"offset":3896},8135,{"line":3889,"column":3653,"offset":3898},8170,{"type":27,"value":3900,"position":3901}," The three ",{"start":3902,"end":3903},{"line":3889,"column":3653,"offset":3898},{"line":3889,"column":3904,"offset":3905},47,8181,{"type":18,"tagName":182,"properties":3907,"children":3908,"position":3915},{},[3909],{"type":27,"value":3910,"position":3911},"summary",{"start":3912,"end":3913},{"line":3889,"column":3904,"offset":3905},{"line":3889,"column":3845,"offset":3914},8190,{"start":3916,"end":3917},{"line":3889,"column":3904,"offset":3905},{"line":3889,"column":3845,"offset":3914},{"type":27,"value":3919,"position":3920}," rows re-bucket the\nsame returns by calendar month across years: mean, median (via the\n",{"start":3921,"end":3922},{"line":3889,"column":3845,"offset":3914},{"line":3923,"column":31,"offset":3924},196,8277,{"type":18,"tagName":136,"properties":3926,"children":3928,"position":3942},{"href":3927},"/kscript/core-concepts/collections",[3929],{"type":18,"tagName":182,"properties":3930,"children":3931,"position":3939},{},[3932],{"type":27,"value":3933,"position":3934},"sort()",{"start":3935,"end":3937},{"line":3923,"column":35,"offset":3936},8278,{"line":3923,"column":65,"offset":3938},8286,{"start":3940,"end":3941},{"line":3923,"column":35,"offset":3936},{"line":3923,"column":65,"offset":3938},{"start":3943,"end":3944},{"line":3923,"column":31,"offset":3924},{"line":3923,"column":3904,"offset":3945},8323,{"type":27,"value":3947,"position":3948}," comparator-free numeric sort),\nand share of positive months. Months with no observations push ",{"start":3949,"end":3950},{"line":3923,"column":3904,"offset":3945},{"line":3951,"column":3952,"offset":3953},197,64,8418,{"type":18,"tagName":182,"properties":3955,"children":3956,"position":3964},{},[3957],{"type":27,"value":3958,"position":3959},"na",{"start":3960,"end":3961},{"line":3951,"column":3952,"offset":3953},{"line":3951,"column":3962,"offset":3963},68,8422,{"start":3965,"end":3966},{"line":3951,"column":3952,"offset":3953},{"line":3951,"column":3962,"offset":3963},{"type":27,"value":3968,"position":3969},", which\nrenders as a blank summary cell. ",{"start":3970,"end":3971},{"line":3951,"column":3962,"offset":3963},{"line":3972,"column":3892,"offset":3973},198,8463,{"type":18,"tagName":182,"properties":3975,"children":3976,"position":3983},{},[3977],{"type":27,"value":3978,"position":3979},"highlight",{"start":3980,"end":3981},{"line":3972,"column":3892,"offset":3973},{"line":3972,"column":3808,"offset":3982},8474,{"start":3984,"end":3985},{"line":3972,"column":3892,"offset":3973},{"line":3972,"column":3808,"offset":3982},{"type":27,"value":3987,"position":3988}," pins the eye to the forming\nmonth: the last daily bar's year row and month column.",{"start":3989,"end":3990},{"line":3972,"column":3808,"offset":3982},{"line":3991,"column":3992,"offset":3993},199,55,8557,{"start":3995,"end":3996},{"line":3889,"column":31,"offset":3896},{"line":3991,"column":3992,"offset":3993},{"type":27,"value":93},{"type":18,"tagName":123,"properties":3999,"children":4000,"position":4102},{},[4001,4017,4025,4037,4044,4057,4064,4077,4084,4096],{"type":18,"tagName":3643,"properties":4002,"children":4003,"position":4012},{},[4004],{"type":27,"value":4005,"position":4006},"Emit once, from the last bar.",{"start":4007,"end":4010},{"line":4008,"column":36,"offset":4009},201,8561,{"line":4008,"column":37,"offset":4011},8590,{"start":4013,"end":4015},{"line":4008,"column":31,"offset":4014},8559,{"line":4008,"column":3892,"offset":4016},8592,{"type":27,"value":4018,"position":4019}," Foreign panes take the finished dataset in\none call, so everything runs inside ",{"start":4020,"end":4021},{"line":4008,"column":3892,"offset":4016},{"line":4022,"column":4023,"offset":4024},202,37,8672,{"type":18,"tagName":182,"properties":4026,"children":4027,"position":4034},{},[4028],{"type":27,"value":4029,"position":4030},"if (isLastBar)",{"start":4031,"end":4032},{"line":4022,"column":4023,"offset":4024},{"line":4022,"column":3688,"offset":4033},8688,{"start":4035,"end":4036},{"line":4022,"column":4023,"offset":4024},{"line":4022,"column":3688,"offset":4033},{"type":27,"value":4038,"position":4039}," and the script ends with\na single ",{"start":4040,"end":4041},{"line":4022,"column":3688,"offset":4033},{"line":4042,"column":65,"offset":4043},203,8723,{"type":18,"tagName":182,"properties":4045,"children":4046,"position":4054},{},[4047],{"type":27,"value":4048,"position":4049},"plotMatrix(...)",{"start":4050,"end":4051},{"line":4042,"column":65,"offset":4043},{"line":4042,"column":4052,"offset":4053},27,8740,{"start":4055,"end":4056},{"line":4042,"column":65,"offset":4043},{"line":4042,"column":4052,"offset":4053},{"type":27,"value":4058,"position":4059}," carrying data, labels, ",{"start":4060,"end":4061},{"line":4042,"column":4052,"offset":4053},{"line":4042,"column":4062,"offset":4063},51,8764,{"type":18,"tagName":182,"properties":4065,"children":4066,"position":4074},{},[4067],{"type":27,"value":4068,"position":4069},"format = \"percent\"",{"start":4070,"end":4071},{"line":4042,"column":4062,"offset":4063},{"line":4042,"column":4072,"offset":4073},71,8784,{"start":4075,"end":4076},{"line":4042,"column":4062,"offset":4063},{"line":4042,"column":4072,"offset":4073},{"type":27,"value":4078,"position":4079},",\nsummaries, the highlight, and a ",{"start":4080,"end":4081},{"line":4042,"column":4072,"offset":4073},{"line":4082,"column":3757,"offset":4083},204,8818,{"type":18,"tagName":182,"properties":4085,"children":4086,"position":4093},{},[4087],{"type":27,"value":4088,"position":4089},"gridHeight",{"start":4090,"end":4091},{"line":4082,"column":3757,"offset":4083},{"line":4082,"column":3808,"offset":4092},8830,{"start":4094,"end":4095},{"line":4082,"column":3757,"offset":4083},{"line":4082,"column":3808,"offset":4092},{"type":27,"value":4097,"position":4098}," of 0.3.",{"start":4099,"end":4100},{"line":4082,"column":3808,"offset":4092},{"line":4082,"column":3688,"offset":4101},8838,{"start":4103,"end":4104},{"line":4008,"column":31,"offset":4014},{"line":4082,"column":3688,"offset":4101},{"type":27,"value":93},{"type":18,"tagName":3621,"properties":4107,"children":4109,"position":4118},{"id":4108},"customize-it",[4110],{"type":27,"value":4111,"position":4112},"Customize it",{"start":4113,"end":4116},{"line":4114,"column":60,"offset":4115},206,8843,{"line":4114,"column":3632,"offset":4117},8855,{"start":4119,"end":4121},{"line":4114,"column":31,"offset":4120},8840,{"line":4114,"column":3632,"offset":4117},{"type":27,"value":93},{"type":18,"tagName":4124,"properties":4125,"children":4126,"position":4488},"ul",{},[4127,4128,4200,4201,4260,4261,4312,4313,4438,4439,4487],{"type":27,"value":93},{"type":18,"tagName":4129,"properties":4130,"children":4131,"position":4196},"li",{},[4132,4150,4156,4169,4176,4189],{"type":18,"tagName":3643,"properties":4133,"children":4134,"position":4144},{},[4135],{"type":27,"value":4136,"position":4137},"Depth.",{"start":4138,"end":4141},{"line":4139,"column":71,"offset":4140},208,8861,{"line":4139,"column":4142,"offset":4143},11,8867,{"start":4145,"end":4147},{"line":4139,"column":36,"offset":4146},8859,{"line":4139,"column":4148,"offset":4149},13,8869,{"type":27,"value":4151,"position":4152}," ",{"start":4153,"end":4154},{"line":4139,"column":4148,"offset":4149},{"line":4139,"column":191,"offset":4155},8870,{"type":18,"tagName":182,"properties":4157,"children":4158,"position":4166},{},[4159],{"type":27,"value":4160,"position":4161},"bars: 1095",{"start":4162,"end":4163},{"line":4139,"column":191,"offset":4155},{"line":4139,"column":4164,"offset":4165},26,8882,{"start":4167,"end":4168},{"line":4139,"column":191,"offset":4155},{"line":4139,"column":4164,"offset":4165},{"type":27,"value":4170,"position":4171}," is three years. Stretch it to five (",{"start":4172,"end":4173},{"line":4139,"column":4164,"offset":4165},{"line":4139,"column":4174,"offset":4175},63,8919,{"type":18,"tagName":182,"properties":4177,"children":4178,"position":4186},{},[4179],{"type":27,"value":4180,"position":4181},"1825",{"start":4182,"end":4183},{"line":4139,"column":4174,"offset":4175},{"line":4139,"column":4184,"offset":4185},69,8925,{"start":4187,"end":4188},{"line":4139,"column":4174,"offset":4175},{"line":4139,"column":4184,"offset":4185},{"type":27,"value":4190,"position":4191},") and the\ngrid simply grows more year rows; the caps are far away (64 rows).",{"start":4192,"end":4193},{"line":4139,"column":4184,"offset":4185},{"line":4194,"column":4184,"offset":4195},209,9003,{"start":4197,"end":4199},{"line":4139,"column":31,"offset":4198},8857,{"line":4194,"column":4184,"offset":4195},{"type":27,"value":93},{"type":18,"tagName":4129,"properties":4202,"children":4203,"position":4256},{},[4204,4220,4227,4249],{"type":18,"tagName":3643,"properties":4205,"children":4206,"position":4215},{},[4207],{"type":27,"value":4208,"position":4209},"Weekly seasonality.",{"start":4210,"end":4213},{"line":4211,"column":71,"offset":4212},210,9008,{"line":4211,"column":3864,"offset":4214},9027,{"start":4216,"end":4218},{"line":4211,"column":36,"offset":4217},9006,{"line":4211,"column":4164,"offset":4219},9029,{"type":27,"value":4221,"position":4222}," Re-key the bucketing on\n",{"start":4223,"end":4224},{"line":4211,"column":4164,"offset":4219},{"line":4225,"column":31,"offset":4226},211,9054,{"type":18,"tagName":136,"properties":4228,"children":4230,"position":4244},{"href":4229},"/kscript/core-concepts/time-and-sessions",[4231],{"type":18,"tagName":182,"properties":4232,"children":4233,"position":4241},{},[4234],{"type":27,"value":4235,"position":4236},"weekOfYear",{"start":4237,"end":4239},{"line":4225,"column":60,"offset":4238},9057,{"line":4225,"column":3632,"offset":4240},9069,{"start":4242,"end":4243},{"line":4225,"column":60,"offset":4238},{"line":4225,"column":3632,"offset":4240},{"start":4245,"end":4247},{"line":4225,"column":36,"offset":4246},9056,{"line":4225,"column":3695,"offset":4248},9112,{"type":27,"value":4250,"position":4251}," instead of month\nand swap the column labels for week numbers.",{"start":4252,"end":4253},{"line":4225,"column":3695,"offset":4248},{"line":4254,"column":3904,"offset":4255},212,9176,{"start":4257,"end":4259},{"line":4211,"column":31,"offset":4258},9004,{"line":4254,"column":3904,"offset":4255},{"type":27,"value":93},{"type":18,"tagName":4129,"properties":4262,"children":4263,"position":4308},{},[4264,4281,4288,4300],{"type":18,"tagName":3643,"properties":4265,"children":4266,"position":4275},{},[4267],{"type":27,"value":4268,"position":4269},"Win rate only.",{"start":4270,"end":4273},{"line":4271,"column":71,"offset":4272},213,9181,{"line":4271,"column":173,"offset":4274},9195,{"start":4276,"end":4278},{"line":4271,"column":36,"offset":4277},9179,{"line":4271,"column":4279,"offset":4280},21,9197,{"type":27,"value":4282,"position":4283}," Drop the AVG and MED rows and keep WIN%: the ",{"start":4284,"end":4285},{"line":4271,"column":4279,"offset":4280},{"line":4271,"column":4286,"offset":4287},67,9243,{"type":18,"tagName":182,"properties":4289,"children":4290,"position":4297},{},[4291],{"type":27,"value":3910,"position":4292},{"start":4293,"end":4294},{"line":4271,"column":4286,"offset":4287},{"line":4271,"column":4295,"offset":4296},76,9252,{"start":4298,"end":4299},{"line":4271,"column":4286,"offset":4287},{"line":4271,"column":4295,"offset":4296},{"type":27,"value":4301,"position":4302},"\nargument takes one to five rows.",{"start":4303,"end":4304},{"line":4271,"column":4295,"offset":4296},{"line":4305,"column":4306,"offset":4307},214,35,9287,{"start":4309,"end":4311},{"line":4271,"column":31,"offset":4310},9177,{"line":4305,"column":4306,"offset":4307},{"type":27,"value":93},{"type":18,"tagName":4129,"properties":4314,"children":4315,"position":4434},{},[4316,4332,4337,4349,4355,4367,4373,4385,4392,4404,4411,4427],{"type":18,"tagName":3643,"properties":4317,"children":4318,"position":4327},{},[4319],{"type":27,"value":4320,"position":4321},"Different formatting.",{"start":4322,"end":4325},{"line":4323,"column":71,"offset":4324},215,9292,{"line":4323,"column":4164,"offset":4326},9313,{"start":4328,"end":4330},{"line":4323,"column":36,"offset":4329},9290,{"line":4323,"column":115,"offset":4331},9315,{"type":27,"value":4151,"position":4333},{"start":4334,"end":4335},{"line":4323,"column":115,"offset":4331},{"line":4323,"column":33,"offset":4336},9316,{"type":18,"tagName":182,"properties":4338,"children":4339,"position":4346},{},[4340],{"type":27,"value":4068,"position":4341},{"start":4342,"end":4343},{"line":4323,"column":33,"offset":4336},{"line":4323,"column":4344,"offset":4345},49,9336,{"start":4347,"end":4348},{"line":4323,"column":33,"offset":4336},{"line":4323,"column":4344,"offset":4345},{"type":27,"value":4350,"position":4351}," renders ",{"start":4352,"end":4353},{"line":4323,"column":4344,"offset":4345},{"line":4323,"column":3783,"offset":4354},9345,{"type":18,"tagName":182,"properties":4356,"children":4357,"position":4364},{},[4358],{"type":27,"value":4359,"position":4360},"0.047",{"start":4361,"end":4362},{"line":4323,"column":3783,"offset":4354},{"line":4323,"column":3704,"offset":4363},9352,{"start":4365,"end":4366},{"line":4323,"column":3783,"offset":4354},{"line":4323,"column":3704,"offset":4363},{"type":27,"value":4368,"position":4369}," as ",{"start":4370,"end":4371},{"line":4323,"column":3704,"offset":4363},{"line":4323,"column":4184,"offset":4372},9356,{"type":18,"tagName":182,"properties":4374,"children":4375,"position":4382},{},[4376],{"type":27,"value":4377,"position":4378},"+4.7%",{"start":4379,"end":4380},{"line":4323,"column":4184,"offset":4372},{"line":4323,"column":4295,"offset":4381},9363,{"start":4383,"end":4384},{"line":4323,"column":4184,"offset":4372},{"line":4323,"column":4295,"offset":4381},{"type":27,"value":4386,"position":4387},".\nUse ",{"start":4388,"end":4389},{"line":4323,"column":4295,"offset":4381},{"line":4390,"column":86,"offset":4391},216,9371,{"type":18,"tagName":182,"properties":4393,"children":4394,"position":4401},{},[4395],{"type":27,"value":4396,"position":4397},"\"number\"",{"start":4398,"end":4399},{"line":4390,"column":86,"offset":4391},{"line":4390,"column":159,"offset":4400},9381,{"start":4402,"end":4403},{"line":4390,"column":86,"offset":4391},{"line":4390,"column":159,"offset":4400},{"type":27,"value":4405,"position":4406}," for raw ratios, and see the\n",{"start":4407,"end":4408},{"line":4390,"column":159,"offset":4400},{"line":4409,"column":31,"offset":4410},217,9410,{"type":18,"tagName":136,"properties":4412,"children":4413,"position":4421},{"href":179},[4414],{"type":27,"value":4415,"position":4416},"foreign-pane reference",{"start":4417,"end":4419},{"line":4409,"column":60,"offset":4418},9413,{"line":4409,"column":4164,"offset":4420},9435,{"start":4422,"end":4424},{"line":4409,"column":36,"offset":4423},9412,{"line":4409,"column":4425,"offset":4426},72,9481,{"type":27,"value":4428,"position":4429}," for\nthe full argument surface, caps, and error messages.",{"start":4430,"end":4431},{"line":4409,"column":4425,"offset":4426},{"line":4432,"column":3992,"offset":4433},218,9540,{"start":4435,"end":4437},{"line":4323,"column":31,"offset":4436},9288,{"line":4432,"column":3992,"offset":4433},{"type":27,"value":93},{"type":18,"tagName":4129,"properties":4440,"children":4441,"position":4483},{},[4442,4458,4464,4476],{"type":18,"tagName":3643,"properties":4443,"children":4444,"position":4453},{},[4445],{"type":27,"value":4446,"position":4447},"Pane height.",{"start":4448,"end":4451},{"line":4449,"column":71,"offset":4450},219,9545,{"line":4449,"column":159,"offset":4452},9557,{"start":4454,"end":4456},{"line":4449,"column":36,"offset":4455},9543,{"line":4449,"column":173,"offset":4457},9559,{"type":27,"value":4151,"position":4459},{"start":4460,"end":4461},{"line":4449,"column":173,"offset":4457},{"line":4449,"column":4462,"offset":4463},20,9560,{"type":18,"tagName":182,"properties":4465,"children":4466,"position":4473},{},[4467],{"type":27,"value":4468,"position":4469},"gridHeight = 0.3",{"start":4470,"end":4471},{"line":4449,"column":4462,"offset":4463},{"line":4449,"column":3659,"offset":4472},9578,{"start":4474,"end":4475},{"line":4449,"column":4462,"offset":4463},{"line":4449,"column":3659,"offset":4472},{"type":27,"value":4477,"position":4478}," gives the pane 30% of the chart. Any\nvalue in 0.1 to 0.8 works.",{"start":4479,"end":4480},{"line":4449,"column":3659,"offset":4472},{"line":4481,"column":33,"offset":4482},220,9644,{"start":4484,"end":4486},{"line":4449,"column":31,"offset":4485},9541,{"line":4481,"column":33,"offset":4482},{"type":27,"value":93},{"start":4489,"end":4490},{"line":4139,"column":31,"offset":4198},{"line":4481,"column":33,"offset":4482},{"type":27,"value":93},{"type":18,"tagName":123,"properties":4493,"children":4494,"position":4560},{},[4495,4504,4525,4532,4553],{"type":27,"value":4496,"position":4497},"The same accumulate-then-emit pattern drives the other two pane kinds:\n",{"start":4498,"end":4501},{"line":4499,"column":31,"offset":4500},222,9646,{"line":4502,"column":31,"offset":4503},223,9717,{"type":18,"tagName":136,"properties":4505,"children":4507,"position":4521},{"href":4506},"/kscript/functions/foreign-panes#plotcurve",[4508],{"type":18,"tagName":182,"properties":4509,"children":4510,"position":4518},{},[4511],{"type":27,"value":4512,"position":4513},"plotCurve",{"start":4514,"end":4516},{"line":4502,"column":35,"offset":4515},9718,{"line":4502,"column":4148,"offset":4517},9729,{"start":4519,"end":4520},{"line":4502,"column":35,"offset":4515},{"line":4502,"column":4148,"offset":4517},{"start":4522,"end":4523},{"line":4502,"column":31,"offset":4503},{"line":4502,"column":3783,"offset":4524},9774,{"type":27,"value":4526,"position":4527}," for numeric-X\nfunction panes (volatility cones, return distributions) and\n",{"start":4528,"end":4529},{"line":4502,"column":3783,"offset":4524},{"line":4530,"column":31,"offset":4531},225,9849,{"type":18,"tagName":136,"properties":4533,"children":4535,"position":4549},{"href":4534},"/kscript/functions/foreign-panes#plottiles",[4536],{"type":18,"tagName":182,"properties":4537,"children":4538,"position":4546},{},[4539],{"type":27,"value":4540,"position":4541},"plotTiles",{"start":4542,"end":4544},{"line":4530,"column":35,"offset":4543},9850,{"line":4530,"column":4148,"offset":4545},9861,{"start":4547,"end":4548},{"line":4530,"column":35,"offset":4543},{"line":4530,"column":4148,"offset":4545},{"start":4550,"end":4551},{"line":4530,"column":31,"offset":4531},{"line":4530,"column":3783,"offset":4552},9906,{"type":27,"value":4554,"position":4555}," for KPI dashboards.",{"start":4556,"end":4557},{"line":4530,"column":3783,"offset":4552},{"line":4530,"column":4558,"offset":4559},78,9926,{"start":4561,"end":4562},{"line":4499,"column":31,"offset":4500},{"line":4530,"column":4558,"offset":4559},{"quirksMode":4564},false,{"start":4566,"end":4567},{"line":31,"column":31,"offset":101},{"line":4568,"column":31,"offset":4569},226,9927,1784888039343]