Changes this week

Records per day by kind. Click a segment to filter by its day and kind; Shift+click adds.

ChartForgeX chartChart with 3 data series: Updates, Notes, Retirements.{"v":1,"series":[{"i":0,"key":"cfx:auto:1","name":"Updates","color":"var(--hfx-color-series-1, #2A78D6)"},{"i":1,"key":"cfx:auto:2","name":"Notes","color":"var(--hfx-color-series-2, #0F9F8C)"},{"i":2,"key":"cfx:auto:3","name":"Retirements","color":"var(--hfx-color-series-4, #8055C4)"}],"points":[{"s":0,"p":0,"x":1,"l":"Sat 24","v":"2","k":["r114","r115"]},{"s":1,"p":0,"x":1,"l":"Sat 24","v":"0"},{"s":2,"p":0,"x":1,"l":"Sat 24","v":"1","k":["r116"]},{"s":0,"p":1,"x":2,"l":"Sun 25","v":"2","k":["r117","r118"]},{"s":1,"p":1,"x":2,"l":"Sun 25","v":"0"},{"s":2,"p":1,"x":2,"l":"Sun 25","v":"1","k":["r119"]},{"s":0,"p":2,"x":3,"l":"Mon 26","v":"4","k":["r120","r121","r122","r123"]},{"s":1,"p":2,"x":3,"l":"Mon 26","v":"2","k":["r124","r125"]},{"s":2,"p":2,"x":3,"l":"Mon 26","v":"0"},{"s":0,"p":3,"x":4,"l":"Tue 27","v":"4","k":["r126","r127","r128","r129"]},{"s":1,"p":3,"x":4,"l":"Tue 27","v":"2","k":["r130","r131"]},{"s":2,"p":3,"x":4,"l":"Tue 27","v":"0"},{"s":0,"p":4,"x":5,"l":"Wed 28","v":"4","k":["r132","r133","r134","r135"]},{"s":1,"p":4,"x":5,"l":"Wed 28","v":"2","k":["r136","r137"]},{"s":2,"p":4,"x":5,"l":"Wed 28","v":"0"},{"s":0,"p":5,"x":6,"l":"Thu 29","v":"4","k":["r138","r139","r140","r141"]},{"s":1,"p":5,"x":6,"l":"Thu 29","v":"1","k":["r142"]},{"s":2,"p":5,"x":6,"l":"Thu 29","v":"0"},{"s":0,"p":6,"x":7,"l":"Fri 30","v":"5","k":["r143","r144","r145","r146","r147"]},{"s":1,"p":6,"x":7,"l":"Fri 30","v":"0"},{"s":2,"p":6,"x":7,"l":"Fri 30","v":"1","k":["r148"]}]}UpdatesNotesRetirementsSat24Sun25Mon26Tue27Wed28Thu29Fri300246

Daily trend

Hover for every series at a date. Drag across days to filter that range; the heatmap follows.

ChartForgeX chartChart with 2 data series: All records, Updates.{"v":1,"series":[{"i":0,"key":"cfx:auto:1","name":"All records","color":"var(--hfx-color-series-1, #2A78D6)"},{"i":1,"key":"cfx:auto:2","name":"Updates","color":"var(--hfx-color-series-2, #0F9F8C)"}],"points":[{"s":0,"p":0,"x":46296,"xi":"2026-10-01T00:00:00.0000000Z","l":"1 Oct","v":"4","k":["r001","r002","r003","r004"]},{"s":1,"p":0,"x":46296,"xi":"2026-10-01T00:00:00.0000000Z","l":"1 Oct","v":"3","k":["r001","r002","r003"]},{"s":0,"p":1,"x":46297,"xi":"2026-10-02T00:00:00.0000000Z","l":"2 Oct","v":"7","k":["r005","r006","r007","r008","r009","r010","r011"]},{"s":1,"p":1,"x":46297,"xi":"2026-10-02T00:00:00.0000000Z","l":"2 Oct","v":"5","k":["r005","r006","r007","r008","r009"]},{"s":0,"p":2,"x":46298,"xi":"2026-10-03T00:00:00.0000000Z","l":"3 Oct","v":"2","k":["r012","r013"]},{"s":1,"p":2,"x":46298,"xi":"2026-10-03T00:00:00.0000000Z","l":"3 Oct","v":"1","k":["r012"]},{"s":0,"p":3,"x":46299,"xi":"2026-10-04T00:00:00.0000000Z","l":"4 Oct","v":"4","k":["r014","r015","r016","r017"]},{"s":1,"p":3,"x":46299,"xi":"2026-10-04T00:00:00.0000000Z","l":"4 Oct","v":"3","k":["r014","r015","r016"]},{"s":0,"p":4,"x":46300,"xi":"2026-10-05T00:00:00.0000000Z","l":"5 Oct","v":"6","k":["r018","r019","r020","r021","r022","r023"]},{"s":1,"p":4,"x":46300,"xi":"2026-10-05T00:00:00.0000000Z","l":"5 Oct","v":"4","k":["r018","r019","r020","r021"]},{"s":0,"p":5,"x":46301,"xi":"2026-10-06T00:00:00.0000000Z","l":"6 Oct","v":"7","k":["r024","r025","r026","r027","r028","r029","r030"]},{"s":1,"p":5,"x":46301,"xi":"2026-10-06T00:00:00.0000000Z","l":"6 Oct","v":"4","k":["r024","r025","r026","r027"]},{"s":0,"p":6,"x":46302,"xi":"2026-10-07T00:00:00.0000000Z","l":"7 Oct","v":"6","k":["r031","r032","r033","r034","r035","r036"]},{"s":1,"p":6,"x":46302,"xi":"2026-10-07T00:00:00.0000000Z","l":"7 Oct","v":"5","k":["r031","r032","r033","r034","r035"]},{"s":0,"p":7,"x":46303,"xi":"2026-10-08T00:00:00.0000000Z","l":"8 Oct","v":"7","k":["r037","r038","r039","r040","r041","r042","r043"]},{"s":1,"p":7,"x":46303,"xi":"2026-10-08T00:00:00.0000000Z","l":"8 Oct","v":"4","k":["r037","r038","r039","r040"]},{"s":0,"p":8,"x":46304,"xi":"2026-10-09T00:00:00.0000000Z","l":"9 Oct","v":"4","k":["r044","r045","r046","r047"]},{"s":1,"p":8,"x":46304,"xi":"2026-10-09T00:00:00.0000000Z","l":"9 Oct","v":"3","k":["r044","r045","r046"]},{"s":0,"p":9,"x":46305,"xi":"2026-10-10T00:00:00.0000000Z","l":"10 Oct","v":"3","k":["r048","r049","r050"]},{"s":1,"p":9,"x":46305,"xi":"2026-10-10T00:00:00.0000000Z","l":"10 Oct","v":"2","k":["r048","r049"]},{"s":0,"p":10,"x":46306,"xi":"2026-10-11T00:00:00.0000000Z","l":"11 Oct","v":"4","k":["r051","r052","r053","r054"]},{"s":1,"p":10,"x":46306,"xi":"2026-10-11T00:00:00.0000000Z","l":"11 Oct","v":"3","k":["r051","r052","r053"]},{"s":0,"p":11,"x":46307,"xi":"2026-10-12T00:00:00.0000000Z","l":"12 Oct","v":"4","k":["r055","r056","r057","r058"]},{"s":1,"p":11,"x":46307,"xi":"2026-10-12T00:00:00.0000000Z","l":"12 Oct","v":"3","k":["r055","r056","r057"]},{"s":0,"p":12,"x":46308,"xi":"2026-10-13T00:00:00.0000000Z","l":"13 Oct","v":"10","k":["r059","r060","r061","r062","r063","r064","r065","r066","r067","r068"]},{"s":1,"p":12,"x":46308,"xi":"2026-10-13T00:00:00.0000000Z","l":"13 Oct","v":"9","k":["r059","r060","r061","r062","r063","r064","r065","r066","r067"]},{"s":0,"p":13,"x":46309,"xi":"2026-10-14T00:00:00.0000000Z","l":"14 Oct","v":"8","k":["r069","r070","r071","r072","r073","r074","r075","r076"]},{"s":1,"p":13,"x":46309,"xi":"2026-10-14T00:00:00.0000000Z","l":"14 Oct","v":"5","k":["r069","r070","r071","r072","r073"]},{"s":0,"p":14,"x":46310,"xi":"2026-10-15T00:00:00.0000000Z","l":"15 Oct","v":"5","k":["r077","r078","r079","r080","r081"]},{"s":1,"p":14,"x":46310,"xi":"2026-10-15T00:00:00.0000000Z","l":"15 Oct","v":"4","k":["r077","r078","r079","r080"]},{"s":0,"p":15,"x":46311,"xi":"2026-10-16T00:00:00.0000000Z","l":"16 Oct","v":"7","k":["r082","r083","r084","r085","r086","r087","r088"]},{"s":1,"p":15,"x":46311,"xi":"2026-10-16T00:00:00.0000000Z","l":"16 Oct","v":"4","k":["r082","r083","r084","r085"]},{"s":0,"p":16,"x":46312,"xi":"2026-10-17T00:00:00.0000000Z","l":"17 Oct","v":"1","k":["r089"]},{"s":1,"p":16,"x":46312,"xi":"2026-10-17T00:00:00.0000000Z","l":"17 Oct","v":"1","k":["r089"]},{"s":0,"p":17,"x":46313,"xi":"2026-10-18T00:00:00.0000000Z","l":"18 Oct","v":"2","k":["r090","r091"]},{"s":1,"p":17,"x":46313,"xi":"2026-10-18T00:00:00.0000000Z","l":"18 Oct","v":"2","k":["r090","r091"]},{"s":0,"p":18,"x":46314,"xi":"2026-10-19T00:00:00.0000000Z","l":"19 Oct","v":"6","k":["r092","r093","r094","r095","r096","r097"]},{"s":1,"p":18,"x":46314,"xi":"2026-10-19T00:00:00.0000000Z","l":"19 Oct","v":"4","k":["r092","r093","r094","r095"]},{"s":0,"p":19,"x":46315,"xi":"2026-10-20T00:00:00.0000000Z","l":"20 Oct","v":"4","k":["r098","r099","r100","r101"]},{"s":1,"p":19,"x":46315,"xi":"2026-10-20T00:00:00.0000000Z","l":"20 Oct","v":"4","k":["r098","r099","r100","r101"]},{"s":0,"p":20,"x":46316,"xi":"2026-10-21T00:00:00.0000000Z","l":"21 Oct","v":"4","k":["r102","r103","r104","r105"]},{"s":1,"p":20,"x":46316,"xi":"2026-10-21T00:00:00.0000000Z","l":"21 Oct","v":"3","k":["r102","r103","r104"]},{"s":0,"p":21,"x":46317,"xi":"2026-10-22T00:00:00.0000000Z","l":"22 Oct","v":"4","k":["r106","r107","r108","r109"]},{"s":1,"p":21,"x":46317,"xi":"2026-10-22T00:00:00.0000000Z","l":"22 Oct","v":"4","k":["r106","r107","r108","r109"]},{"s":0,"p":22,"x":46318,"xi":"2026-10-23T00:00:00.0000000Z","l":"23 Oct","v":"4","k":["r110","r111","r112","r113"]},{"s":1,"p":22,"x":46318,"xi":"2026-10-23T00:00:00.0000000Z","l":"23 Oct","v":"3","k":["r110","r111","r112"]},{"s":0,"p":23,"x":46319,"xi":"2026-10-24T00:00:00.0000000Z","l":"24 Oct","v":"3","k":["r114","r115","r116"]},{"s":1,"p":23,"x":46319,"xi":"2026-10-24T00:00:00.0000000Z","l":"24 Oct","v":"2","k":["r114","r115"]},{"s":0,"p":24,"x":46320,"xi":"2026-10-25T00:00:00.0000000Z","l":"25 Oct","v":"3","k":["r117","r118","r119"]},{"s":1,"p":24,"x":46320,"xi":"2026-10-25T00:00:00.0000000Z","l":"25 Oct","v":"2","k":["r117","r118"]},{"s":0,"p":25,"x":46321,"xi":"2026-10-26T00:00:00.0000000Z","l":"26 Oct","v":"6","k":["r120","r121","r122","r123","r124","r125"]},{"s":1,"p":25,"x":46321,"xi":"2026-10-26T00:00:00.0000000Z","l":"26 Oct","v":"4","k":["r120","r121","r122","r123"]},{"s":0,"p":26,"x":46322,"xi":"2026-10-27T00:00:00.0000000Z","l":"27 Oct","v":"6","k":["r126","r127","r128","r129","r130","r131"]},{"s":1,"p":26,"x":46322,"xi":"2026-10-27T00:00:00.0000000Z","l":"27 Oct","v":"4","k":["r126","r127","r128","r129"]},{"s":0,"p":27,"x":46323,"xi":"2026-10-28T00:00:00.0000000Z","l":"28 Oct","v":"6","k":["r132","r133","r134","r135","r136","r137"]},{"s":1,"p":27,"x":46323,"xi":"2026-10-28T00:00:00.0000000Z","l":"28 Oct","v":"4","k":["r132","r133","r134","r135"]},{"s":0,"p":28,"x":46324,"xi":"2026-10-29T00:00:00.0000000Z","l":"29 Oct","v":"5","k":["r138","r139","r140","r141","r142"]},{"s":1,"p":28,"x":46324,"xi":"2026-10-29T00:00:00.0000000Z","l":"29 Oct","v":"4","k":["r138","r139","r140","r141"]},{"s":0,"p":29,"x":46325,"xi":"2026-10-30T00:00:00.0000000Z","l":"30 Oct","v":"6","k":["r143","r144","r145","r146","r147","r148"]},{"s":1,"p":29,"x":46325,"xi":"2026-10-30T00:00:00.0000000Z","l":"30 Oct","v":"5","k":["r143","r144","r145","r146","r147"]}]}All recordsUpdates12 Oct26 Oct0246810

Products by week

Records per product and week, by the Monday that starts it. Click a cell to filter.

ChartForgeX chartChart with 4 data series: Win 24H2, Win 25H2, Srv 2025, 365 Apps.{"v":1,"series":[{"i":0,"key":"cfx:auto:1","name":"Win 24H2","color":"color-mix(in srgb, var(--cfx-surface-card-alt, #F7F8F9) 76.88%, var(--hfx-color-series-1, #2A78D6))"},{"i":1,"key":"cfx:auto:2","name":"Win 25H2","color":"color-mix(in srgb, var(--cfx-surface-card-alt, #F7F8F9) 51.25%, var(--hfx-color-series-1, #2A78D6))"},{"i":2,"key":"cfx:auto:3","name":"Srv 2025","color":"color-mix(in srgb, var(--cfx-surface-card-alt, #F7F8F9) 71.75%, var(--hfx-color-series-1, #2A78D6))"},{"i":3,"key":"cfx:auto:4","name":"365 Apps","color":"color-mix(in srgb, var(--cfx-surface-card-alt, #F7F8F9) 61.5%, var(--hfx-color-series-1, #2A78D6))"}],"points":[{"s":0,"p":0,"x":1,"v":"2","k":["r010","r016"]},{"s":1,"p":0,"x":1,"v":"7","k":["r002","r003","r004","r006","r009","r011","r012"]},{"s":2,"p":0,"x":1,"v":"3","k":["r008","r014","r017"]},{"s":3,"p":0,"x":1,"v":"5","k":["r001","r005","r007","r013","r015"]},{"s":0,"p":1,"x":2,"v":"6","k":["r020","r031","r034","r040","r048","r049"]},{"s":1,"p":1,"x":2,"v":"17","k":["r019","r021","r022","r023","r025","r026","r027","r032","r035","r037","r038","r039","r041","r044","r046","r051","r053"]},{"s":2,"p":1,"x":2,"v":"4","k":["r036","r043","r047","r050"]},{"s":3,"p":1,"x":2,"v":"10","k":["r018","r024","r028","r029","r030","r033","r042","r045","r052","r054"]},{"s":0,"p":2,"x":3,"v":"5","k":["r055","r070","r071","r074","r083"]},{"s":1,"p":2,"x":3,"v":"17","k":["r057","r058","r061","r062","r063","r064","r065","r066","r067","r072","r073","r079","r081","r085","r087","r088","r090"]},{"s":2,"p":2,"x":3,"v":"7","k":["r059","r069","r077","r078","r084","r086","r089"]},{"s":3,"p":2,"x":3,"v":"8","k":["r056","r060","r068","r075","r076","r080","r082","r091"]},{"s":0,"p":3,"x":4,"v":"5","k":["r092","r096","r097","r106","r107"]},{"s":1,"p":3,"x":4,"v":"9","k":["r093","r095","r098","r101","r104","r109","r111","r118","r119"]},{"s":2,"p":3,"x":4,"v":"4","k":["r099","r102","r103","r115"]},{"s":3,"p":3,"x":4,"v":"10","k":["r094","r100","r105","r108","r110","r112","r113","r114","r116","r117"]},{"s":0,"p":4,"x":5,"v":"2","k":["r131","r148"]},{"s":1,"p":4,"x":5,"v":"16","k":["r120","r121","r122","r123","r125","r128","r130","r132","r134","r136","r137","r138","r139","r142","r146","r147"]},{"s":2,"p":4,"x":5,"v":"1","k":["r141"]},{"s":3,"p":4,"x":5,"v":"10","k":["r124","r126","r127","r129","r133","r135","r140","r143","r144","r145"]}]}Win 24H2Win 24H2, 28 Sep: 2Win 24H2, 5 Oct: 6Win 24H2, 12 Oct: 5Win 24H2, 19 Oct: 5Win 24H2, 26 Oct: 2Win 25H2Win 25H2, 28 Sep: 7Win 25H2, 5 Oct: 17Win 25H2, 12 Oct: 17Win 25H2, 19 Oct: 9Win 25H2, 26 Oct: 16Srv 2025Srv 2025, 28 Sep: 3Srv 2025, 5 Oct: 4Srv 2025, 12 Oct: 7Srv 2025, 19 Oct: 4Srv 2025, 26 Oct: 1365 Apps365 Apps, 28 Sep: 5365 Apps, 5 Oct: 10365 Apps, 12 Oct: 8365 Apps, 19 Oct: 10365 Apps, 26 Oct: 1028 Sep5 Oct12 Oct19 Oct26 OctRecords1510151711751015

Support windows

The current release is banded and open support fades. Click a release to filter.

ChartForgeX chartChart with 4 data series: Win 24H2, Win 25H2, Srv 2025, 365 Apps.{"v":1,"series":[{"i":0,"key":"release-0","name":"","color":"var(--hfx-color-text-secondary, #4D525B)"},{"i":1,"key":"release-1","name":"","color":"var(--hfx-color-series-1, #2A78D6)"},{"i":2,"key":"release-2","name":"","color":"var(--hfx-color-series-1, #2A78D6)"},{"i":3,"key":"release-3","name":""}],"points":[{"s":0,"p":0,"v":"2024 – 2026","k":["r010","r016","r020","r031","r034","r040","r048","r049","r055","r070","r071","r074","r083","r092","r096","r097","r106","r107","r131","r148"]},{"s":1,"p":0,"v":"2025 – 2027","k":["r002","r003","r004","r006","r009","r011","r012","r019","r021","r022","r023","r025","r026","r027","r032","r035","r037","r038","r039","r041","r044","r046","r051","r053","r057","r058","r061","r062","r063","r064","r065","r066","r067","r072","r073","r079","r081","r085","r087","r088","r090","r093","r095","r098","r101","r104","r109","r111","r118","r119","r120","r121","r122","r123","r125","r128","r130","r132","r134","r136","r137","r138","r139","r142","r146","r147"]},{"s":2,"p":0,"v":"2024 – 2029","k":["r008","r014","r017","r036","r043","r047","r050","r059","r069","r077","r078","r084","r086","r089","r099","r102","r103","r115","r141"]},{"s":3,"p":0,"v":"2025 – 2030","k":["r001","r005","r007","r013","r015","r018","r024","r028","r029","r030","r033","r042","r045","r052","r054","r056","r060","r068","r075","r076","r080","r082","r091","r094","r100","r105","r108","r110","r112","r113","r114","r116","r117","r124","r126","r127","r129","r133","r135","r140","r143","r144","r145"]}]}202620282030Win 24H2Win 25H2Srv 2025365 AppsWin 24H2: 2024 – 2026, 0%Win 25H2: 2025 – 2027, 0%Srv 2025: 2024 – 2029, 0%365 Apps: 2025 – ongoing, 0%Now

Records

A CanopyX data grid. Select rows (Ctrl or Shift for several) to mark them in every chart.

How it's wired

Marks carry record keys and fields from ChartMarkOptions; grid row ids are the same keys. This is the page's whole linking script:

// Four ChartForgeX charts and one CanopyX grid of the same records follow each other: one call per pair.
document.addEventListener("DOMContentLoaded", () => {
  const grid = document.getElementById("records");                    // the element holding the CanopyX grid
  const chart = id => CfxEnhance.get(document.getElementById(id));    // the LinkedView API of the chart inside

  CfxLink.connect(chart("week"), grid, { field: ["day", "kind"], sourceLabel: "Changes this week" });
  CfxLink.connect(chart("trend"), grid, { field: "day", sourceLabel: "Daily trend" });
  CfxLink.connect(chart("heatmap"), grid, { field: ["week", "product"], sourceLabel: "Products by week" });
  CfxLink.connect(chart("support"), grid, { field: "product", sourceLabel: "Support windows" });

  // Chart to chart: brushing the trend highlights the heatmap cells that hold the same records.
  CfxLink.connect(chart("trend"), chart("heatmap"), { mode: "highlight", sourceLabel: "Daily trend" });
});

On the .NET side each mark lists its records:

new ChartPoint(i + 1, keys.Length).WithMarkOptions(new ChartMarkOptions(
    keys: keys, fields: new Dictionary<string, object> { ["day"] = day }));
var svg = chart.Prepare(context).ToSvg(new VisualSvgOptions("week").WithFluidWidth().WithEnhanceHooks(includeData: true));
var html = grid.ToHtmlFragment(new CanopyHtmlOptions { Parts = { "link" } });   // CanopyX.Html: row ids are the keys