Cascadia Early Warning.
Which product codes are reporting as expected, and which deserve a closer look? The forecast target is FDA device reports received per month, with ranges, for seven cardiovascular product codes spanning Classes II and III.
How many reports should be expected for each code, and how often did ranges like these hold in a rolling test after the model was chosen? For DSQ (Ventricular (Assist) Bypass) the answer for November 2026, three months ahead, is about 736 reports, with an 80% range of 376 to 906; ranges like it held 20 of 22 locked-test months at that horizon.
01
736
DSQ reports expected in November 2026, forecast three months ahead
02
376 to 906
the 80% range, from the model's own past three-month-ahead errors
03
90.9%
of locked-test months inside DSQ's three-month-ahead 80% range, 20 of 22
04
1 / 7
review episodes where the rule is on, and if it ran in every code; a retrospective, filtered demonstration
05
0 of 24
Class I recall initiations preceded by a queue episode; association only
Counts of reports, not rates
01 / Outlook
DSQ: about 736 reports expected in November 2026, three months ahead
01 The outlook
Chart description: DSQ by month with the one-month-ahead point and 80% range, then Sep 2026 and Nov 2026
point 736 is the tick; filled dots span the 80% range, 376 to 906
- For DSQ (Ventricular (Assist) Bypass), November 2026 is forecast three months ahead from August 2026, and at that horizon the ETS candidate's 80% ranges held 20 of 22 locked-test months.
- September 2026, one month ahead, is an elapsed-period estimate not yet in the source: point 672, 80% range 329 to 838.
- The 20 dots for November 2026 are outcomes from the model's own 36 latest three-month-ahead errors; filled dots fall inside the 80% range and the tick marks the point.
Chart 1 data: DSQ by month with the one-month-ahead point and 80% range, then Sep 2026 and Nov 2026
| Month | Reports received | Point | 80% low | 80% high |
|---|---|---|---|---|
| Jan 2022 | 1,060 | not drawn | not drawn | not drawn |
| Feb 2022 | 2,798 | not drawn | not drawn | not drawn |
| Mar 2022 | 2,513 | not drawn | not drawn | not drawn |
| Apr 2022 | 1,015 | not drawn | not drawn | not drawn |
| May 2022 | 920 | not drawn | not drawn | not drawn |
| Jun 2022 | 1,713 | not drawn | not drawn | not drawn |
| Jul 2022 | 937 | not drawn | not drawn | not drawn |
| Aug 2022 | 1,129 | not drawn | not drawn | not drawn |
| Sep 2022 | 1,448 | not drawn | not drawn | not drawn |
| Oct 2022 | 762 | not drawn | not drawn | not drawn |
| Nov 2022 | 789 | not drawn | not drawn | not drawn |
| Dec 2022 | 910 | not drawn | not drawn | not drawn |
| Jan 2023 | 915 | not drawn | not drawn | not drawn |
| Feb 2023 | 1,404 | not drawn | not drawn | not drawn |
| Mar 2023 | 711 | not drawn | not drawn | not drawn |
| Apr 2023 | 1,345 | not drawn | not drawn | not drawn |
| May 2023 | 910 | not drawn | not drawn | not drawn |
| Jun 2023 | 1,226 | not drawn | not drawn | not drawn |
| Jul 2023 | 1,847 | not drawn | not drawn | not drawn |
| Aug 2023 | 1,007 | not drawn | not drawn | not drawn |
| Sep 2023 | 839 | not drawn | not drawn | not drawn |
| Oct 2023 | 1,245 | not drawn | not drawn | not drawn |
| Nov 2023 | 773 | not drawn | not drawn | not drawn |
| Dec 2023 | 833 | not drawn | not drawn | not drawn |
| Jan 2024 | 934 | 868 | 273 | 1,769 |
| Feb 2024 | 1,355 | 1,491 | 896 | 2,392 |
| Mar 2024 | 797 | 1,143 | 547 | 2,044 |
| Apr 2024 | 1,225 | 953 | 358 | 1,748 |
| May 2024 | 2,237 | 749 | 154 | 1,544 |
| Jun 2024 | 1,057 | 1,129 | 533 | 2,064 |
| Jul 2024 | 1,258 | 1,221 | 626 | 2,016 |
| Aug 2024 | 834 | 1,251 | 727 | 2,046 |
| Sep 2024 | 842 | 1,034 | 510 | 1,829 |
| Oct 2024 | 825 | 1,154 | 631 | 1,949 |
| Nov 2024 | 968 | 1,106 | 583 | 1,826 |
| Dec 2024 | 714 | 930 | 492 | 1,650 |
| Jan 2025 | 932 | 845 | 407 | 1,565 |
| Feb 2025 | 1,067 | 1,406 | 968 | 2,126 |
| Mar 2025 | 747 | 1,013 | 574 | 1,465 |
| Apr 2025 | 1,050 | 887 | 449 | 1,213 |
| May 2025 | 739 | 754 | 316 | 1,081 |
| Jun 2025 | 962 | 896 | 458 | 1,222 |
| Jul 2025 | 1,377 | 947 | 508 | 1,231 |
| Aug 2025 | 607 | 934 | 510 | 1,298 |
| Sep 2025 | 726 | 771 | 359 | 1,135 |
| Oct 2025 | 997 | 850 | 438 | 1,214 |
| Nov 2025 | 617 | 868 | 491 | 1,232 |
| Dec 2025 | 760 | 713 | 371 | 1,077 |
| Jan 2026 | 741 | 695 | 353 | 1,059 |
| Feb 2026 | 773 | 1,127 | 784 | 1,491 |
| Mar 2026 | 736 | 809 | 459 | 1,173 |
| Apr 2026 | 912 | 763 | 421 | 1,127 |
| May 2026 | 686 | 643 | 301 | 928 |
| Jun 2026 | 898 | 783 | 441 | 1,068 |
| Jul 2026 | 834 | 869 | 526 | 1,089 |
| Aug 2026 | 652 | 765 | 423 | 931 |
| Sep 2026, one month ahead | not yet in the source | 672 | 329 | 838 |
| Nov 2026, three months ahead | a forecast | 736 | 376 | 906 |
Chart 1 evidence: DSQ's three-month-ahead forecasts in the locked test, 20 of 22 inside the 80% range
| Target month | Issued from | Reports received | Point | 80% low | 80% high | Inside the range |
|---|---|---|---|---|---|---|
| Mar 2024 | Dec 2023 | 797 | 1,142 | 608 | 2,109 | yes |
| Apr 2024 | Jan 2024 | 1,225 | 1,003 | 468 | 1,970 | yes |
| May 2024 | Feb 2024 | 2,237 | 768 | 234 | 1,735 | no |
| Jun 2024 | Mar 2024 | 1,057 | 976 | 442 | 1,757 | yes |
| Jul 2024 | Apr 2024 | 1,258 | 1,057 | 523 | 1,838 | yes |
| Aug 2024 | May 2024 | 834 | 1,259 | 724 | 2,226 | yes |
| Sep 2024 | Jun 2024 | 842 | 1,074 | 540 | 1,859 | yes |
| Oct 2024 | Jul 2024 | 825 | 1,248 | 714 | 2,033 | yes |
| Nov 2024 | Aug 2024 | 968 | 1,174 | 640 | 1,959 | yes |
| Dec 2024 | Sep 2024 | 714 | 984 | 450 | 1,769 | yes |
| Jan 2025 | Oct 2024 | 932 | 882 | 348 | 1,605 | yes |
| Feb 2025 | Nov 2024 | 1,067 | 1,442 | 993 | 2,165 | yes |
| Mar 2025 | Dec 2024 | 747 | 1,029 | 580 | 1,752 | yes |
| Apr 2025 | Jan 2025 | 1,050 | 957 | 508 | 1,680 | yes |
| May 2025 | Feb 2025 | 739 | 775 | 326 | 1,233 | yes |
| Jun 2025 | Mar 2025 | 962 | 872 | 424 | 1,229 | yes |
| Jul 2025 | Apr 2025 | 1,377 | 942 | 493 | 1,298 | no |
| Aug 2025 | May 2025 | 607 | 885 | 437 | 1,242 | yes |
| Sep 2025 | Jun 2025 | 726 | 764 | 315 | 1,103 | yes |
| Oct 2025 | Jul 2025 | 997 | 911 | 487 | 1,349 | yes |
| Nov 2025 | Aug 2025 | 617 | 861 | 438 | 1,299 | yes |
| Dec 2025 | Sep 2025 | 760 | 722 | 299 | 1,159 | yes |
The outlook for every forecast code, at each horizon
| Code | Device | Model in use | Target | Horizon (months ahead) | Point | 50% low | 50% high | 80% low | 80% high | Locked 80% coverage, of months | Errors behind the range |
|---|---|---|---|---|---|---|---|---|---|---|---|
| DSQ | Ventricular (Assist) Bypass | ETS candidate | Sep 2026 | 1, elapsed-period estimate | 672 | 447 | 743 | 329 | 838 | 91.7% of 24 | 36 |
| DSQ | Ventricular (Assist) Bypass | ETS candidate | Nov 2026 | 3 | 736 | 485 | 823 | 376 | 906 | 90.9% of 22 | 36 |
| OZD | Temporary Non-Roller Type Left Heart Support Blood Pump | trailing three-month mean | Sep 2026 | 1, elapsed-period estimate | 1,227 | 890 | 1,555 | 399 | 2,125 | 41.7% of 24 | 36 |
| OZD | Temporary Non-Roller Type Left Heart Support Blood Pump | trailing three-month mean | Nov 2026 | 3 | 1,227 | 975 | 1,879 | 329 | 2,225 | 36.4% of 22 | 36 |
| PYX | Temporary Non-Roller Type Right Heart Support Blood Pump | trailing three-month mean | Sep 2026 | 1, elapsed-period estimate | 33 | 13 | 45 | 0 | 67 | 33.3% of 24 | 36 |
| PYX | Temporary Non-Roller Type Right Heart Support Blood Pump | trailing three-month mean | Nov 2026 | 3 | 33 | 11 | 54 | 0 | 79 | 27.3% of 22 | 36 |
| NPT | Aortic Valve, Prosthesis, Percutaneously Delivered | ETS candidate | Sep 2026 | 1, elapsed-period estimate | 791 | 724 | 881 | 689 | 929 | 58.3% of 24 | 36 |
| NPT | Aortic Valve, Prosthesis, Percutaneously Delivered | ETS candidate | Nov 2026 | 3 | 970 | 916 | 1,055 | 844 | 1,128 | 59.1% of 22 | 36 |
| NIK | Defibrillator, Automatic Implantable Cardioverter, With Cardiac Resynchronization (Crt-D) | trailing three-month mean | Sep 2026 | 1, elapsed-period estimate | 892 | 832 | 918 | 754 | 966 | 100.0% of 24 | 36 |
| NIK | Defibrillator, Automatic Implantable Cardioverter, With Cardiac Resynchronization (Crt-D) | trailing three-month mean | Nov 2026 | 3 | 892 | 840 | 929 | 736 | 965 | 100.0% of 22 | 36 |
| LWS | Implantable Cardioverter Defibrillator (Non-Crt) | trailing three-month mean | Sep 2026 | 1, elapsed-period estimate | 1,942 | 1,765 | 1,989 | 1,574 | 2,150 | 95.8% of 24 | 36 |
| LWS | Implantable Cardioverter Defibrillator (Non-Crt) | trailing three-month mean | Nov 2026 | 3 | 1,942 | 1,720 | 2,013 | 1,590 | 2,086 | 90.9% of 22 | 36 |
| DSP | System, Balloon, Intra-Aortic And Control | trailing three-month mean | Sep 2026 | 1, elapsed-period estimate | 695 | 619 | 738 | 553 | 805 | 70.8% of 24 | 36 |
| DSP | System, Balloon, Intra-Aortic And Control | trailing three-month mean | Nov 2026 | 3 | 695 | 648 | 753 | 568 | 787 | 77.3% of 22 | 36 |
02 / Test
The rolling test shows where forecast ranges held
02 The locked test
Chart description: the locked test for DSQ
largest miss: May 2024, 2,237 arrived against 749 expected
- The band is the candidate's 80% range, and rings mark the two months that fell outside it.
- The candidate missed by 246 reports a month on average, against 265 for the trailing mean; the largest miss was May 2024, 2,237 reports against 749 expected.
- A retrospective test: each forecast was fitted only through its origin, on the October 2026 snapshot.
Chart 2 data: the locked test for DSQ
| Month | Actual | Candidate point | Trailing mean point | 80% low | 80% high |
|---|---|---|---|---|---|
| Jan 2024 | 934 | 868 | 950 | 273 | 1,769 |
| Feb 2024 | 1,355 | 1,491 | 847 | 896 | 2,392 |
| Mar 2024 | 797 | 1,143 | 1,041 | 547 | 2,044 |
| Apr 2024 | 1,225 | 953 | 1,029 | 358 | 1,748 |
| May 2024 | 2,237 | 749 | 1,126 | 154 | 1,544 |
| Jun 2024 | 1,057 | 1,129 | 1,420 | 533 | 2,064 |
| Jul 2024 | 1,258 | 1,221 | 1,506 | 626 | 2,016 |
| Aug 2024 | 834 | 1,251 | 1,517 | 727 | 2,046 |
| Sep 2024 | 842 | 1,034 | 1,050 | 510 | 1,829 |
| Oct 2024 | 825 | 1,154 | 978 | 631 | 1,949 |
| Nov 2024 | 968 | 1,106 | 834 | 583 | 1,826 |
| Dec 2024 | 714 | 930 | 878 | 492 | 1,650 |
| Jan 2025 | 932 | 845 | 836 | 407 | 1,565 |
| Feb 2025 | 1,067 | 1,406 | 871 | 968 | 2,126 |
| Mar 2025 | 747 | 1,013 | 904 | 574 | 1,465 |
| Apr 2025 | 1,050 | 887 | 915 | 449 | 1,213 |
| May 2025 | 739 | 754 | 955 | 316 | 1,081 |
| Jun 2025 | 962 | 896 | 845 | 458 | 1,222 |
| Jul 2025 | 1,377 | 947 | 917 | 508 | 1,231 |
| Aug 2025 | 607 | 934 | 1,026 | 510 | 1,298 |
| Sep 2025 | 726 | 771 | 982 | 359 | 1,135 |
| Oct 2025 | 997 | 850 | 903 | 438 | 1,214 |
| Nov 2025 | 617 | 868 | 777 | 491 | 1,232 |
| Dec 2025 | 760 | 713 | 780 | 371 | 1,077 |
03 Did the ranges hold
Chart description: coverage by code
dashed: 80% nominal and 70% disable; shaded: gate band; orange: rule off
- Coverage: The share of 24 test months inside each model's 80% range.
- Thresholds: The shaded band is 60% to 95%; review is disabled below 70%; both were specified before the test.
- Models: Row labels identify the candidate or trailing mean used for each code.
Chart 3 data: coverage by code
| Code | Device | Model in use | 80% coverage | Months | Rule enabled |
|---|---|---|---|---|---|
| NIK | Defibrillator, Automatic Implantable Cardioverter, With Cardiac Resynchronization (Crt-D) | trailing three-month mean | 100.0% | 24 | yes |
| LWS | Implantable Cardioverter Defibrillator (Non-Crt) | trailing three-month mean | 95.8% | 24 | yes |
| DSQ | Ventricular (Assist) Bypass | ETS candidate | 91.7% | 24 | yes |
| DSP | System, Balloon, Intra-Aortic And Control | trailing three-month mean | 70.8% | 24 | yes |
| NPT | Aortic Valve, Prosthesis, Percutaneously Delivered | ETS candidate | 58.3% | 24 | no |
| OZD | Temporary Non-Roller Type Left Heart Support Blood Pump | trailing three-month mean | 41.7% | 24 | no |
| PYX | Temporary Non-Roller Type Right Heart Support Blood Pump | trailing three-month mean | 33.3% | 24 | no |
Scores by code, model and period
| Code | Model | Period | Months | MAE | MAE / trailing mean | 50% coverage | 80% coverage | 80% width | WIS |
|---|---|---|---|---|---|---|---|---|---|
| DSP | trailing three-month mean | development | 24 | 75 | 1.000 | 42% | 67% | 138 | 62.2 |
| DSP | trailing three-month mean | locked | 24 | 64 | 1.000 | 50% | 71% | 175 | 45.7 |
| DSP | trailing three-month mean | recent | 8 | 301 | 1.000 | 0% | 50% | 243 | 258.4 |
| DSP | same month last year | development | 24 | 116 | 1.547 | 38% | 67% | 162 | 73.6 |
| DSP | same month last year | locked | 24 | 97 | 1.518 | 42% | 75% | 197 | 72.3 |
| DSP | same month last year | recent | 8 | 231 | 0.768 | 50% | 62% | 229 | 180.5 |
| DSP | ETS candidate | development | 24 | 104 | 1.383 | 42% | 67% | 189 | 82.9 |
| DSP | ETS candidate | locked | 24 | 101 | 1.590 | 42% | 67% | 266 | 70.8 |
| DSP | ETS candidate | recent | 8 | 324 | 1.074 | 12% | 62% | 337 | 271.2 |
| DSQ | trailing three-month mean | development | 24 | 439 | 1.000 | 67% | 83% | 1,544 | 325.0 |
| DSQ | trailing three-month mean | locked | 24 | 265 | 1.000 | 71% | 83% | 1,056 | 192.2 |
| DSQ | trailing three-month mean | recent | 8 | 87 | 1.000 | 88% | 100% | 723 | 84.9 |
| DSQ | same month last year | development | 24 | 444 | 1.010 | 46% | 79% | 1,751 | 343.1 |
| DSQ | same month last year | locked | 24 | 267 | 1.008 | 50% | 92% | 1,162 | 220.9 |
| DSQ | same month last year | recent | 8 | 167 | 1.917 | 62% | 88% | 714 | 115.8 |
| DSQ | ETS candidate | development | 24 | 387 | 0.881 | 58% | 83% | 1,542 | 276.8 |
| DSQ | ETS candidate | locked | 24 | 246 | 0.927 | 58% | 92% | 1,107 | 192.0 |
| DSQ | ETS candidate | recent | 8 | 116 | 1.327 | 75% | 88% | 645 | 92.2 |
| LWS | trailing three-month mean | development | 24 | 533 | 1.000 | 67% | 71% | 1,417 | 455.2 |
| LWS | trailing three-month mean | locked | 24 | 143 | 1.000 | 71% | 96% | 1,034 | 134.5 |
| LWS | trailing three-month mean | recent | 8 | 172 | 1.000 | 38% | 75% | 507 | 124.1 |
| LWS | same month last year | development | 24 | 651 | 1.222 | 42% | 58% | 1,057 | 470.7 |
| LWS | same month last year | locked | 24 | 326 | 2.274 | 50% | 96% | 1,194 | 314.2 |
| LWS | same month last year | recent | 8 | 276 | 1.606 | 38% | 75% | 771 | 188.8 |
| LWS | ETS candidate | development | 24 | 647 | 1.215 | 29% | 62% | 1,063 | 491.3 |
| LWS | ETS candidate | locked | 24 | 334 | 2.331 | 58% | 92% | 1,252 | 323.9 |
| LWS | ETS candidate | recent | 8 | 248 | 1.444 | 38% | 75% | 609 | 169.1 |
| NIK | trailing three-month mean | development | 24 | 153 | 1.000 | 38% | 58% | 311 | 126.0 |
| NIK | trailing three-month mean | locked | 24 | 54 | 1.000 | 67% | 100% | 319 | 41.4 |
| NIK | trailing three-month mean | recent | 8 | 46 | 1.000 | 50% | 100% | 222 | 32.5 |
| NIK | same month last year | development | 24 | 156 | 1.016 | 50% | 88% | 416 | 113.9 |
| NIK | same month last year | locked | 24 | 106 | 1.954 | 58% | 83% | 321 | 84.4 |
| NIK | same month last year | recent | 8 | 57 | 1.250 | 75% | 88% | 277 | 51.0 |
| NIK | ETS candidate | development | 24 | 160 | 1.040 | 75% | 83% | 569 | 130.9 |
| NIK | ETS candidate | locked | 24 | 123 | 2.275 | 46% | 75% | 405 | 87.3 |
| NIK | ETS candidate | recent | 8 | 89 | 1.947 | 50% | 88% | 384 | 61.8 |
| NPT | trailing three-month mean | development | 24 | 84 | 1.000 | 54% | 75% | 254 | 63.4 |
| NPT | trailing three-month mean | locked | 24 | 148 | 1.000 | 29% | 67% | 350 | 103.8 |
| NPT | trailing three-month mean | recent | 8 | 105 | 1.000 | 62% | 88% | 386 | 71.8 |
| NPT | same month last year | development | 24 | 141 | 1.691 | 46% | 67% | 287 | 87.8 |
| NPT | same month last year | locked | 24 | 212 | 1.433 | 25% | 67% | 323 | 110.0 |
| NPT | same month last year | recent | 8 | 112 | 1.075 | 25% | 50% | 288 | 140.1 |
| NPT | ETS candidate | development | 24 | 63 | 0.756 | 46% | 83% | 203 | 42.4 |
| NPT | ETS candidate | locked | 24 | 98 | 0.662 | 25% | 58% | 205 | 69.0 |
| NPT | ETS candidate | recent | 8 | 68 | 0.648 | 75% | 88% | 235 | 52.9 |
| OZD | trailing three-month mean | development | 24 | 91 | 1.000 | 17% | 33% | 35 | 85.2 |
| OZD | trailing three-month mean | locked | 24 | 562 | 1.000 | 17% | 42% | 827 | 508.9 |
| OZD | trailing three-month mean | recent | 8 | 533 | 1.000 | 38% | 62% | 1,651 | 372.5 |
| OZD | same month last year | development | 24 | 144 | 1.574 | 25% | 33% | 56 | 127.1 |
| OZD | same month last year | locked | 24 | 1,059 | 1.884 | 25% | 33% | 1,271 | 918.6 |
| OZD | same month last year | recent | 8 | 639 | 1.199 | 38% | 88% | 2,248 | 384.6 |
| OZD | ETS candidate | development | 24 | 100 | 1.098 | 21% | 50% | 38 | 94.2 |
| OZD | ETS candidate | locked | 24 | 597 | 1.063 | 12% | 50% | 701 | 534.5 |
| OZD | ETS candidate | recent | 8 | 523 | 0.982 | 25% | 75% | 1,468 | 347.7 |
| PYX | trailing three-month mean | development | 24 | 2 | 1.000 | 54% | 62% | 2 | 1.6 |
| PYX | trailing three-month mean | locked | 24 | 47 | 1.000 | 17% | 33% | 24 | 44.1 |
| PYX | trailing three-month mean | recent | 8 | 30 | 1.000 | 25% | 62% | 73 | 21.0 |
| PYX | same month last year | development | 24 | 4 | 1.952 | 46% | 54% | 2 | 3.2 |
| PYX | same month last year | locked | 24 | 62 | 1.324 | 12% | 29% | 42 | 56.4 |
| PYX | same month last year | recent | 8 | 33 | 1.088 | 38% | 62% | 90 | 21.6 |
| PYX | ETS candidate | development | 24 | 2 | 1.047 | 25% | 62% | 2 | 1.7 |
| PYX | ETS candidate | locked | 24 | 47 | 0.997 | 12% | 38% | 31 | 43.8 |
| PYX | ETS candidate | recent | 8 | 24 | 0.810 | 38% | 75% | 82 | 18.9 |
03 / Review
One episode where the rule is on, seven if it ran in every code
04 What deserves review
Chart description: flags, episodes and Class I initiations by code
one episode, DSP Dec 2025 to Jan 2026: peak month 1,751 against 678 expected
Key: filled square, a month flagged above its range; filled bar, a queue episode; hollow square or outlined bar, the same in a lane with the rule off, opening nothing; raised diamond, the firm-initiated date of a Class I recall event; lanes with the rule on come first, each group ordered by flagged months.
- Eligibility is filtered retrospectively: the rule is on only where a code's 80% ranges held at least 70% of the 24 locked-test months, which are the first 24 of the 32 months shown.
- Of the 30 flagged months, 22 fall in the three lanes with the rule off, where they open nothing.
- Of the 24 Class I recall initiations, none was preceded by the start of a queue episode within eighteen months, and thirteen fall in lanes with the rule off; association only, not validation.
Chart 4 data: flags, episodes and Class I initiations by code
| Code | Device | Model in use | Rule on | Flagged months | Which | Episodes | Episodes if the rule ran in every code | Class I initiations |
|---|---|---|---|---|---|---|---|---|
| DSP | System, Balloon, Intra-Aortic And Control | trailing three-month mean | yes | 4 | Mar 2025, Jul 2025, Dec 2025, Jan 2026 | Dec 2025 to Jan 2026 (2) | 1 | 2024-04-29 (event 94526), 2024-08-08 (event 95150), 2024-08-08 (event 95168) |
| DSQ | Ventricular (Assist) Bypass | ETS candidate | yes | 2 | May 2024, Jul 2025 | none | 0 | 2024-01-03 (event 93697), 2024-02-19 (event 93963), 2024-03-01 (event 94232), 2024-05-08 (event 94478), 2025-03-13 (event 96471), 2025-06-23 (event 97256) |
| LWS | Implantable Cardioverter Defibrillator (Non-Crt) | trailing three-month mean | yes | 2 | Jul 2025, Feb 2026 | none | 0 | 2025-07-24 (event 97318), 2025-08-20 (event 97467) |
| NIK | Defibrillator, Automatic Implantable Cardioverter, With Cardiac Resynchronization (Crt-D) | trailing three-month mean | yes | 0 | none | none | 0 | none |
| PYX | Temporary Non-Roller Type Right Heart Support Blood Pump | trailing three-month mean | no | 10 | Jan 2024, Feb 2024, Apr 2024, May 2024, Sep 2024, Oct 2024, Jun 2025, Sep 2025, Jan 2026, Feb 2026 | none | 4 | 2024-12-12 (event 95780), 2026-01-27 (event 98276) |
| OZD | Temporary Non-Roller Type Left Heart Support Blood Pump | trailing three-month mean | no | 9 | Jan 2024, Feb 2024, Mar 2024, Apr 2024, Aug 2024, Oct 2024, Sep 2025, Jan 2026, Feb 2026 | none | 2 | 2024-05-31 (event 94833), 2025-06-23 (event 97078), 2025-08-20 (event 97440), 2025-09-16 (event 97513), 2025-10-01 (event 97617), 2026-02-16 (event 98393), 2026-02-18 (event 98395), 2026-04-20 (event 98770), 2026-05-14 (event 98853), 2026-05-18 (event 98946), 2026-08-12 (event 99671) |
| NPT | Aortic Valve, Prosthesis, Percutaneously Delivered | ETS candidate | no | 3 | Feb 2024, Dec 2024, Apr 2025 | none | 0 | none |
| Code | Model in use | Rule on | Locked 80% coverage | Evaluated months | Flagged months | Episodes | Episodes per month | Episodes if the rule ran in every code |
|---|---|---|---|---|---|---|---|---|
| DSP | trailing three-month mean | yes | 0.708 | 32 | 4 | 1 | 0.0312 | 1 |
| DSQ | ETS candidate | yes | 0.917 | 32 | 2 | 0 | 0.0000 | 0 |
| LWS | trailing three-month mean | yes | 0.958 | 32 | 2 | 0 | 0.0000 | 0 |
| NIK | trailing three-month mean | yes | 1.000 | 32 | 0 | 0 | 0.0000 | 0 |
| NPT | ETS candidate | no | 0.583 | 32 | 3 | 0 | 0.0000 | 0 |
| OZD | trailing three-month mean | no | 0.417 | 32 | 9 | 0 | 0.0000 | 2 |
| PYX | trailing three-month mean | no | 0.333 | 32 | 10 | 0 | 0.0000 | 4 |
The queue orders attention; a person decides what is in it. A flag is a departure from expected reporting volume and nothing more: it does not say why, and it is not a statement about any device or firm.
The review queue
| Code | Model in use | Start | End | Months | Largest excess over point | Status |
|---|---|---|---|---|---|---|
| DSP | trailing three-month mean | Dec 2025 | Jan 2026 | 2 | 1,073 | closed |
Reports whose remedial action names a recall, beside the queue
| Month | DSQ | OZD | PYX | NPT | NIK | LWS | DSP |
|---|---|---|---|---|---|---|---|
| Jan 2024 | 0 | 0 | 0 | 2 | 6 | 264 | 0 |
| Feb 2024 | 0 | 0 | 0 | 0 | 8 | 216 | 0 |
| Mar 2024 | 0 | 0 | 0 | 3 | 14 | 220 | 0 |
| Apr 2024 | 3 | 0 | 0 | 2 | 7 | 188 | 0 |
| May 2024 | 6 | 0 | 0 | 1 | 8 | 206 | 0 |
| Jun 2024 | 4 | 0 | 0 | 1 | 7 | 180 | 0 |
| Jul 2024 | 5 | 0 | 0 | 0 | 3 | 227 | 0 |
| Aug 2024 | 0 | 0 | 0 | 0 | 2 | 165 | 0 |
| Sep 2024 | 4 | 0 | 0 | 0 | 4 | 189 | 0 |
| Oct 2024 | 1 | 0 | 0 | 0 | 3 | 185 | 0 |
| Nov 2024 | 2 | 0 | 0 | 0 | 6 | 135 | 0 |
| Dec 2024 | 2 | 0 | 0 | 0 | 13 | 179 | 0 |
| Jan 2025 | 0 | 0 | 0 | 0 | 6 | 155 | 0 |
| Feb 2025 | 0 | 0 | 0 | 0 | 2 | 135 | 0 |
| Mar 2025 | 0 | 0 | 0 | 0 | 5 | 128 | 0 |
| Apr 2025 | 0 | 0 | 0 | 0 | 6 | 140 | 0 |
| May 2025 | 0 | 0 | 0 | 1 | 3 | 123 | 0 |
| Jun 2025 | 57 | 0 | 0 | 135 | 3 | 126 | 0 |
| Jul 2025 | 4 | 0 | 0 | 199 | 4 | 239 | 0 |
| Aug 2025 | 1 | 0 | 0 | 0 | 6 | 96 | 0 |
| Sep 2025 | 0 | 0 | 0 | 0 | 5 | 107 | 0 |
| Oct 2025 | 1 | 1 | 0 | 0 | 1 | 99 | 0 |
| Nov 2025 | 1 | 0 | 0 | 0 | 2 | 73 | 0 |
| Dec 2025 | 1 | 0 | 0 | 0 | 6 | 96 | 1 |
| Jan 2026 | 0 | 0 | 0 | 1 | 6 | 85 | 0 |
| Feb 2026 | 2 | 0 | 0 | 0 | 5 | 85 | 0 |
| Mar 2026 | 1 | 0 | 0 | 0 | 5 | 74 | 0 |
| Apr 2026 | 0 | 0 | 0 | 0 | 6 | 51 | 0 |
| May 2026 | 1 | 0 | 0 | 0 | 1 | 51 | 0 |
| Jun 2026 | 2 | 0 | 0 | 3 | 3 | 62 | 0 |
| Jul 2026 | 0 | 0 | 0 | 1 | 0 | 33 | 0 |
| Aug 2026 | 0 | 0 | 0 | 2 | 0 | 29 | 0 |
04 / Limits
What these counts can and cannot say
05 How complete is the recent record
Chart description: DSQ by event month and receipt lag
darker: every window filling; lighter: 12-month filling, and 6-month in the last 6
- Shaded months are still filling: every window in the last 3 months, the 6-month window in the last 6 and the 12-month window in the last 12.
- The 3-month line is complete for every month before the last 3, so it carries the like-for-like comparison.
- 13,375 of this code's eligible reports carry no event date; they count in charts 1 to 4 by receipt month and are left out here.
Chart 5 data: DSQ by event month and receipt lag
| Event month | Reports with this event month | Within 3 months | Within 6 | Within 12 | Windows still filling |
|---|---|---|---|---|---|
| Jan 2022 | 2,776 | 728 | 963 | 1,422 | none |
| Feb 2022 | 846 | 696 | 739 | 772 | none |
| Mar 2022 | 888 | 739 | 781 | 814 | none |
| Apr 2022 | 847 | 697 | 749 | 776 | none |
| May 2022 | 838 | 717 | 755 | 774 | none |
| Jun 2022 | 798 | 663 | 694 | 739 | none |
| Jul 2022 | 797 | 669 | 705 | 744 | none |
| Aug 2022 | 830 | 662 | 705 | 761 | none |
| Sep 2022 | 749 | 611 | 644 | 703 | none |
| Oct 2022 | 826 | 665 | 707 | 765 | none |
| Nov 2022 | 747 | 603 | 640 | 703 | none |
| Dec 2022 | 828 | 638 | 683 | 751 | none |
| Jan 2023 | 2,209 | 656 | 896 | 1,293 | none |
| Feb 2023 | 659 | 508 | 563 | 612 | none |
| Mar 2023 | 736 | 620 | 661 | 683 | none |
| Apr 2023 | 698 | 572 | 617 | 665 | none |
| May 2023 | 795 | 669 | 713 | 757 | none |
| Jun 2023 | 797 | 667 | 718 | 757 | none |
| Jul 2023 | 763 | 620 | 666 | 712 | none |
| Aug 2023 | 750 | 621 | 672 | 716 | none |
| Sep 2023 | 686 | 562 | 609 | 646 | none |
| Oct 2023 | 685 | 580 | 625 | 654 | none |
| Nov 2023 | 681 | 581 | 624 | 653 | none |
| Dec 2023 | 706 | 577 | 618 | 659 | none |
| Jan 2024 | 1,816 | 840 | 1,007 | 1,310 | none |
| Feb 2024 | 775 | 651 | 692 | 747 | none |
| Mar 2024 | 1,009 | 861 | 927 | 974 | none |
| Apr 2024 | 1,005 | 872 | 926 | 974 | none |
| May 2024 | 765 | 672 | 718 | 744 | none |
| Jun 2024 | 772 | 678 | 713 | 753 | none |
| Jul 2024 | 800 | 689 | 721 | 783 | none |
| Aug 2024 | 752 | 662 | 703 | 736 | none |
| Sep 2024 | 732 | 636 | 678 | 716 | none |
| Oct 2024 | 754 | 638 | 677 | 725 | none |
| Nov 2024 | 719 | 609 | 651 | 698 | none |
| Dec 2024 | 722 | 622 | 658 | 706 | none |
| Jan 2025 | 1,287 | 586 | 735 | 928 | none |
| Feb 2025 | 611 | 534 | 564 | 593 | none |
| Mar 2025 | 724 | 639 | 679 | 713 | none |
| Apr 2025 | 761 | 664 | 697 | 724 | none |
| May 2025 | 739 | 680 | 710 | 726 | none |
| Jun 2025 | 740 | 684 | 711 | 738 | none |
| Jul 2025 | 699 | 657 | 680 | 696 | none |
| Aug 2025 | 614 | 560 | 587 | 612 | none |
| Sep 2025 | 714 | 672 | 706 | 714 | 12 |
| Oct 2025 | 678 | 619 | 653 | 677 | 12 |
| Nov 2025 | 596 | 554 | 581 | 595 | 12 |
| Dec 2025 | 638 | 603 | 627 | 638 | 12 |
| Jan 2026 | 734 | 617 | 724 | 734 | 12 |
| Feb 2026 | 568 | 534 | 568 | 568 | 12 |
| Mar 2026 | 623 | 603 | 623 | 623 | 6, 12 |
| Apr 2026 | 560 | 545 | 560 | 560 | 6, 12 |
| May 2026 | 577 | 577 | 577 | 577 | 6, 12 |
| Jun 2026 | 610 | 610 | 610 | 610 | 3, 6, 12 |
| Jul 2026 | 547 | 547 | 547 | 547 | 3, 6, 12 |
| Aug 2026 | 170 | 170 | 170 | 170 | 3, 6, 12 |
Report counts are not incident rates or measures of device safety. This independent public-data demonstration provides no medical, legal or regulatory advice.
- Counts, not rates. In FDA's own words, from the openFDA documentation: MDR data alone cannot be used to establish rates of events; a causal relationship cannot be established between product and the reactions listed in a report; and every API response says to assume all results are unvalidated. Reporting is passive and batched, and a count carries no denominator. A quiet code is not a safe code.
- Summary reports. NPT is on FDA's list of product codes eligible for voluntary malfunction summary reporting, and DSP, DSQ, LWS, NIK, OZD and PYX are not. 4,179 of NPT's 72,845 reports are summary reports standing for 149,569 events, so its count can move with reporting practice and is not a count of events.
- The snapshot. Receipts run through 2026-08-31, as the source had loaded them on 2026-09-29. This is a retrospective test using the October 2026 data snapshot. It does not reconstruct exactly what was publicly available at each historical date.
- Reports without an event date. 13,375 of the headline code's eligible reports carry none; they are counted in charts 1 to 4 and left out of chart 5 only.
- What public data cannot supply. Exposure by lot and site, verification and validation results, the defect backlog, supplier and process measures, and complaint intake before it becomes a report.
- What this page refuses to do. It names no manufacturer or brand, publishes no rate and no risk, and does not read the recall timeline as a validation of the rule.
05 / Method and receipts
How each figure was made, and what checked it
The decision
The decision this page serves is a quality team's monthly choice of where to look first: which product codes are reporting as expected and which are not.
- Whose decision
- the owner of a post-market review queue
- Horizon
- Outlook: November 2026, three months from the August data origin.Review rule: one-month-ahead forecasts.
- Literacy
- a reader who works in spreadsheets and reads a trend line, not a statistician
- Benchmark
- the trailing three-month mean, the figure a spreadsheet would already give
- Cadence
- monthly as the source loads
- Action
- open a review or do not
The snapshot and the live edge
- Receipts run through 2026-08-31; the source had loaded them as of 2026-09-29, and this page was built from a snapshot taken 2026-10-06.
- September 2026, one month ahead, is an elapsed-period estimate: the month had ended when it was issued and the source had not loaded it. It is in none of the locked or recent scores; the live edge scores it, on raw counts, when the source first shows the month. November 2026, three months ahead, is the forecast this page leads with.
- Live edge. Last run 2026-10-13 23:38 UTC, status ok, 27 checks, 0 failed. Source last_updated seen 2026-10-07. Months loaded beyond the freeze: 2026-09, as raw counts with no exclusion applied. Forecasts scored as their months elapsed: 7, mean absolute error 70, 80% coverage 100%. Latest live outlook issued from origin 2026-09. The frozen months re-read from the latest vintage: 15 of 896 read higher, by 19 reports in total; 6 read lower. The source has revised 2 frozen months downward since the freeze, by 4 reports in total; each is dispositioned in the decision record (D24) and the frozen table is unchanged. The record is governance/reconciliation.md.
What is counted
- One report is one record the source holds, in the month FDA received it.
- NPT is on FDA's list of product codes eligible for voluntary malfunction summary reporting, and DSP, DSQ, LWS, NIK, OZD and PYX are not.
- Of NPT's 72,845 reports, 4,179 carry the source's summary-report flag and together stand for 149,569 events; 3,375 of them summarize more than one event, up to 3,108 in a single report.
- A change in how summary reporting is used can move NPT's count with no change in events; the target stays the count of reports.
- The other codes carry four summary-flagged reports between them, each for a single event.
The models and the headline code
- The headline code is among the codes whose review rule is enabled, the largest-volume code for which the candidate earned use: DSQ, Ventricular (Assist) Bypass.
- The candidate earned use on 2 of 7 codes (DSQ, NPT); the trailing mean is in use on the rest (OZD, PYX, NIK, LWS, DSP).
- Promotion was decided on one-month-ahead errors in the development period.
- Every code's outlook is in the table under chart 1.
- Chart 2's largest miss is chosen as the largest absolute error of the model in use and nothing else: May 2024, 2,237 reports against 749 expected.
The test's chronology
Model selection used target months through December 2023 and was registered in October 2026 before generating the retained test results. This is a retrospective test using the October 2026 data snapshot. It does not reconstruct exactly what was publicly available at each historical date.
- Selection period: targets 2022-01 to 2023-12; the harness was committed to
config/model.jsonatdf36abdand the promotion decision at582a857, before any locked-period forecast existed. - Locked test: 24 months, 2024-01 to 2025-12, from origins at or after 2023-12. One corrected result was frozen after a documented harness repair; promotion and point forecasts were unchanged.
- Recent check: 2026-01 to 2026-08, scored beside the locked test. It was not used for model selection or for the coverage gate; the review rule runs over it, and its errors join the history behind later ranges, November 2026's among them.
- Issue dates: Every back-test row carries a nominal issue date, the first day of the month after its origin, which the harness assigns rather than records: all of them were computed on 2026-10-06 from that day's snapshot. Only the outlook rows carry the date they were actually issued, 2026-10-06.
The review rule
- Registered before the first forecast existed (
governance/pre-registration.md, commitfbf0f41), under the model in use at one month ahead. - The rule. A month is flagged when the observed count exceeds the 80% upper bound and is at least five reports above the point forecast. Two consecutive flagged months open an episode. One run is one episode, and an empty queue is a valid result.
- One-sided. The rule is one-sided by design: a month below its range is never flagged.
- The floor. The five-report floor is a workload heuristic, chosen so that a departure of a handful of reports in a small series never opens an episode; it is not a calibrated threshold.
- By chance. An illustration, not a measured false-alarm rate: if a model's 80% ranges were correctly calibrated and its errors independent from month to month, a month would land above the upper bound about one time in ten and two consecutive months about one time in a hundred, so about one episode per hundred evaluated months would open by chance before the five-report floor. Neither condition is guaranteed here, and no false-alarm rate was measured.
When the rule is on (the coverage gate)
- The gate. Each code's rule was enabled from its 80% coverage in the 2024-01 to 2025-12 locked test: the first 24 of the 32 months, 2024-01 to 2026-08, that the rule then runs over.
- With the gate the rule ran on four codes, 128 code-months, and opened 1 episode.
- Without it the same rule, over all 224 code-months, opens 7 (DSP 1, OZD 2 and PYX 4) and flags 30 months.
- Against chance, as the pre-registration says the workload is read: at about one episode per hundred evaluated months, chance alone would open about 1.3 in the 128 code-months with the rule on and about 2.2 in all 224; the rule opened one and seven. The illustration's conditions do not hold for the codes whose ranges failed the gate.
- Reading coverage. An 80% range should hold about four months in five; across the seven codes the model in use's ranges held between 33% and 100% of locked-test months, and ranges too wide and too narrow are both calibration failures. A code with the rule off is not reviewed by this module.
Recall events, as retrospective context
FDA's recall record for these codes is shown beside the queue, not as its validation. Association only: no shuffled-dates null was run, and the page claims no prediction.
- 175 recall events in these codes over 2016-01 to 2026-08, 77 of them Class I.
- 23.2% of the 784 in-scope product records, of any date, carry a 510(k) number, so clearance links are not drawn.
- 24 Class I initiations in forecast codes in the evaluated span, thirteen of them in codes whose rule is off, where the queue opens nothing.
- The pre-registered count, episodes whose start falls in the eighteen months before a Class I initiation, is 0: 0 of 24 initiations were preceded by the start of a queue episode.
- Against what. The trivial rule that flags every month would have preceded 23 of them, at one flag per month, which is why "preceded" alone means nothing; and no published multi-code figure exists to compare the count against.
Recall events in these codes, 2016-01 to 2026-08
| Initiated | Codes | Class | Classified | Root cause as recorded | Product records | Reason cites reports | Event |
|---|---|---|---|---|---|---|---|
| 2016-01-07 | DSQ | Class I | 20160708 | Software design | 1 | no | 73636 |
| 2016-02-10 | DSP | Class I | 20160310 | Process control | 9 | no | 73266 |
| 2016-03-31 | LWS | Class II | 20160509 | Other | 1 | no | 73837 |
| 2016-05-13 | DSP | Class II | 20160608 | Unknown/Undetermined by firm | 1 | no | 74225 |
| 2016-06-08 | DSQ | Class I | 20161017 | Device Design | 1 | no | 72001 |
| 2016-08-03 | NPT | Class II | 20160816 | Device Design | 1 | no | 74796 |
| 2016-08-12 | LWS | Class II | 20160824 | Nonconforming Material/Component | 2 | no | 74923 |
| 2016-08-17 | DSQ | Class I | 20161013 | Component design/selection | 1 | no | 74999 |
| 2016-10-10 | LWS, NIK | Class I | 20161021 | Device Design | 3 | no | 75393 |
| 2016-12-09 | NIK | Class II | 20170107 | Software Design Change | 1 | no | 75943 |
| 2016-12-23 | DSP | Class II | 20170301 | Device Design | 1 | yes | 76052 |
| 2017-01-12 | LWS | Class II | 20170209 | Software design | 1 | no | 76323 |
| 2017-02-03 | DSQ | Class I | 20170426 | Software design | 1 | no | 76600 |
| 2017-03-10 | DSQ | Class I | 20170424 | Device Design | 1 | no | 76807 |
| 2017-03-30 | DSQ | Class I | 20170524 | Device Design | 3 | no | 76978 |
| 2017-04-12 | NIK | Class II | 20170519 | Software design | 1 | no | 76853 |
| 2017-04-12 | DSP | Class II | 20170525 | Device Design | 1 | no | 76942 |
| 2017-06-16 | DSP | Class I | 20170727 | Component design/selection | 3 | no | 77566 |
| 2017-06-29 | LWS | Class II | 20170815 | Software design | 3 | no | 77803 |
| 2017-07-17 | DSP | Class I | 20170905 | Under Investigation by firm | 3 | no | 77877 |
| 2017-07-21 | NPT | Class I | 20180110 | Employee error | 1 | no | 78738 |
| 2017-07-24 | NIK | Class II | 20170927 | Software design | 2 | no | 77983 |
| 2017-08-28 | LWS, NIK | Class I | 20171010 | Device Design | 2 | no | 78068 |
| 2017-08-28 | NIK | Class II | 20171019 | Unknown/Undetermined by firm | 1 | no | 78093 |
| 2017-10-04 | LWS, NIK | Class II | 20171108 | Under Investigation by firm | 5 | no | 78323 |
| 2017-12-19 | LWS, NIK | Class I | 20180419 | Process design | 8 | no | 78888 |
| 2018-02-21 | DSP | Class II | 20180416 | Error in labeling | 3 | no | 79646 |
| 2018-04-05 | DSQ | Class I | 20180516 | Device Design | 1 | yes | 79893 |
| 2018-04-16 | LWS, NIK | Class II | 20180628 | Software design | 11 | no | 80212 |
| 2018-05-02 | DSQ | Class I | 20180531 | Device Design | 1 | no | 80056 |
| 2018-05-03 | DSP | Class I | 20180531 | Device Design | 1 | no | 80003 |
| 2018-05-18 | DSQ | Class I | 20230524 | Component design/selection | 1 | no | 92132 |
| 2018-06-11 | NPT | Class II | 20180713 | Labeling False and Misleading | 1 | no | 80394 |
| 2018-06-21 | LWS | Class II | 20180710 | Device Design | 6 | no | 80379 |
| 2018-07-09 | NIK | Class II | 20180815 | Component design/selection | 2 | no | 80636 |
| 2018-08-28 | DSQ | Class II | 20181003 | Device Design | 1 | no | 80966 |
| 2018-09-10 | LWS | Class II | 20180927 | Component design/selection | 5 | no | 81001 |
| 2018-09-10 | LWS | Class II | 20180927 | Device Design | 1 | no | 81006 |
| 2018-09-20 | DSP | Class I | 20181026 | Device Design | 2 | no | 81055 |
| 2018-10-15 | DSQ | Class II | 20181218 | Device Design | 1 | no | 81709 |
| 2018-11-01 | LWS | Class II | 20181116 | Device Design | 1 | no | 81471 |
| 2018-11-19 | DSQ | Class II | 20181207 | Other | 1 | no | 81609 |
| 2019-01-22 | NPT | Class II | 20190214 | Labeling design | 1 | yes | 81924 |
| 2019-02-19 | OZD | Class II | 20260921 | Under Investigation by firm | 1 | yes | 99747 |
| 2019-03-01 | DSQ | Class II | 20190419 | Device Design | 1 | no | 82458 |
| 2019-03-30 | DSQ | Class II | 20190822 | Process design | 2 | no | 83357 |
| 2019-05-28 | DSP | Class II | 20190712 | Employee error | 1 | no | 83022 |
| 2019-06-17 | DSP | Class I | 20190715 | Use error | 6 | no | 82897 |
| 2019-06-20 | LWS | Class I | 20190802 | Process control | 6 | no | 83252 |
| 2019-07-09 | NPT | Class I | 20190821 | Other | 4 | yes | 83293 |
| 2019-08-21 | LWS | Class II | 20190913 | Component design/selection | 2 | no | 83558 |
| 2019-09-04 | OZD | Class II | 20191107 | Under Investigation by firm | 1 | no | 84025 |
| 2019-11-20 | DSP | Class II | 20200201 | Package design/selection | 3 | no | 84521 |
| 2019-12-02 | DSQ | Class II | 20191227 | Device Design | 1 | no | 84379 |
| 2020-01-23 | DSQ | Class I | 20200309 | Device Design | 2 | no | 84829 |
| 2020-02-12 | LWS | Class II | 20200318 | Under Investigation by firm | 2 | no | 85077 |
| 2020-02-28 | NIK | Class II | 20200410 | Under Investigation by firm | 1 | no | 85275 |
| 2020-04-03 | DSQ | Class I | 20200522 | Device Design | 5 | no | 85397 |
| 2020-05-20 | DSP | Class I | 20200626 | Component design/selection | 10 | no | 85684 |
| 2020-07-27 | DSP | Class II | 20200821 | Process change control | 17 | no | 85823 |
| 2020-09-22 | LWS | Class II | 20201031 | Software design | 1 | no | 86534 |
| 2020-10-23 | NPT | Class II | 20201210 | Labeling design | 3 | no | 86681 |
| 2020-11-05 | NIK | Class II | 20220728 | Process control | 1 | no | 90429 |
| 2020-11-13 | LWS | Class I | 20210119 | Device Design | 1 | no | 87014 |
| 2020-11-15 | NIK | Class II | 20210126 | Process control | 3 | no | 86887 |
| 2020-11-17 | NPT | Class I | 20210109 | Device Design | 6 | no | 86947 |
| 2020-11-19 | DSQ | Class I | 20210204 | Under Investigation by firm | 1 | no | 86924 |
| 2020-12-02 | LWS | Class II | 20210128 | Process change control | 2 | no | 86866 |
| 2020-12-02 | LWS | Class I | 20210205 | Process control | 2 | no | 86902 |
| 2021-02-03 | LWS, NIK | Class I | 20210326 | Device Design | 2 | no | 87261 |
| 2021-02-26 | DSQ | Class I | 20210406 | Device Design | 6 | no | 87446 |
| 2021-02-26 | DSQ | Class I | 20210416 | Device Design | 1 | no | 87456 |
| 2021-02-26 | DSQ | Class II | 20210421 | Device Design | 1 | no | 87603 |
| 2021-02-26 | DSQ | Class II | 20210420 | Device Design | 1 | no | 87604 |
| 2021-03-01 | OZD | Class II | 20240222 | Software design | 1 | no | 93876 |
| 2021-03-08 | LWS | Class II | 20210421 | Device Design | 4 | no | 87549 |
| 2021-03-22 | DSP | Class III | 20210428 | Software design | 2 | no | 87482 |
| 2021-04-06 | NIK | Class II | 20210504 | Software design | 4 | no | 87662 |
| 2021-04-07 | NIK | Class II | 20210520 | Process control | 1 | no | 87769 |
| 2021-05-28 | DSQ | Class II | 20210713 | Nonconforming Material/Component | 1 | no | 88135 |
| 2021-06-03 | DSQ | Class I | 20210806 | Unknown/Undetermined by firm | 10 | yes | 88197 |
| 2021-06-11 | NPT | Class II | 20210708 | Device Design | 3 | yes | 88113 |
| 2021-08-06 | DSQ | Class II | 20210916 | Device Design | 1 | no | 88541 |
| 2021-09-08 | DSP | Class II | 20211007 | Device Design | 2 | no | 88651 |
| 2021-09-08 | DSP | Class II | 20210930 | Software design | 2 | no | 88664 |
| 2021-09-21 | DSP | Class I | 20211020 | Nonconforming Material/Component | 1 | no | 88719 |
| 2021-10-22 | DSQ | Class II | 20211126 | Software design | 1 | no | 88876 |
| 2021-11-15 | DSP | Class I | 20211215 | Device Design | 2 | no | 88983 |
| 2022-01-27 | DSQ | Class II | 20220304 | Labeling design | 1 | no | 89559 |
| 2022-03-10 | NIK | Class II | 20220421 | Software design | 1 | no | 89816 |
| 2022-03-10 | LWS | Class II | 20220421 | Component design/selection | 3 | no | 89825 |
| 2022-03-30 | DSQ | Class II | 20220517 | Labeling design | 1 | no | 89967 |
| 2022-03-30 | DSQ | Class II | 20220517 | Labeling design | 6 | no | 90079 |
| 2022-04-12 | LWS, NIK | Class II | 20220614 | Software design | 2 | no | 90085 |
| 2022-04-14 | DSQ | Class I | 20220603 | Under Investigation by firm | 1 | no | 89966 |
| 2022-05-05 | DSQ | Class I | 20220621 | Process control | 1 | no | 90228 |
| 2022-06-22 | LWS, NIK | Class I | 20220808 | Device Design | 6 | no | 90565 |
| 2022-06-28 | DSQ | Class I | 20220818 | Device Design | 1 | no | 90593 |
| 2022-07-07 | LWS, NIK | Class II | 20220901 | Under Investigation by firm | 3 | no | 90524 |
| 2022-08-05 | DSP | Class II | 20220908 | Vendor change control | 3 | no | 90684 |
| 2022-08-05 | DSQ | Class II | 20221024 | Labeling Change Control | 1 | no | 90913 |
| 2022-10-17 | DSP | Class I | 20221215 | Pending | 31 | no | 91021 |
| 2022-11-29 | DSQ | Class II | 20221221 | Device Design | 9 | no | 91281 |
| 2022-12-19 | DSP | Class I | 20230119 | Device Design | 2 | no | 91179 |
| 2023-02-02 | LWS | Class II | 20230303 | Software Manufacturing/Software Deployment | 1 | no | 91646 |
| 2023-02-07 | DSP | Class I | 20230309 | Under Investigation by firm | 2 | no | 91602 |
| 2023-02-07 | DSP | Class I | 20230308 | Software design | 2 | no | 91603 |
| 2023-02-07 | DSP | Class II | 20230306 | Equipment maintenance | 2 | yes | 91642 |
| 2023-02-07 | DSP | Class II | 20230306 | Under Investigation by firm | 2 | no | 91645 |
| 2023-02-28 | DSP | Class II | 20230322 | Under Investigation by firm | 4 | no | 91652 |
| 2023-04-04 | DSP | Class II | 20230426 | Component design/selection | 1 | no | 92021 |
| 2023-04-17 | OZD | Class I | 20230518 | Device Design | 1 | yes | 91955 |
| 2023-05-04 | DSP | Class III | 20230614 | Under Investigation by firm | 1 | no | 92214 |
| 2023-05-10 | LWS, NIK | Class I | 20230616 | Under Investigation by firm | 120 | no | 92328 |
| 2023-05-16 | DSQ | Class II | 20230622 | Software change control | 1 | no | 92350 |
| 2023-06-05 | DSP | Class I | 20230719 | Device Design | 2 | no | 92287 |
| 2023-06-05 | DSP | Class I | 20230720 | Component design/selection | 2 | no | 92335 |
| 2023-06-14 | OZD | Class I | 20230714 | Under Investigation by firm | 6 | no | 92321 |
| 2023-06-23 | DSP | Class II | 20230721 | Under Investigation by firm | 8 | yes | 92527 |
| 2023-06-29 | PYX | Class I | 20230803 | Under Investigation by firm | 1 | no | 92411 |
| 2023-07-11 | LWS | Class II | 20230822 | Software design | 2 | no | 92760 |
| 2023-07-31 | DSP | Class I | 20230830 | Under Investigation by firm | 2 | no | 92480 |
| 2023-07-31 | DSP | Class II | 20230830 | Under Investigation by firm | 2 | no | 92489 |
| 2023-07-31 | DSP | Class I | 20230830 | Under Investigation by firm | 2 | yes | 92491 |
| 2023-07-31 | DSP | Class I | 20230830 | Device Design | 2 | no | 92498 |
| 2023-07-31 | DSP | Class I | 20230830 | Under Investigation by firm | 2 | no | 92501 |
| 2023-08-07 | DSQ | Class II | 20230929 | Process control | 1 | no | 92951 |
| 2023-08-16 | LWS, NIK | Class II | 20230919 | Component design/selection | 2 | no | 92923 |
| 2023-10-10 | OZD | Class II | 20231201 | Software design | 2 | no | 93406 |
| 2023-10-31 | DSQ | Class II | 20231201 | Labeling design | 9 | no | 93405 |
| 2023-11-30 | LWS | Class II | 20240105 | Under Investigation by firm | 1 | no | 93519 |
| 2023-12-06 | PYX | Class II | 20240104 | No Marketing Application | 1 | no | 93581 |
| 2023-12-07 | LWS | Class II | 20240122 | Nonconforming Material/Component | 1 | no | 93663 |
| 2023-12-27 | OZD | Class II | 20240212 | Labeling Change Control | 1 | no | 93746 |
| 2023-12-27 | OZD | Class I | 20240209 | Labeling Change Control | 1 | no | 93749 |
| 2024-01-03 | DSQ | Class I | 20240202 | Software design | 1 | no | 93697 |
| 2024-02-19 | DSQ | Class I | 20240321 | Material/Component Contamination | 2 | no | 93963 |
| 2024-03-01 | DSQ | Class I | 20240501 | Device Design | 2 | no | 94232 |
| 2024-04-16 | LWS, NIK | Class II | 20240626 | Nonconforming Material/Component | 23 | no | 94674 |
| 2024-04-29 | DSP | Class I | 20240603 | Nonconforming Material/Component | 3 | yes | 94526 |
| 2024-05-08 | DSQ | Class I | 20240607 | Device Design | 1 | no | 94478 |
| 2024-05-22 | DSQ | Class II | 20240627 | Process control | 1 | no | 94588 |
| 2024-05-31 | OZD | Class I | 20240717 | Release of Material/Component prior to receiving test results | 1 | no | 94833 |
| 2024-06-25 | DSQ | Class II | 20240813 | Process design | 1 | no | 94973 |
| 2024-08-05 | OZD | Class II | 20240904 | Under Investigation by firm | 18 | no | 95129 |
| 2024-08-08 | DSP | Class I | 20240920 | Software design | 2 | no | 95150 |
| 2024-08-08 | DSP | Class I | 20240920 | Software design | 2 | no | 95168 |
| 2024-09-17 | DSP | Class II | 20241105 | Error in labeling | 1 | no | 95396 |
| 2024-10-17 | NPT | Class II | 20241120 | Under Investigation by firm | 5 | no | 95627 |
| 2024-12-12 | PYX | Class I | 20250115 | Under Investigation by firm | 2 | no | 95780 |
| 2025-03-13 | DSQ | Class I | 20250417 | Process control | 1 | no | 96471 |
| 2025-06-23 | OZD | Class I | 20250725 | Device Design | 1 | no | 97078 |
| 2025-06-23 | DSQ | Class I | 20250813 | Vendor change control | 2 | no | 97256 |
| 2025-07-19 | DSP | Class II | 20250813 | No Marketing Application | 1 | no | 97246 |
| 2025-07-24 | LWS | Class I | 20250820 | Component design/selection | 1 | no | 97318 |
| 2025-08-20 | OZD | Class I | 20250919 | Device Design | 1 | no | 97440 |
| 2025-08-20 | LWS | Class I | 20251010 | Other | 1 | no | 97467 |
| 2025-09-16 | OZD | Class I | 20251017 | Device Design | 1 | no | 97513 |
| 2025-10-01 | OZD | Class I | 20251009 | Software design | 1 | no | 97617 |
| 2025-10-09 | DSQ | Class II | 20251114 | Device Design | 4 | no | 97782 |
| 2025-10-23 | DSP | Class III | 20251216 | Process change control | 2 | no | 97956 |
| 2025-10-29 | LWS | Class II | 20251128 | Software design | 1 | no | 97910 |
| 2025-11-04 | DSP | Class II | 20251211 | Component design/selection | 2 | no | 97946 |
| 2025-12-04 | OZD | Class II | 20260108 | Under Investigation by firm | 1 | no | 98086 |
| 2026-01-23 | DSP | Class II | 20260303 | Under Investigation by firm | 2 | no | 98189 |
| 2026-01-27 | PYX | Class I | 20260227 | Under Investigation by firm | 3 | no | 98276 |
| 2026-02-06 | DSP | Class III | 20260319 | Under Investigation by firm | 1 | no | 98432 |
| 2026-02-16 | OZD | Class I | 20260327 | Software design | 1 | no | 98393 |
| 2026-02-18 | OZD | Class I | 20260331 | Device Design | 1 | no | 98395 |
| 2026-04-20 | OZD | Class I | 20260522 | Under Investigation by firm | 1 | no | 98770 |
| 2026-04-24 | DSQ | Class II | 20260605 | Error in labeling | 1 | no | 98797 |
| 2026-05-13 | DSQ | Class II | 20260618 | Under Investigation by firm | 3 | no | 99023 |
| 2026-05-14 | OZD | Class I | 20260612 | Under Investigation by firm | 1 | no | 98853 |
| 2026-05-18 | OZD | Class I | 20260618 | Under Investigation by firm | 1 | no | 98946 |
| 2026-08-12 | OZD | Class I | 20260916 | Under Investigation by firm | 3 | no | 99671 |
Counts, forecast arithmetic, scores and review episodes were re-derived down a second path
- The freeze. 649,080 distinct reports across the seven codes (649,083 report-code memberships: three reports carry more than one of the codes), pulled from openFDA in 696 pages whose SHA-256 is recorded in the manifest and listed in the source register. The monthly counts reconcile with zero variance, on every one of 896 code-months, against the source's own daily count series pulled separately.
- The exclusion. A private token list, kept outside the repository, removed 1 report whole; its SHA-256 (
5fa19c0913152ef4...) and the counts removed per field are published, and no firm is named anywhere. - Two paths. A separately written path, DuckDB SQL over the staged FDA pages plus its own Python arithmetic, recomputes the monthly and lag-matched counts, the distinct report totals, every forecast point and range, the scores, the review episodes, and the queue with and without its coverage gate as this page publishes it, and they must agree before anything is published. It does not refit the ETS model: candidate points are recomputed from the model's exported states, and ranges and scores from the published points. The recall timeline is checked only against fourteen independently verified Class I events, and the cohort gate, the exclusion receipt, the reports without an event date, the promotion decision, the pre-registered recall count, the summary-report composition, the remedial-recall counts and the outlook's twenty dots are carried from the build without a second derivation. The second path is validate_measures.py.
- Golden fixtures, computed outside both engines and committed before any engine code: both baselines on a made series, the ETS recurrence from fixed states, the review rule with a reset, the lag-matched count and the interval scores, passing on both paths.
- Proof the checks can fail. The validation report re-runs the 25 checks of the domain gate against deliberately corrupted copies of their input in 55 scenarios, from a missing partition and a moved hash to a page that states the wrong device class, and records that every one tripped. Every check has at least one scenario. The second path has no such proof mode of its own.
- Chronology. The git log shows the pre-registration and the frozen harness before the first forecast row and the promotion decision before the first locked row. One corrected result was frozen after a documented harness repair; promotion and point forecasts were unchanged.
- The chart review and two reading panels of simulated AI reviewer seats, under VIZ-PRINCIPLES v2.8 and CHART-REVIEW v2.8, recorded in the chart review.
The cohort gate
| Code | Device | Complete months of 96 | Raw training reports | Eligible training reports | Gate |
|---|---|---|---|---|---|
| DSQ | Ventricular (Assist) Bypass | 96 | 108,175 | 108,175 | pass |
| OZD | Temporary Non-Roller Type Left Heart Support Blood Pump | 87 | 5,875 | 5,875 | pass |
| PYX | Temporary Non-Roller Type Right Heart Support Blood Pump | 46 | 138 | 138 | pass |
| NPT | Aortic Valve, Prosthesis, Percutaneously Delivered | 96 | 40,110 | 40,110 | pass |
| NIK | Defibrillator, Automatic Implantable Cardioverter, With Cardiac Resynchronization (Crt-D) | 96 | 87,420 | 87,420 | pass |
| LWS | Implantable Cardioverter Defibrillator (Non-Crt) | 96 | 157,218 | 157,218 | pass |
| DSP | System, Balloon, Intra-Aortic And Control | 96 | 29,297 | 29,297 | pass |
The exclusion receipt
| Code | Field | Reports |
|---|---|---|
| DSP | ALL (countable reports) | 50,701 |
| DSP | ANY (reports removed) | 1 |
| DSP | device.manufacturer_d_name | 1 |
| DSQ | ALL (countable reports) | 138,034 |
| DSQ | ANY (reports removed) | 0 |
| LWS | ALL (countable reports) | 222,604 |
| LWS | ANY (reports removed) | 0 |
| NIK | ALL (countable reports) | 117,383 |
| NIK | ANY (reports removed) | 0 |
| NPT | ALL (countable reports) | 72,845 |
| NPT | ANY (reports removed) | 0 |
| OZD | ALL (countable reports) | 45,326 |
| OZD | ANY (reports removed) | 0 |
| PYX | ALL (countable reports) | 2,190 |
| PYX | ANY (reports removed) | 0 |
Check the forecast and the evidence.
The test result and what was checked are on this page. The repository carries the golden fixtures, the frozen harness, the pre-registration, both derivation paths, the validation report and the chart review, each with its commit in the git log.