Repository: gridstatus/gridstatus (language: python)

Issue:
Add Interconnection Queues
Interconnection queues give a sense of what production is coming online and when. All ISO publish this info, so it'd be great have it as part of the library


Discussion / hints:

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1c17d05c..7e12ff5f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 ## vNext
 
+- Add interconnection queue to data for SPP, NYISO, ERCOT, ISONE, PJM, MISO, and CAISO
 - Add `get_generators` and `get_loads` to NYISO
 
 ## v0.12.0 - Oct 28, 2022
diff --git a/docs/Examples/Interconnection Queues.ipynb b/docs/Examples/Interconnection Queues.ipynb
new file mode 100644
index 00000000..799029f1
--- /dev/null
+++ b/docs/Examples/Interconnection Queues.ipynb
@@ -0,0 +1,1960 @@
+{
+  "cells": [
+    {
+      "cell_type": "markdown",
+      "id": "57a92274",
+      "metadata": {},
+      "source": [
+        "# **NYISO** - Interconnection Queues"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 1,
+      "id": "3599dfce",
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "import gridstatus\n",
+        "import pandas as pd\n",
+        "import plotly.express as px\n",
+        "\n",
+        "%load_ext autoreload\n",
+        "%autoreload 2"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "82965289",
+      "metadata": {},
+      "source": [
+        "## NYISO Interconnection Queue\n",
+        "\n",
+        "The `get_interconnection_queue` call returns projects that are \"active\", \"completed\", and \"withdrawn\""
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 2,
+      "id": "5e62d100",
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/html": [
+              "<div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>Queue ID</th>\n",
+              "      <th>Project Name</th>\n",
+              "      <th>Interconnecting Entity</th>\n",
+              "      <th>County</th>\n",
+              "      <th>State</th>\n",
+              "      <th>Interconnection Location</th>\n",
+              "      <th>Transmission Owner</th>\n",
+              "      <th>Generation Type</th>\n",
+              "      <th>Capacity (MW)</th>\n",
+              "      <th>Summer Capacity (MW)</th>\n",
+              "      <th>...</th>\n",
+              "      <th>Withdrawn Date</th>\n",
+              "      <th>Withdrawal Comment</th>\n",
+              "      <th>Actual Completion Date</th>\n",
+              "      <th>Proposed  In-Service</th>\n",
+              "      <th>Proposed Initial-Sync</th>\n",
+              "      <th>Last Update</th>\n",
+              "      <th>Z</th>\n",
+              "      <th>S</th>\n",
+              "      <th>Availability of Studies</th>\n",
+              "      <th>FS Complete/ SGIA Tender</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>0276</td>\n",
+              "      <td>Homer Solar Energy Center</td>\n",
+              "      <td>Homer Solar Energy Center, LLC</td>\n",
+              "      <td>Cortland</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Cortland - Fenner 115kV</td>\n",
+              "      <td>NM-NG</td>\n",
+              "      <td>Solar</td>\n",
+              "      <td>90.0</td>\n",
+              "      <td>90.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2023-08-01</td>\n",
+              "      <td>2023-09-01</td>\n",
+              "      <td>2022-09-30 00:00:00</td>\n",
+              "      <td>C</td>\n",
+              "      <td>10.0</td>\n",
+              "      <td>FES, SRIS, FS</td>\n",
+              "      <td>2021-02-08 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>0386</td>\n",
+              "      <td>Grand Isle Intertie</td>\n",
+              "      <td>Vermont Green Line Devco, LLC</td>\n",
+              "      <td>Clinton</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Plattsburgh 230kV-New Haven, VT 345kV</td>\n",
+              "      <td>NYPA</td>\n",
+              "      <td>DC Transmission</td>\n",
+              "      <td>400.0</td>\n",
+              "      <td>400.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2023-12-01</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>2018-11-30 00:00:00</td>\n",
+              "      <td>D</td>\n",
+              "      <td>6.0</td>\n",
+              "      <td>FES, SIS</td>\n",
+              "      <td>NaT</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>0393</td>\n",
+              "      <td>Berrians East Replacement</td>\n",
+              "      <td>NRG Berrians East Development, LLC</td>\n",
+              "      <td>Queens</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Astoria East 138kV</td>\n",
+              "      <td>ConEd</td>\n",
+              "      <td>Dual Fuel</td>\n",
+              "      <td>94.2</td>\n",
+              "      <td>94.2</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2024-05-01</td>\n",
+              "      <td>2024-08-01</td>\n",
+              "      <td>2022-06-30 00:00:00</td>\n",
+              "      <td>J</td>\n",
+              "      <td>11.0</td>\n",
+              "      <td>FES, SRIS, FS</td>\n",
+              "      <td>2019-07-09 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>0396</td>\n",
+              "      <td>Baron Winds</td>\n",
+              "      <td>Baron Winds, LLC</td>\n",
+              "      <td>Steuben</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Hillside - Meyer 230kV</td>\n",
+              "      <td>NYSEG</td>\n",
+              "      <td>Wind</td>\n",
+              "      <td>238.4</td>\n",
+              "      <td>238.4</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2022-05-01</td>\n",
+              "      <td>2022-06-01</td>\n",
+              "      <td>2021-11-30 00:00:00</td>\n",
+              "      <td>C</td>\n",
+              "      <td>11.0</td>\n",
+              "      <td>FES, SRIS, FS</td>\n",
+              "      <td>2019-07-09 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>0396A</td>\n",
+              "      <td>Wood Street Transformer</td>\n",
+              "      <td>New York State Electric &amp; Gas</td>\n",
+              "      <td>Putnam</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Wood St. 345/115kV</td>\n",
+              "      <td>NYSEG</td>\n",
+              "      <td>AC Transmission</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2022-12-01</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>2021-04-30 00:00:00</td>\n",
+              "      <td>G</td>\n",
+              "      <td>12.0</td>\n",
+              "      <td>SIS</td>\n",
+              "      <td>NaT</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>...</th>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>116</th>\n",
+              "      <td>583</td>\n",
+              "      <td>Fulton</td>\n",
+              "      <td>Erie Boulevard Hydropower, LP</td>\n",
+              "      <td>Oswego</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Fay St. 34.5kV</td>\n",
+              "      <td>NM-NG</td>\n",
+              "      <td>Hydro</td>\n",
+              "      <td>1.3</td>\n",
+              "      <td>1.3</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>3/31/18</td>\n",
+              "      <td>2025-07-01</td>\n",
+              "      <td>2025-11-01</td>\n",
+              "      <td>3/31/18</td>\n",
+              "      <td>C</td>\n",
+              "      <td>14</td>\n",
+              "      <td>FS</td>\n",
+              "      <td>2017-07-12 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>117</th>\n",
+              "      <td>0696</td>\n",
+              "      <td>Swinging Bridge Unit 3</td>\n",
+              "      <td>Eagle Creek Hydro Power, LLC</td>\n",
+              "      <td>Orange</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Swing Bridge 69 kV</td>\n",
+              "      <td>O&amp;R</td>\n",
+              "      <td>Hydro</td>\n",
+              "      <td>1.2</td>\n",
+              "      <td>1.2</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>2024-11-01</td>\n",
+              "      <td>2024-12-01</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>G</td>\n",
+              "      <td>14</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2018-06-20 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>118</th>\n",
+              "      <td>0701</td>\n",
+              "      <td>KCE NY 1</td>\n",
+              "      <td>KCE NY 1, LLC</td>\n",
+              "      <td>Saratoga</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Luther - Forest Substation 34.5kV</td>\n",
+              "      <td>NYSEG</td>\n",
+              "      <td>Energy Storage</td>\n",
+              "      <td>20.0</td>\n",
+              "      <td>20.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>2022-10-01</td>\n",
+              "      <td>2022-11-01</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>F</td>\n",
+              "      <td>14</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2018-06-20 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>119</th>\n",
+              "      <td>0731</td>\n",
+              "      <td>Branscomb Solar</td>\n",
+              "      <td>Branscomb Solar, LLC</td>\n",
+              "      <td>Washington</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Battenkill - Eastover 115kV</td>\n",
+              "      <td>NM-NG</td>\n",
+              "      <td>Solar</td>\n",
+              "      <td>20.0</td>\n",
+              "      <td>20.0</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2022-03-31 00:00:00</td>\n",
+              "      <td>2024-11-01</td>\n",
+              "      <td>2025-02-01</td>\n",
+              "      <td>2022-03-31 00:00:00</td>\n",
+              "      <td>F</td>\n",
+              "      <td>14</td>\n",
+              "      <td>FES, SIS, FS</td>\n",
+              "      <td>2020-04-29 00:00:00</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>120</th>\n",
+              "      <td>0781</td>\n",
+              "      <td>Marcy South SSR Detection</td>\n",
+              "      <td>New York Power Authority</td>\n",
+              "      <td>Delaware</td>\n",
+              "      <td>NY</td>\n",
+              "      <td>Fraser - Annex 345 kV Substation</td>\n",
+              "      <td>NYPA</td>\n",
+              "      <td>AC Transmission</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>2023-09-01</td>\n",
+              "      <td>2023-09-01</td>\n",
+              "      <td>2020-04-30 00:00:00</td>\n",
+              "      <td>E</td>\n",
+              "      <td>14</td>\n",
+              "      <td>SIS</td>\n",
+              "      <td>NaN</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "<p>1418 rows × 24 columns</p>\n",
+              "</div>"
+            ],
+            "text/plain": [
+              "    Queue ID               Project Name              Interconnecting Entity  \\\n",
+              "0       0276  Homer Solar Energy Center      Homer Solar Energy Center, LLC   \n",
+              "1       0386        Grand Isle Intertie       Vermont Green Line Devco, LLC   \n",
+              "2       0393  Berrians East Replacement  NRG Berrians East Development, LLC   \n",
+              "3       0396                Baron Winds                    Baron Winds, LLC   \n",
+              "4      0396A    Wood Street Transformer       New York State Electric & Gas   \n",
+              "..       ...                        ...                                 ...   \n",
+              "116      583                     Fulton       Erie Boulevard Hydropower, LP   \n",
+              "117     0696     Swinging Bridge Unit 3        Eagle Creek Hydro Power, LLC   \n",
+              "118     0701                   KCE NY 1                       KCE NY 1, LLC   \n",
+              "119     0731            Branscomb Solar                Branscomb Solar, LLC   \n",
+              "120     0781  Marcy South SSR Detection            New York Power Authority   \n",
+              "\n",
+              "         County State               Interconnection Location  \\\n",
+              "0      Cortland    NY                Cortland - Fenner 115kV   \n",
+              "1       Clinton    NY  Plattsburgh 230kV-New Haven, VT 345kV   \n",
+              "2        Queens    NY                     Astoria East 138kV   \n",
+              "3       Steuben    NY                 Hillside - Meyer 230kV   \n",
+              "4        Putnam    NY                     Wood St. 345/115kV   \n",
+              "..          ...   ...                                    ...   \n",
+              "116      Oswego    NY                         Fay St. 34.5kV   \n",
+              "117      Orange    NY                     Swing Bridge 69 kV   \n",
+              "118    Saratoga    NY      Luther - Forest Substation 34.5kV   \n",
+              "119  Washington    NY            Battenkill - Eastover 115kV   \n",
+              "120    Delaware    NY       Fraser - Annex 345 kV Substation   \n",
+              "\n",
+              "    Transmission Owner  Generation Type  Capacity (MW) Summer Capacity (MW)  \\\n",
+              "0                NM-NG            Solar           90.0                 90.0   \n",
+              "1                 NYPA  DC Transmission          400.0                400.0   \n",
+              "2                ConEd        Dual Fuel           94.2                 94.2   \n",
+              "3                NYSEG             Wind          238.4                238.4   \n",
+              "4                NYSEG  AC Transmission            NaN                  NaN   \n",
+              "..                 ...              ...            ...                  ...   \n",
+              "116              NM-NG            Hydro            1.3                  1.3   \n",
+              "117                O&R            Hydro            1.2                  1.2   \n",
+              "118              NYSEG   Energy Storage           20.0                 20.0   \n",
+              "119              NM-NG            Solar           20.0                 20.0   \n",
+              "120               NYPA  AC Transmission            NaN                  NaN   \n",
+              "\n",
+              "     ... Withdrawn Date Withdrawal Comment Actual Completion Date  \\\n",
+              "0    ...            NaN                NaN                    NaN   \n",
+              "1    ...            NaN                NaN                    NaN   \n",
+              "2    ...            NaN                NaN                    NaN   \n",
+              "3    ...            NaN                NaN                    NaN   \n",
+              "4    ...            NaN                NaN                    NaN   \n",
+              "..   ...            ...                ...                    ...   \n",
+              "116  ...            NaN                NaN                3/31/18   \n",
+              "117  ...            NaN                NaN    2020-04-30 00:00:00   \n",
+              "118  ...            NaN                NaN    2020-04-30 00:00:00   \n",
+              "119  ...            NaN                NaN    2022-03-31 00:00:00   \n",
+              "120  ...            NaN                NaN    2020-04-30 00:00:00   \n",
+              "\n",
+              "    Proposed  In-Service Proposed Initial-Sync          Last Update  Z     S  \\\n",
+              "0             2023-08-01            2023-09-01  2022-09-30 00:00:00  C  10.0   \n",
+              "1             2023-12-01                   NaT  2018-11-30 00:00:00  D   6.0   \n",
+              "2             2024-05-01            2024-08-01  2022-06-30 00:00:00  J  11.0   \n",
+              "3             2022-05-01            2022-06-01  2021-11-30 00:00:00  C  11.0   \n",
+              "4             2022-12-01                   NaT  2021-04-30 00:00:00  G  12.0   \n",
+              "..                   ...                   ...                  ... ..   ...   \n",
+              "116           2025-07-01            2025-11-01              3/31/18  C    14   \n",
+              "117           2024-11-01            2024-12-01  2020-04-30 00:00:00  G    14   \n",
+              "118           2022-10-01            2022-11-01  2020-04-30 00:00:00  F    14   \n",
+              "119           2024-11-01            2025-02-01  2022-03-31 00:00:00  F    14   \n",
+              "120           2023-09-01            2023-09-01  2020-04-30 00:00:00  E    14   \n",
+              "\n",
+              "    Availability of Studies FS Complete/ SGIA Tender  \n",
+              "0             FES, SRIS, FS      2021-02-08 00:00:00  \n",
+              "1                  FES, SIS                      NaT  \n",
+              "2             FES, SRIS, FS      2019-07-09 00:00:00  \n",
+              "3             FES, SRIS, FS      2019-07-09 00:00:00  \n",
+              "4                       SIS                      NaT  \n",
+              "..                      ...                      ...  \n",
+              "116                      FS      2017-07-12 00:00:00  \n",
+              "117                     NaN      2018-06-20 00:00:00  \n",
+              "118                     NaN      2018-06-20 00:00:00  \n",
+              "119            FES, SIS, FS      2020-04-29 00:00:00  \n",
+              "120                     SIS                      NaN  \n",
+              "\n",
+              "[1418 rows x 24 columns]"
+            ]
+          },
+          "execution_count": 2,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "iso = gridstatus.NYISO()\n",
+        "queue = iso.get_interconnection_queue()\n",
+        "queue.head()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 3,
+      "id": "4b9a440a",
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "image/svg+xml": "<svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"700\" height=\"500\" style=\"\" viewBox=\"0 0 700 500\"><rect x=\"0\" y=\"0\" width=\"700\" height=\"500\" style=\"fill: rgb(255, 255, 255); fill-opacity: 1;\"/><defs id=\"defs-5ba38f\"><g class=\"clips\"><clipPath id=\"clip5ba38fxyplot\" class=\"plotclip\"><rect width=\"540\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clip5ba38fx\"><rect x=\"80\" y=\"0\" width=\"540\" height=\"500\"/></clipPath><clipPath class=\"axesclip\" id=\"clip5ba38fy\"><rect x=\"0\" y=\"100\" width=\"700\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clip5ba38fxy\"><rect x=\"80\" y=\"100\" width=\"540\" height=\"320\"/></clipPath></g><g class=\"gradients\"/><g class=\"patterns\"/></defs><g class=\"bglayer\"><rect class=\"bg\" x=\"80\" y=\"100\" width=\"540\" height=\"320\" style=\"fill: rgb(229, 236, 246); fill-opacity: 1; stroke-width: 0;\"/></g><g class=\"layer-below\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"cartesianlayer\"><g class=\"subplot xy\"><g class=\"layer-subplot\"><g class=\"shapelayer\"/><g class=\"imagelayer\"/></g><g class=\"minor-gridlayer\"><g class=\"x\"/><g class=\"y\"/></g><g class=\"gridlayer\"><g class=\"x\"/><g class=\"y\"><path class=\"ygrid crisp\" transform=\"translate(0,382.47)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,344.94)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,307.40999999999997)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,269.88)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,232.35)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,194.81)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,157.28)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,119.75)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/></g></g><g class=\"zerolinelayer\"><path class=\"yzl zl crisp\" transform=\"translate(0,420)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 2px;\"/></g><path class=\"xlines-below\"/><path class=\"ylines-below\"/><g class=\"overlines-below\"/><g class=\"xaxislayer-below\"/><g class=\"yaxislayer-below\"/><g class=\"overaxes-below\"/><g class=\"plot\" transform=\"translate(80,100)\" clip-path=\"url(#clip5ba38fxyplot)\"><g class=\"barlayer mlayer\"><g class=\"trace bars\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M18,320V16H162V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0.5px; fill: rgb(99, 110, 250); fill-opacity: 1; stroke: rgb(229, 236, 246); stroke-opacity: 1;\"/></g><g class=\"point\"><path d=\"M198,320V137.22H342V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0.5px; fill: rgb(99, 110, 250); fill-opacity: 1; stroke: rgb(229, 236, 246); stroke-opacity: 1;\"/></g><g class=\"point\"><path d=\"M378,320V274.59H522V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0.5px; fill: rgb(99, 110, 250); fill-opacity: 1; stroke: rgb(229, 236, 246); stroke-opacity: 1;\"/></g></g></g></g></g><g class=\"overplot\"/><path class=\"xlines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><path class=\"ylines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><g class=\"overlines-above\"/><g class=\"xaxislayer-above\"><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" transform=\"translate(170,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">Withdrawn</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" transform=\"translate(350,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">Active</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" transform=\"translate(530,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">Completed</text></g></g><g class=\"yaxislayer-above\"><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" transform=\"translate(0,420)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">0</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,382.47)\">100</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,344.94)\">200</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,307.40999999999997)\">300</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,269.88)\">400</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,232.35)\">500</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,194.81)\">600</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,157.28)\">700</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,119.75)\">800</text></g></g><g class=\"overaxes-above\"/></g></g><g class=\"polarlayer\"/><g class=\"smithlayer\"/><g class=\"ternarylayer\"/><g class=\"geolayer\"/><g class=\"funnelarealayer\"/><g class=\"pielayer\"/><g class=\"iciclelayer\"/><g class=\"treemaplayer\"/><g class=\"sunburstlayer\"/><g class=\"glimages\"/><defs id=\"topdefs-5ba38f\"><g class=\"clips\"/></defs><g class=\"layer-above\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"infolayer\"><g class=\"g-gtitle\"><text class=\"gtitle\" x=\"35\" y=\"50\" text-anchor=\"start\" dy=\"0em\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 17px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Project by Status - NYISO</text></g><g class=\"g-xtitle\"><text class=\"xtitle\" x=\"350\" y=\"460.3\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">index</text></g><g class=\"g-ytitle\"><text class=\"ytitle\" transform=\"rotate(-90,31.309375000000003,260)\" x=\"31.309375000000003\" y=\"260\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Status</text></g></g></svg>"
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "status_distributions = queue[\"Status\"].value_counts()\n",
+        "fig = px.bar(status_distributions, x=status_distributions.index, y=\"Status\", title=\"Project by Status - NYISO\")\n",
+        "fig.show(\"svg\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "831647bc",
+      "metadata": {},
+      "source": [
+        "## Days in Queue"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 4,
+      "id": "dd3179bf",
+      "metadata": {
+        "tags": []
+      },
+      "outputs": [
+        {
+          "data": {
+            "image/svg+xml": "<svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"700\" height=\"500\" style=\"\" viewBox=\"0 0 700 500\"><rect x=\"0\" y=\"0\" width=\"700\" height=\"500\" style=\"fill: rgb(255, 255, 255); fill-opacity: 1;\"/><defs id=\"defs-8f7b8c\"><g class=\"clips\"><clipPath id=\"clip8f7b8cxyplot\" class=\"plotclip\"><rect width=\"540\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clip8f7b8cx\"><rect x=\"80\" y=\"0\" width=\"540\" height=\"500\"/></clipPath><clipPath class=\"axesclip\" id=\"clip8f7b8cy\"><rect x=\"0\" y=\"100\" width=\"700\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clip8f7b8cxy\"><rect x=\"80\" y=\"100\" width=\"540\" height=\"320\"/></clipPath></g><g class=\"gradients\"/><g class=\"patterns\"/></defs><g class=\"bglayer\"><rect class=\"bg\" x=\"80\" y=\"100\" width=\"540\" height=\"320\" style=\"fill: rgb(229, 236, 246); fill-opacity: 1; stroke-width: 0;\"/></g><g class=\"layer-below\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"cartesianlayer\"><g class=\"subplot xy\"><g class=\"layer-subplot\"><g class=\"shapelayer\"/><g class=\"imagelayer\"/></g><g class=\"minor-gridlayer\"><g class=\"x\"/><g class=\"y\"/></g><g class=\"gridlayer\"><g class=\"x\"/><g class=\"y\"><path class=\"ygrid crisp\" transform=\"translate(0,382)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,344)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,306)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,268)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,230)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,192)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,154)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,116)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/></g></g><g class=\"zerolinelayer\"><path class=\"yzl zl crisp\" transform=\"translate(0,420)\" d=\"M80,0h540\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 2px;\"/></g><path class=\"xlines-below\"/><path class=\"ylines-below\"/><g class=\"overlines-below\"/><g class=\"xaxislayer-below\"/><g class=\"yaxislayer-below\"/><g class=\"overaxes-below\"/><g class=\"plot\" transform=\"translate(80,100)\" clip-path=\"url(#clip8f7b8cxyplot)\"><g class=\"barlayer mlayer\"><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M0,320V213.6H20V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M20,320V16H40V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M40,320V19.8H60V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M60,320V152.8H80V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M80,320V114.8H100V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M100,320V168H120V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M120,320V133.8H140V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M140,320V236.4H160V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M160,320V232.6H180V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M180,320V278.2H200V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M200,320V251.6H220V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M220,320V244H240V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M240,320V293.4H260V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M260,320V301H280V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M300,320V316.2H320V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M320,320V316.2H340V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M360,320V304.8H380V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M520,320V316.2H540V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g></g></g></g></g><g class=\"overplot\"/><path class=\"xlines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><path class=\"ylines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><g class=\"overlines-above\"/><g class=\"xaxislayer-above\"><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" transform=\"translate(80.05,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">0</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(180.05,0)\">1000</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(280.05,0)\">2000</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(380.05,0)\">3000</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(480.05,0)\">4000</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(580.05,0)\">5000</text></g></g><g class=\"yaxislayer-above\"><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" transform=\"translate(0,420)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">0</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,382)\">10</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,344)\">20</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,306)\">30</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,268)\">40</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,230)\">50</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,192)\">60</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,154)\">70</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,116)\">80</text></g></g><g class=\"overaxes-above\"/></g></g><g class=\"polarlayer\"/><g class=\"smithlayer\"/><g class=\"ternarylayer\"/><g class=\"geolayer\"/><g class=\"funnelarealayer\"/><g class=\"pielayer\"/><g class=\"iciclelayer\"/><g class=\"treemaplayer\"/><g class=\"sunburstlayer\"/><g class=\"glimages\"/><defs id=\"topdefs-8f7b8c\"><g class=\"clips\"/></defs><g class=\"layer-above\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"infolayer\"><g class=\"g-gtitle\"><text class=\"gtitle\" x=\"35\" y=\"50\" text-anchor=\"start\" dy=\"0em\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 17px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Days in Queue - Active Projects - NYISO</text></g><g class=\"g-xtitle\"><text class=\"xtitle\" x=\"350\" y=\"460.3\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Days in Queue</text></g><g class=\"g-ytitle\"><text class=\"ytitle\" transform=\"rotate(-90,38.934375,260)\" x=\"38.934375\" y=\"260\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">count</text></g></g></svg>"
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "queue[\"Days in Queue\"] = (pd.Timestamp.now() - queue[\"Queue Date\"]).dt.days\n",
+        "active = queue[queue[\"Status\"] == \"Active\"]\n",
+        "fig = px.histogram(active, x=\"Days in Queue\", title=\"Days in Queue - Active Projects - NYISO\")\n",
+        "fig.show(\"svg\")\n"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "09af99f7",
+      "metadata": {},
+      "source": [
+        "## Top Active Project Types"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 5,
+      "id": "53eceb78",
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "application/vnd.plotly.v1+json": {
+              "config": {
+                "plotlyServerURL": "https://plot.ly"
+              },
+              "data": [
+                {
+                  "alignmentgroup": "True",
+                  "hovertemplate": "index=%{x}<br>Generation Type=%{y}<extra></extra>",
+                  "legendgroup": "",
+                  "marker": {
+                    "color": "#636efa",
+                    "pattern": {
+                      "shape": ""
+                    }
+                  },
+                  "name": "",
+                  "offsetgroup": "",
+                  "orientation": "v",
+                  "showlegend": false,
+                  "textposition": "auto",
+                  "type": "bar",
+                  "x": [
+                    "Solar",
+                    "Energy Storage",
+                    "Wind",
+                    "AC Transmission",
+                    "DC Transmission",
+                    "Load",
+                    "Combined Cycle",
+                    "Dual Fuel",
+                    "Combustion Turbine"
+                  ],
+                  "xaxis": "x",
+                  "y": [
+                    188,
+                    149,
+                    79,
+                    31,
+                    14,
+                    7,
+                    3,
+                    1,
+                    1
+                  ],
+                  "yaxis": "y"
+                }
+              ],
+              "layout": {
+                "barmode": "relative",
+                "legend": {
+                  "tracegroupgap": 0
+                },
+                "template": {
+                  "data": {
+                    "bar": [
+                      {
+                        "error_x": {
+                          "color": "#2a3f5f"
+                        },
+                        "error_y": {
+                          "color": "#2a3f5f"
+                        },
+                        "marker": {
+                          "line": {
+                            "color": "#E5ECF6",
+                            "width": 0.5
+                          },
+                          "pattern": {
+                            "fillmode": "overlay",
+                            "size": 10,
+                            "solidity": 0.2
+                          }
+                        },
+                        "type": "bar"
+                      }
+                    ],
+                    "barpolar": [
+                      {
+                        "marker": {
+                          "line": {
+                            "color": "#E5ECF6",
+                            "width": 0.5
+                          },
+                          "pattern": {
+                            "fillmode": "overlay",
+                            "size": 10,
+                            "solidity": 0.2
+                          }
+                        },
+                        "type": "barpolar"
+                      }
+                    ],
+                    "carpet": [
+                      {
+                        "aaxis": {
+                          "endlinecolor": "#2a3f5f",
+                          "gridcolor": "white",
+                          "linecolor": "white",
+                          "minorgridcolor": "white",
+                          "startlinecolor": "#2a3f5f"
+                        },
+                        "baxis": {
+                          "endlinecolor": "#2a3f5f",
+                          "gridcolor": "white",
+                          "linecolor": "white",
+                          "minorgridcolor": "white",
+                          "startlinecolor": "#2a3f5f"
+                        },
+                        "type": "carpet"
+                      }
+                    ],
+                    "choropleth": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "type": "choropleth"
+                      }
+                    ],
+                    "contour": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "contour"
+                      }
+                    ],
+                    "contourcarpet": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "type": "contourcarpet"
+                      }
+                    ],
+                    "heatmap": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "heatmap"
+                      }
+                    ],
+                    "heatmapgl": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "heatmapgl"
+                      }
+                    ],
+                    "histogram": [
+                      {
+                        "marker": {
+                          "pattern": {
+                            "fillmode": "overlay",
+                            "size": 10,
+                            "solidity": 0.2
+                          }
+                        },
+                        "type": "histogram"
+                      }
+                    ],
+                    "histogram2d": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "histogram2d"
+                      }
+                    ],
+                    "histogram2dcontour": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "histogram2dcontour"
+                      }
+                    ],
+                    "mesh3d": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "type": "mesh3d"
+                      }
+                    ],
+                    "parcoords": [
+                      {
+                        "line": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "parcoords"
+                      }
+                    ],
+                    "pie": [
+                      {
+                        "automargin": true,
+                        "type": "pie"
+                      }
+                    ],
+                    "scatter": [
+                      {
+                        "fillpattern": {
+                          "fillmode": "overlay",
+                          "size": 10,
+                          "solidity": 0.2
+                        },
+                        "type": "scatter"
+                      }
+                    ],
+                    "scatter3d": [
+                      {
+                        "line": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scatter3d"
+                      }
+                    ],
+                    "scattercarpet": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scattercarpet"
+                      }
+                    ],
+                    "scattergeo": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scattergeo"
+                      }
+                    ],
+                    "scattergl": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scattergl"
+                      }
+                    ],
+                    "scattermapbox": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scattermapbox"
+                      }
+                    ],
+                    "scatterpolar": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scatterpolar"
+                      }
+                    ],
+                    "scatterpolargl": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scatterpolargl"
+                      }
+                    ],
+                    "scatterternary": [
+                      {
+                        "marker": {
+                          "colorbar": {
+                            "outlinewidth": 0,
+                            "ticks": ""
+                          }
+                        },
+                        "type": "scatterternary"
+                      }
+                    ],
+                    "surface": [
+                      {
+                        "colorbar": {
+                          "outlinewidth": 0,
+                          "ticks": ""
+                        },
+                        "colorscale": [
+                          [
+                            0,
+                            "#0d0887"
+                          ],
+                          [
+                            0.1111111111111111,
+                            "#46039f"
+                          ],
+                          [
+                            0.2222222222222222,
+                            "#7201a8"
+                          ],
+                          [
+                            0.3333333333333333,
+                            "#9c179e"
+                          ],
+                          [
+                            0.4444444444444444,
+                            "#bd3786"
+                          ],
+                          [
+                            0.5555555555555556,
+                            "#d8576b"
+                          ],
+                          [
+                            0.6666666666666666,
+                            "#ed7953"
+                          ],
+                          [
+                            0.7777777777777778,
+                            "#fb9f3a"
+                          ],
+                          [
+                            0.8888888888888888,
+                            "#fdca26"
+                          ],
+                          [
+                            1,
+                            "#f0f921"
+                          ]
+                        ],
+                        "type": "surface"
+                      }
+                    ],
+                    "table": [
+                      {
+                        "cells": {
+                          "fill": {
+                            "color": "#EBF0F8"
+                          },
+                          "line": {
+                            "color": "white"
+                          }
+                        },
+                        "header": {
+                          "fill": {
+                            "color": "#C8D4E3"
+                          },
+                          "line": {
+                            "color": "white"
+                          }
+                        },
+                        "type": "table"
+                      }
+                    ]
+                  },
+                  "layout": {
+                    "annotationdefaults": {
+                      "arrowcolor": "#2a3f5f",
+                      "arrowhead": 0,
+                      "arrowwidth": 1
+                    },
+                    "autotypenumbers": "strict",
+                    "coloraxis": {
+                      "colorbar": {
+                        "outlinewidth": 0,
+                        "ticks": ""
+                      }
+                    },
+                    "colorscale": {
+                      "diverging": [
+                        [
+                          0,
+                          "#8e0152"
+                        ],
+                        [
+                          0.1,
+                          "#c51b7d"
+                        ],
+                        [
+                          0.2,
+                          "#de77ae"
+                        ],
+                        [
+                          0.3,
+                          "#f1b6da"
+                        ],
+                        [
+                          0.4,
+                          "#fde0ef"
+                        ],
+                        [
+                          0.5,
+                          "#f7f7f7"
+                        ],
+                        [
+                          0.6,
+                          "#e6f5d0"
+                        ],
+                        [
+                          0.7,
+                          "#b8e186"
+                        ],
+                        [
+                          0.8,
+                          "#7fbc41"
+                        ],
+                        [
+                          0.9,
+                          "#4d9221"
+                        ],
+                        [
+                          1,
+                          "#276419"
+                        ]
+                      ],
+                      "sequential": [
+                        [
+                          0,
+                          "#0d0887"
+                        ],
+                        [
+                          0.1111111111111111,
+                          "#46039f"
+                        ],
+                        [
+                          0.2222222222222222,
+                          "#7201a8"
+                        ],
+                        [
+                          0.3333333333333333,
+                          "#9c179e"
+                        ],
+                        [
+                          0.4444444444444444,
+                          "#bd3786"
+                        ],
+                        [
+                          0.5555555555555556,
+                          "#d8576b"
+                        ],
+                        [
+                          0.6666666666666666,
+                          "#ed7953"
+                        ],
+                        [
+                          0.7777777777777778,
+                          "#fb9f3a"
+                        ],
+                        [
+                          0.8888888888888888,
+                          "#fdca26"
+                        ],
+                        [
+                          1,
+                          "#f0f921"
+                        ]
+                      ],
+                      "sequentialminus": [
+                        [
+                          0,
+                          "#0d0887"
+                        ],
+                        [
+                          0.1111111111111111,
+                          "#46039f"
+                        ],
+                        [
+                          0.2222222222222222,
+                          "#7201a8"
+                        ],
+                        [
+                          0.3333333333333333,
+                          "#9c179e"
+                        ],
+                        [
+                          0.4444444444444444,
+                          "#bd3786"
+                        ],
+                        [
+                          0.5555555555555556,
+                          "#d8576b"
+                        ],
+                        [
+                          0.6666666666666666,
+                          "#ed7953"
+                        ],
+                        [
+                          0.7777777777777778,
+                          "#fb9f3a"
+                        ],
+                        [
+                          0.8888888888888888,
+                          "#fdca26"
+                        ],
+                        [
+                          1,
+                          "#f0f921"
+                        ]
+                      ]
+                    },
+                    "colorway": [
+                      "#636efa",
+                      "#EF553B",
+                      "#00cc96",
+                      "#ab63fa",
+                      "#FFA15A",
+                      "#19d3f3",
+                      "#FF6692",
+                      "#B6E880",
+                      "#FF97FF",
+                      "#FECB52"
+                    ],
+                    "font": {
+                      "color": "#2a3f5f"
+                    },
+                    "geo": {
+                      "bgcolor": "white",
+                      "lakecolor": "white",
+                      "landcolor": "#E5ECF6",
+                      "showlakes": true,
+                      "showland": true,
+                      "subunitcolor": "white"
+                    },
+                    "hoverlabel": {
+                      "align": "left"
+                    },
+                    "hovermode": "closest",
+                    "mapbox": {
+                      "style": "light"
+                    },
+                    "paper_bgcolor": "white",
+                    "plot_bgcolor": "#E5ECF6",
+                    "polar": {
+                      "angularaxis": {
+                        "gridcolor": "white",
+                        "linecolor": "white",
+                        "ticks": ""
+                      },
+                      "bgcolor": "#E5ECF6",
+                      "radialaxis": {
+                        "gridcolor": "white",
+                        "linecolor": "white",
+                        "ticks": ""
+                      }
+                    },
+                    "scene": {
+                      "xaxis": {
+                        "backgroundcolor": "#E5ECF6",
+                        "gridcolor": "white",
+                        "gridwidth": 2,
+                        "linecolor": "white",
+                        "showbackground": true,
+                        "ticks": "",
+                        "zerolinecolor": "white"
+                      },
+                      "yaxis": {
+                        "backgroundcolor": "#E5ECF6",
+                        "gridcolor": "white",
+                        "gridwidth": 2,
+                        "linecolor": "white",
+                        "showbackground": true,
+                        "ticks": "",
+                        "zerolinecolor": "white"
+                      },
+                      "zaxis": {
+                        "backgroundcolor": "#E5ECF6",
+                        "gridcolor": "white",
+                        "gridwidth": 2,
+                        "linecolor": "white",
+                        "showbackground": true,
+                        "ticks": "",
+                        "zerolinecolor": "white"
+                      }
+                    },
+                    "shapedefaults": {
+                      "line": {
+                        "color": "#2a3f5f"
+                      }
+                    },
+                    "ternary": {
+                      "aaxis": {
+                        "gridcolor": "white",
+                        "linecolor": "white",
+                        "ticks": ""
+                      },
+                      "baxis": {
+                        "gridcolor": "white",
+                        "linecolor": "white",
+                        "ticks": ""
+                      },
+                      "bgcolor": "#E5ECF6",
+                      "caxis": {
+                        "gridcolor": "white",
+                        "linecolor": "white",
+                        "ticks": ""
+                      }
+                    },
+                    "title": {
+                      "x": 0.05
+                    },
+                    "xaxis": {
+                      "automargin": true,
+                      "gridcolor": "white",
+                      "linecolor": "white",
+                      "ticks": "",
+                      "title": {
+                        "standoff": 15
+                      },
+                      "zerolinecolor": "white",
+                      "zerolinewidth": 2
+                    },
+                    "yaxis": {
+                      "automargin": true,
+                      "gridcolor": "white",
+                      "linecolor": "white",
+                      "ticks": "",
+                      "title": {
+                        "standoff": 15
+                      },
+                      "zerolinecolor": "white",
+                      "zerolinewidth": 2
+                    }
+                  }
+                },
+                "title": {
+                  "text": "Project by Type - NYISO"
+                },
+                "xaxis": {
+                  "anchor": "y",
+                  "domain": [
+                    0,
+                    1
+                  ],
+                  "title": {
+                    "text": "index"
+                  }
+                },
+                "yaxis": {
+                  "anchor": "x",
+                  "domain": [
+                    0,
+                    1
+                  ],
+                  "title": {
+                    "text": "Generation Type"
+                  }
+                }
+              }
+            }
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "generation_types = active[\"Generation Type\"].value_counts()\n",
+        "fig = px.bar(generation_types, x=generation_types.index, y=\"Generation Type\", title=\"Project by Type - NYISO\")\n",
+        "fig.show(\"svg\")"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "a5d6e271",
+      "metadata": {},
+      "source": [
+        "## Proposed Completion Date"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 20,
+      "id": "5810554d",
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "image/svg+xml": "<svg class=\"main-svg\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"700\" height=\"500\" style=\"\" viewBox=\"0 0 700 500\"><rect x=\"0\" y=\"0\" width=\"700\" height=\"500\" style=\"fill: rgb(255, 255, 255); fill-opacity: 1;\"/><defs id=\"defs-b3e781\"><g class=\"clips\"><clipPath id=\"clipb3e781xyplot\" class=\"plotclip\"><rect width=\"432\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clipb3e781x\"><rect x=\"80\" y=\"0\" width=\"432\" height=\"500\"/></clipPath><clipPath class=\"axesclip\" id=\"clipb3e781y\"><rect x=\"0\" y=\"100\" width=\"700\" height=\"320\"/></clipPath><clipPath class=\"axesclip\" id=\"clipb3e781xy\"><rect x=\"80\" y=\"100\" width=\"432\" height=\"320\"/></clipPath></g><g class=\"gradients\"/><g class=\"patterns\"/></defs><g class=\"bglayer\"><rect class=\"bg\" x=\"80\" y=\"100\" width=\"432\" height=\"320\" style=\"fill: rgb(229, 236, 246); fill-opacity: 1; stroke-width: 0;\"/></g><g class=\"layer-below\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"cartesianlayer\"><g class=\"subplot xy\"><g class=\"layer-subplot\"><g class=\"shapelayer\"/><g class=\"imagelayer\"/></g><g class=\"minor-gridlayer\"><g class=\"x\"/><g class=\"y\"/></g><g class=\"gridlayer\"><g class=\"x\"/><g class=\"y\"><path class=\"ygrid crisp\" transform=\"translate(0,359.8)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,299.6)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,239.41)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,179.20999999999998)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/><path class=\"ygrid crisp\" transform=\"translate(0,119.01)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 1px;\"/></g></g><g class=\"zerolinelayer\"><path class=\"yzl zl crisp\" transform=\"translate(0,420)\" d=\"M80,0h432\" style=\"stroke: rgb(255, 255, 255); stroke-opacity: 1; stroke-width: 2px;\"/></g><path class=\"xlines-below\"/><path class=\"ylines-below\"/><g class=\"overlines-below\"/><g class=\"xaxislayer-below\"/><g class=\"yaxislayer-below\"/><g class=\"overaxes-below\"/><g class=\"plot\" transform=\"translate(80,100)\" clip-path=\"url(#clipb3e781xyplot)\"><g class=\"barlayer mlayer\"><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M0,320V316.99H22.55V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M22.73,320V310.97H45.28V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M45.47,320V250.77H68.01V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M68.2,320V268.83H90.75V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M90.93,320V124.36H113.48V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M113.73,320V304.95H136.28V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M136.53,320V202.61H159.07V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M159.26,320V301.94H181.81V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M181.99,320V259.8H204.54V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M204.73,320V313.98H227.27V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M227.46,320V301.94H250.01V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M181.99,259.8V253.78H204.54V259.8Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M204.73,313.98V310.97H227.27V313.98Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M250.19,320V316.99H272.74V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M295.72,320V310.97H318.27V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M136.53,202.61V199.6H159.07V202.61Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(0, 204, 150); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M45.47,250.77V223.68H68.01V250.77Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M68.2,268.83V265.82H90.75V268.83Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M90.93,124.36V94.26H113.48V124.36Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M113.73,304.95V295.92H136.28V304.95Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M136.53,199.6V193.58H159.07V199.6Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M159.26,301.94V298.93H181.81V301.94Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M181.99,253.78V217.66H204.54V253.78Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M204.73,310.97V301.94H227.27V310.97Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M227.46,301.94V289.9H250.01V301.94Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M250.19,316.99V307.96H272.74V316.99Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M272.93,320V301.94H295.47V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M295.72,310.97V304.95H318.27V310.97Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M318.52,320V316.99H341.07V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M363.99,320V313.98H386.53V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M409.45,320V259.8H432V320Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M113.73,295.92V292.91H136.28V295.92Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 161, 90); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M0,316.99V313.98H22.55V316.99Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M22.73,310.97V307.96H45.28V310.97Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M45.47,223.68V166.5H68.01V223.68Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M68.2,265.82V232.71H90.75V265.82Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M90.93,94.26V16H113.48V94.26Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M113.73,292.91V241.74H136.28V292.91Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M136.53,193.58V133.39H159.07V193.58Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M159.26,298.93V274.85H181.81V298.93Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M181.99,217.66V121.35H204.54V217.66Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M204.73,301.94V295.92H227.27V301.94Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M227.46,289.9V262.81H250.01V289.9Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M295.72,304.95V298.93H318.27V304.95Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M318.52,316.99V313.98H341.07V316.99Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M113.73,241.74V238.73H136.28V241.74Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(182, 232, 128); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M0,0Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(182, 232, 128); fill-opacity: 1;\"/></g><g class=\"point\"><path d=\"M159.26,274.85V271.84H181.81V274.85Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(182, 232, 128); fill-opacity: 1;\"/></g></g></g><g class=\"trace bars\" shape-rendering=\"crispEdges\" style=\"opacity: 1;\"><g class=\"points\"><g class=\"point\"><path d=\"M159.26,271.84V268.83H181.81V271.84Z\" style=\"vector-effect: non-scaling-stroke; opacity: 1; stroke-width: 0px; fill: rgb(255, 151, 255); fill-opacity: 1;\"/></g></g></g></g></g><g class=\"overplot\"/><path class=\"xlines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><path class=\"ylines-above crisp\" d=\"M0,0\" style=\"fill: none;\"/><g class=\"overlines-above\"/><g class=\"xaxislayer-above\"><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" transform=\"translate(104.6,0)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">2022</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(195.54000000000002,0)\">2024</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(286.6,0)\">2026</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(377.53,0)\">2028</text></g><g class=\"xtick\"><text text-anchor=\"middle\" x=\"0\" y=\"433\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(468.59,0)\">2030</text></g></g><g class=\"yaxislayer-above\"><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" transform=\"translate(0,420)\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\">0</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,359.8)\">20</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,299.6)\">40</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,239.41)\">60</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,179.20999999999998)\">80</text></g><g class=\"ytick\"><text text-anchor=\"end\" x=\"79\" y=\"4.199999999999999\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre; opacity: 1;\" transform=\"translate(0,119.01)\">100</text></g></g><g class=\"overaxes-above\"/></g></g><g class=\"polarlayer\"/><g class=\"smithlayer\"/><g class=\"ternarylayer\"/><g class=\"geolayer\"/><g class=\"funnelarealayer\"/><g class=\"pielayer\"/><g class=\"iciclelayer\"/><g class=\"treemaplayer\"/><g class=\"sunburstlayer\"/><g class=\"glimages\"/><defs id=\"topdefs-b3e781\"><g class=\"clips\"/><clipPath id=\"legendb3e781\"><rect width=\"167\" height=\"200\" x=\"0\" y=\"0\"/></clipPath></defs><g class=\"layer-above\"><g class=\"imagelayer\"/><g class=\"shapelayer\"/></g><g class=\"infolayer\"><g class=\"legend\" pointer-events=\"all\" transform=\"translate(520.64,100)\"><rect class=\"bg\" shape-rendering=\"crispEdges\" width=\"167\" height=\"200\" x=\"0\" y=\"0\" style=\"stroke: rgb(68, 68, 68); stroke-opacity: 1; fill: rgb(255, 255, 255); fill-opacity: 1; stroke-width: 0px;\"/><g class=\"scrollbox\" transform=\"\" clip-path=\"url(#legendb3e781)\"><text class=\"legendtitletext\" text-anchor=\"start\" x=\"2\" y=\"18.2\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Generation Type</text><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,32.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Solar</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(99, 110, 250); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,51.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">DC Transmission</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(239, 85, 59); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,70.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Dual Fuel</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(0, 204, 150); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,89.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Wind</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(171, 99, 250); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,108.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">AC Transmission</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(255, 161, 90); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,127.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Energy Storage</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(25, 211, 243); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,146.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Load</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(255, 102, 146); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,165.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Combined Cycle</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(182, 232, 128); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g><g class=\"groups\" transform=\"\"><g class=\"traces\" transform=\"translate(0,184.7)\" style=\"opacity: 1;\"><text class=\"legendtext\" text-anchor=\"start\" x=\"40\" y=\"4.680000000000001\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 12px; fill: rgb(42, 63, 95); fill-opacity: 1; white-space: pre;\">Combustion Turbine</text><g class=\"layers\" style=\"opacity: 1;\"><g class=\"legendfill\"/><g class=\"legendlines\"/><g class=\"legendsymbols\"><g class=\"legendpoints\"><path class=\"legendundefined\" d=\"M6,6H-6V-6H6Z\" transform=\"translate(20,0)\" style=\"stroke-width: 0px; fill: rgb(255, 151, 255); fill-opacity: 1;\"/></g></g></g><rect class=\"legendtoggle\" x=\"0\" y=\"-9.5\" width=\"161.40625\" height=\"19\" style=\"fill: rgb(0, 0, 0); fill-opacity: 0;\"/></g></g></g><rect class=\"scrollbar\" rx=\"20\" ry=\"3\" width=\"0\" height=\"0\" x=\"0\" y=\"0\" style=\"fill: rgb(128, 139, 164); fill-opacity: 1;\"/></g><g class=\"g-gtitle\"><text class=\"gtitle\" x=\"35\" y=\"50\" text-anchor=\"start\" dy=\"0em\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 17px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Proposed Completion Date - NYISO</text></g><g class=\"g-xtitle\"><text class=\"xtitle\" x=\"296\" y=\"460.3\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">Proposed Completion Date</text></g><g class=\"g-ytitle\"><text class=\"ytitle\" transform=\"rotate(-90,31.309375000000003,260)\" x=\"31.309375000000003\" y=\"260\" text-anchor=\"middle\" style=\"font-family: 'Open Sans', verdana, arial, sans-serif; font-size: 14px; fill: rgb(42, 63, 95); opacity: 1; font-weight: normal; white-space: pre;\">count</text></g></g></svg>"
+          },
+          "metadata": {},
+          "output_type": "display_data"
+        }
+      ],
+      "source": [
+        "fig = px.histogram(active, x=\"Proposed Completion Date\", title=\"Proposed Completion Date - NYISO\", color=\"Generation Type\")\n",
+        "fig.show('svg')"
+      ]
+    },
+    {
+      "cell_type": "markdown",
+      "id": "e6e24a54",
+      "metadata": {},
+      "source": [
+        "## Get Interconnection Queue Data from All ISOs"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 24,
+      "id": "6b124082",
+      "metadata": {},
+      "outputs": [
+        {
+          "name": "stderr",
+          "output_type": "stream",
+          "text": [
+            "100%|██████████| 7/7 [00:21<00:00,  3.01s/it]\n"
+          ]
+        },
+        {
+          "data": {
+            "text/html": [
+              "<div>\n",
+              "<style scoped>\n",
+              "    .dataframe tbody tr th:only-of-type {\n",
+              "        vertical-align: middle;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe tbody tr th {\n",
+              "        vertical-align: top;\n",
+              "    }\n",
+              "\n",
+              "    .dataframe thead th {\n",
+              "        text-align: right;\n",
+              "    }\n",
+              "</style>\n",
+              "<table border=\"1\" class=\"dataframe\">\n",
+              "  <thead>\n",
+              "    <tr style=\"text-align: right;\">\n",
+              "      <th></th>\n",
+              "      <th>ISO</th>\n",
+              "      <th>Queue ID</th>\n",
+              "      <th>Project Name</th>\n",
+              "      <th>Interconnecting Entity</th>\n",
+              "      <th>County</th>\n",
+              "      <th>State</th>\n",
+              "      <th>Interconnection Location</th>\n",
+              "      <th>Transmission Owner</th>\n",
+              "      <th>Generation Type</th>\n",
+              "      <th>Capacity (MW)</th>\n",
+              "      <th>Summer Capacity (MW)</th>\n",
+              "      <th>Winter Capacity (MW)</th>\n",
+              "      <th>Queue Date</th>\n",
+              "      <th>Status</th>\n",
+              "      <th>Proposed Completion Date</th>\n",
+              "      <th>Withdrawn Date</th>\n",
+              "      <th>Withdrawal Comment</th>\n",
+              "      <th>Actual Completion Date</th>\n",
+              "    </tr>\n",
+              "  </thead>\n",
+              "  <tbody>\n",
+              "    <tr>\n",
+              "      <th>0</th>\n",
+              "      <td>Midcontinent ISO</td>\n",
+              "      <td>E002</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Pointe Coupee</td>\n",
+              "      <td>LA</td>\n",
+              "      <td>500  kV switchyard at Big Cajon II</td>\n",
+              "      <td>Entergy</td>\n",
+              "      <td>Gas</td>\n",
+              "      <td>15.000000</td>\n",
+              "      <td>15.0</td>\n",
+              "      <td>15.0</td>\n",
+              "      <td>2013-09-13T04:00:00Z</td>\n",
+              "      <td>Done</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>1</th>\n",
+              "      <td>Midcontinent ISO</td>\n",
+              "      <td>E291</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td></td>\n",
+              "      <td>TX</td>\n",
+              "      <td>Rich 138 kV substation</td>\n",
+              "      <td>Entergy</td>\n",
+              "      <td>Hydro</td>\n",
+              "      <td>27.000000</td>\n",
+              "      <td>27.0</td>\n",
+              "      <td>27.0</td>\n",
+              "      <td>2012-05-15T04:00:00Z</td>\n",
+              "      <td>Done</td>\n",
+              "      <td>2016-01-31T05:00:00Z</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>2</th>\n",
+              "      <td>Midcontinent ISO</td>\n",
+              "      <td>G001</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Brown County</td>\n",
+              "      <td>WI</td>\n",
+              "      <td>Unknown</td>\n",
+              "      <td>American Transmission Co. LLC</td>\n",
+              "      <td></td>\n",
+              "      <td>255.000000</td>\n",
+              "      <td>255.0</td>\n",
+              "      <td>255.0</td>\n",
+              "      <td>1995-11-08T05:00:00Z</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2014-11-17T05:00:00Z</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>3</th>\n",
+              "      <td>Midcontinent ISO</td>\n",
+              "      <td>G002</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Trimble County</td>\n",
+              "      <td>KY</td>\n",
+              "      <td>Unknown</td>\n",
+              "      <td>LG&amp;E and KU Services Company as agent for Loui...</td>\n",
+              "      <td>Coal</td>\n",
+              "      <td>174.000000</td>\n",
+              "      <td>174.0</td>\n",
+              "      <td>174.0</td>\n",
+              "      <td>1998-12-01T05:00:00Z</td>\n",
+              "      <td>Done</td>\n",
+              "      <td>2016-01-01T05:00:00Z</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>4</th>\n",
+              "      <td>Midcontinent ISO</td>\n",
+              "      <td>G003</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Trimble County</td>\n",
+              "      <td>KY</td>\n",
+              "      <td>Unknown</td>\n",
+              "      <td>LG&amp;E and KU Services Company as agent for Loui...</td>\n",
+              "      <td>Coal</td>\n",
+              "      <td>174.000000</td>\n",
+              "      <td>174.0</td>\n",
+              "      <td>174.0</td>\n",
+              "      <td>1998-12-01T05:00:00Z</td>\n",
+              "      <td>Done</td>\n",
+              "      <td>2004-01-01T05:00:00Z</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>...</th>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "      <td>...</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>19557</th>\n",
+              "      <td>ISO New England</td>\n",
+              "      <td>1308</td>\n",
+              "      <td>Uxbridge Substation – NG Hopedale West Group S...</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Worcester</td>\n",
+              "      <td>MA</td>\n",
+              "      <td>NG Feeder 321W6, Uxbridge T2</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>BAT</td>\n",
+              "      <td>6.994000</td>\n",
+              "      <td>6.994</td>\n",
+              "      <td>6.994</td>\n",
+              "      <td>2022-09-09 00:00:00</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2024-11-15 00:00:00</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>19558</th>\n",
+              "      <td>ISO New England</td>\n",
+              "      <td>1310</td>\n",
+              "      <td>Battery Storage</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Berkshire</td>\n",
+              "      <td>MA</td>\n",
+              "      <td>115 kV Transmission line (1211 - Present betwe...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>BAT</td>\n",
+              "      <td>118.750000</td>\n",
+              "      <td>118.75</td>\n",
+              "      <td>118.75</td>\n",
+              "      <td>2022-09-22 00:00:00</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2025-09-30 00:00:00</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>19559</th>\n",
+              "      <td>ISO New England</td>\n",
+              "      <td>1314</td>\n",
+              "      <td>Offshore Wind</td>\n",
+              "      <td>None</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>MA</td>\n",
+              "      <td>Eversource 115kV Acushnet, lines 112/114</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>WND</td>\n",
+              "      <td>470.000000</td>\n",
+              "      <td>470.0</td>\n",
+              "      <td>470.0</td>\n",
+              "      <td>2022-09-26 00:00:00</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2029-09-01 00:00:00</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>19560</th>\n",
+              "      <td>ISO New England</td>\n",
+              "      <td>1315</td>\n",
+              "      <td>Battery Storage</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Windham</td>\n",
+              "      <td>CT</td>\n",
+              "      <td>Eversource Killingly Substation,115kV BUS, Tra...</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>BAT</td>\n",
+              "      <td>106.970001</td>\n",
+              "      <td>106.970001</td>\n",
+              "      <td>106.970001</td>\n",
+              "      <td>2022-09-28 00:00:00</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2026-06-09 00:00:00</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "    <tr>\n",
+              "      <th>19561</th>\n",
+              "      <td>ISO New England</td>\n",
+              "      <td>1316</td>\n",
+              "      <td>Solar plus Battery</td>\n",
+              "      <td>None</td>\n",
+              "      <td>Cheshire</td>\n",
+              "      <td>NH</td>\n",
+              "      <td>Eversource 115kV line L163</td>\n",
+              "      <td>NaN</td>\n",
+              "      <td>SUN BAT</td>\n",
+              "      <td>102.000000</td>\n",
+              "      <td>102.0</td>\n",
+              "      <td>102.0</td>\n",
+              "      <td>2022-09-30 00:00:00</td>\n",
+              "      <td>Withdrawn</td>\n",
+              "      <td>2027-10-28 00:00:00</td>\n",
+              "      <td>NaT</td>\n",
+              "      <td>None</td>\n",
+              "      <td>None</td>\n",
+              "    </tr>\n",
+              "  </tbody>\n",
+              "</table>\n",
+              "<p>19562 rows × 18 columns</p>\n",
+              "</div>"
+            ],
+            "text/plain": [
+              "                    ISO Queue ID  \\\n",
+              "0      Midcontinent ISO     E002   \n",
+              "1      Midcontinent ISO     E291   \n",
+              "2      Midcontinent ISO     G001   \n",
+              "3      Midcontinent ISO     G002   \n",
+              "4      Midcontinent ISO     G003   \n",
+              "...                 ...      ...   \n",
+              "19557   ISO New England     1308   \n",
+              "19558   ISO New England     1310   \n",
+              "19559   ISO New England     1314   \n",
+              "19560   ISO New England     1315   \n",
+              "19561   ISO New England     1316   \n",
+              "\n",
+              "                                            Project Name  \\\n",
+              "0                                                   None   \n",
+              "1                                                   None   \n",
+              "2                                                   None   \n",
+              "3                                                   None   \n",
+              "4                                                   None   \n",
+              "...                                                  ...   \n",
+              "19557  Uxbridge Substation – NG Hopedale West Group S...   \n",
+              "19558                                    Battery Storage   \n",
+              "19559                                      Offshore Wind   \n",
+              "19560                                    Battery Storage   \n",
+              "19561                                 Solar plus Battery   \n",
+              "\n",
+              "      Interconnecting Entity          County State  \\\n",
+              "0                       None   Pointe Coupee    LA   \n",
+              "1                       None                    TX   \n",
+              "2                       None    Brown County    WI   \n",
+              "3                       None  Trimble County    KY   \n",
+              "4                       None  Trimble County    KY   \n",
+              "...                      ...             ...   ...   \n",
+              "19557                   None       Worcester    MA   \n",
+              "19558                   None       Berkshire    MA   \n",
+              "19559                   None             NaN    MA   \n",
+              "19560                   None         Windham    CT   \n",
+              "19561                   None        Cheshire    NH   \n",
+              "\n",
+              "                                Interconnection Location  \\\n",
+              "0                     500  kV switchyard at Big Cajon II   \n",
+              "1                                 Rich 138 kV substation   \n",
+              "2                                                Unknown   \n",
+              "3                                                Unknown   \n",
+              "4                                                Unknown   \n",
+              "...                                                  ...   \n",
+              "19557                       NG Feeder 321W6, Uxbridge T2   \n",
+              "19558  115 kV Transmission line (1211 - Present betwe...   \n",
+              "19559           Eversource 115kV Acushnet, lines 112/114   \n",
+              "19560  Eversource Killingly Substation,115kV BUS, Tra...   \n",
+              "19561                         Eversource 115kV line L163   \n",
+              "\n",
+              "                                      Transmission Owner Generation Type  \\\n",
+              "0                                                Entergy             Gas   \n",
+              "1                                                Entergy           Hydro   \n",
+              "2                          American Transmission Co. LLC                   \n",
+              "3      LG&E and KU Services Company as agent for Loui...            Coal   \n",
+              "4      LG&E and KU Services Company as agent for Loui...            Coal   \n",
+              "...                                                  ...             ...   \n",
+              "19557                                                NaN             BAT   \n",
+              "19558                                                NaN             BAT   \n",
+              "19559                                                NaN             WND   \n",
+              "19560                                                NaN             BAT   \n",
+              "19561                                                NaN         SUN BAT   \n",
+              "\n",
+              "       Capacity (MW) Summer Capacity (MW) Winter Capacity (MW)  \\\n",
+              "0          15.000000                 15.0                 15.0   \n",
+              "1          27.000000                 27.0                 27.0   \n",
+              "2         255.000000                255.0                255.0   \n",
+              "3         174.000000                174.0                174.0   \n",
+              "4         174.000000                174.0                174.0   \n",
+              "...              ...                  ...                  ...   \n",
+              "19557       6.994000                6.994                6.994   \n",
+              "19558     118.750000               118.75               118.75   \n",
+              "19559     470.000000                470.0                470.0   \n",
+              "19560     106.970001           106.970001           106.970001   \n",
+              "19561     102.000000                102.0                102.0   \n",
+              "\n",
+              "                 Queue Date     Status Proposed Completion Date  \\\n",
+              "0      2013-09-13T04:00:00Z       Done                     None   \n",
+              "1      2012-05-15T04:00:00Z       Done     2016-01-31T05:00:00Z   \n",
+              "2      1995-11-08T05:00:00Z  Withdrawn     2014-11-17T05:00:00Z   \n",
+              "3      1998-12-01T05:00:00Z       Done     2016-01-01T05:00:00Z   \n",
+              "4      1998-12-01T05:00:00Z       Done     2004-01-01T05:00:00Z   \n",
+              "...                     ...        ...                      ...   \n",
+              "19557   2022-09-09 00:00:00  Withdrawn      2024-11-15 00:00:00   \n",
+              "19558   2022-09-22 00:00:00  Withdrawn      2025-09-30 00:00:00   \n",
+              "19559   2022-09-26 00:00:00  Withdrawn      2029-09-01 00:00:00   \n",
+              "19560   2022-09-28 00:00:00  Withdrawn      2026-06-09 00:00:00   \n",
+              "19561   2022-09-30 00:00:00  Withdrawn      2027-10-28 00:00:00   \n",
+              "\n",
+              "      Withdrawn Date Withdrawal Comment Actual Completion Date  \n",
+              "0               None               None                   None  \n",
+              "1               None               None                   None  \n",
+              "2               None               None                   None  \n",
+              "3               None               None                   None  \n",
+              "4               None               None                   None  \n",
+              "...              ...                ...                    ...  \n",
+              "19557            NaT               None                   None  \n",
+              "19558            NaT               None                   None  \n",
+              "19559            NaT               None                   None  \n",
+              "19560            NaT               None                   None  \n",
+              "19561            NaT               None                   None  \n",
+              "\n",
+              "[19562 rows x 18 columns]"
+            ]
+          },
+          "execution_count": 24,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "all_queues = gridstatus.get_interconnection_queues()\n",
+        "all_queues"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": 25,
+      "id": "5c40fb33",
+      "metadata": {},
+      "outputs": [
+        {
+          "data": {
+            "text/plain": [
+              "Withdrawn                                    7405\n",
+              "Active                                       6431\n",
+              "WITHDRAWN                                    1481\n",
+              "In Service                                   1028\n",
+              "Completed                                     751\n",
+              "Done                                          746\n",
+              "ACTIVE                                        594\n",
+              "Engineering and Procurement                   301\n",
+              "Confirmed                                     223\n",
+              "COMPLETED                                     199\n",
+              "Retracted                                     131\n",
+              "Suspended                                      74\n",
+              "Under Construction                             58\n",
+              "Deactivated                                    54\n",
+              "Partially in Service - Under Construction      46\n",
+              "Annulled                                       24\n",
+              "Withdrawn - Pending Cure                        2\n",
+              "                                                1\n",
+              "Name: Status, dtype: int64"
+            ]
+          },
+          "execution_count": 25,
+          "metadata": {},
+          "output_type": "execute_result"
+        }
+      ],
+      "source": [
+        "all_queues[\"Status\"].value_counts()"
+      ]
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "id": "591e74d8",
+      "metadata": {},
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "id": "d587b345",
+      "metadata": {},
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "id": "b6c9e32d",
+      "metadata": {},
+      "outputs": [],
+      "source": []
+    },
+    {
+      "cell_type": "markdown",
+      "id": "55660a55",
+      "metadata": {},
+      "source": []
+    }
+  ],
+  "metadata": {
+    "kernelspec": {
+      "display_name": "Python 3.10.2 64-bit ('gridstatus')",
+      "language": "python",
+      "name": "python3"
+    },
+    "language_info": {
+      "codemirror_mode": {
+        "name": "ipython",
+        "version": 3
+      },
+      "file_extension": ".py",
+      "mimetype": "text/x-python",
+      "name": "python",
+      "nbconvert_exporter": "python",
+      "pygments_lexer": "ipython3",
+      "version": "3.10.2"
+    },
+    "vscode": {
+      "interpreter": {
+        "hash": "49f14642123d0cc1afa9fa45716ed5f1e915189c28b01efe02a8b7ec3c0a3fce"
+      }
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 5
+}
diff --git a/docs/Examples/index.md b/docs/Examples/index.md
index b0ce2fe0..78205c18 100644
--- a/docs/Examples/index.md
+++ b/docs/Examples/index.md
@@ -6,5 +6,6 @@ We'd love to answer any usage or data access questions! Please let us know if yo
 
 Downloading CAISO Data.ipynb
 Fuel Mix Over Time - NYISO.ipynb
+Interconnection Queues.ipynb
 PJM LMP Data.ipynb
 ```
diff --git a/docs/index.md b/docs/index.md
index 784fad11..bf21241b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,5 +1,5 @@
 ---
-title: ISODATA
+title: Grid Status
 file_format: mystnb
 mystnb:
   execution_timeout: 600
@@ -108,6 +108,7 @@ The best part is these APIs work in the same way across all the supported ISOs!
 installation
 availability
 lmp
+interconnection_queues
 Examples/index
 
 ```
diff --git a/docs/interconnection_queues.md b/docs/interconnection_queues.md
new file mode 100644
index 00000000..c92772d6
--- /dev/null
+++ b/docs/interconnection_queues.md
@@ -0,0 +1,66 @@
+---
+file_format: mystnb
+kernelspec:
+  name: python3
+---
+
+# Interconnection Queues
+
+All ISOs support retrieving interconnection queues with `iso.get_interconnection_queue` methods.
+
+Each of the ISOs report slightly differently fields for their queues, so a best effort was made to standardize column names. When a column couldn't be standardized, it is appended to end of the returned dataframe.
+
+Below you can see preview of each of ISOs interconnection queues
+
+## NYISO
+
+```{code-cell}
+import gridstatus
+nyiso = gridstatus.NYISO()
+nyiso.get_interconnection_queue()
+```
+
+## CAISO
+```{code-cell}
+caiso = gridstatus.CAISO()
+caiso.get_interconnection_queue()
+```
+
+## SPP
+```{code-cell}
+spp = gridstatus.SPP()
+spp.get_interconnection_queue()
+```
+
+
+## Ercot
+```{code-cell}
+:tags: [skip-execution]
+
+ercot = gridstatus.Ercot()
+ercot.get_interconnection_queue()
+```
+
+## MISO
+```{code-cell}
+:tags: [skip-execution]
+
+miso = gridstatus.MISO()
+miso.get_interconnection_queue()
+```
+
+## ISONE
+```{code-cell}
+:tags: [skip-execution]
+
+isone = gridstatus.ISONE()
+isone.get_interconnection_queue()
+```
+
+## PJM
+```{code-cell}
+:tags: [skip-execution]
+
+pjm = gridstatus.PJM()
+pjm.get_interconnection_queue()
+```
\ No newline at end of file
diff --git a/gridstatus/__init__.py b/gridstatus/__init__.py
index 46f5d4ac..735905df 100644
--- a/gridstatus/__init__.py
+++ b/gridstatus/__init__.py
@@ -1,6 +1,11 @@
 from gridstatus.version import __version__
 
-from gridstatus.utils import list_isos, get_iso, make_availability_table
+from gridstatus.utils import (
+    list_isos,
+    get_iso,
+    make_availability_table,
+    get_interconnection_queues,
+)
 from gridstatus import tests
 import gridstatus.base
 import gridstatus.decorators
@@ -31,4 +36,5 @@
     "Markets",
     "get_iso",
     "list_isos",
+    "get_interconnection_queues",
 ]
diff --git a/gridstatus/base.py b/gridstatus/base.py
index bc86788a..b33c53bf 100644
--- a/gridstatus/base.py
+++ b/gridstatus/base.py
@@ -30,6 +30,35 @@ def __contains__(cls, item):
         return True
 
 
+class InterconnectionQueueStatus(Enum):
+    """Interconnection queue types"""
+
+    ACTIVE = "Active"
+    WITHDRAWN = "Withdrawn"
+    COMPLETED = "Completed"
+
+
+_interconnection_columns = [
+    "Queue ID",
+    "Project Name",
+    "Interconnecting Entity",
+    "County",
+    "State",
+    "Interconnection Location",
+    "Transmission Owner",
+    "Generation Type",
+    "Capacity (MW)",
+    "Summer Capacity (MW)",
+    "Winter Capacity (MW)",
+    "Queue Date",
+    "Status",
+    "Proposed Completion Date",
+    "Withdrawn Date",
+    "Withdrawal Comment",
+    "Actual Completion Date",
+]
+
+
 class ISOBase:
     markets = []
     status_homepage = None
@@ -78,6 +107,9 @@ def get_supply(self, date, end=None, verbose=False):
     def get_storage(self, date, end=None, verbose=False):
         raise NotImplementedError()
 
+    def get_interconnection_queue(self):
+        raise NotImplementedError()
+
     def _latest_lmp_from_today(self, market, locations, **kwargs):
         lmp_df = self.get_lmp(
             date="today", market=market, locations=locations, **kwargs
diff --git a/gridstatus/caiso.py b/gridstatus/caiso.py
index 65951e66..448786e7 100644
--- a/gridstatus/caiso.py
+++ b/gridstatus/caiso.py
@@ -24,6 +24,7 @@ class CAISO(ISOBase):
     default_timezone = "US/Pacific"
 
     status_homepage = "https://www.caiso.com/TodaysOutlook/Pages/default.aspx"
+    interconnection_homepage = "https://rimspub.caiso.com/rimsui/logon.do"
 
     # Markets PRC_RTPD_LMP, PRC_HASP_LMP, PRC_LMP
     markets = [
@@ -424,6 +425,99 @@ def get_ghg_allowance(
         time.sleep(sleep)
         return df
 
+    def get_interconnection_queue(self, verbose=False):
+        url = "http://www.caiso.com/PublishedDocuments/PublicQueueReport.xlsx"
+
+        if verbose:
+            print("Downloading interconnection queue from {}".format(url))
+
+        sheets = pd.read_excel(url, skiprows=3, sheet_name=None)
+
+        # remove legend at the bottom
+        queued_projects = sheets["Grid GenerationQueue"][:-8]
+        completed_projects = sheets["Completed Generation Projects"][:-2]
+        withdrawn_projects = sheets["Withdrawn Generation Projects"][:-2].rename(
+            columns={"Project Name - Confidential": "Project Name"},
+        )
+
+        queue = pd.concat(
+            [queued_projects, completed_projects, withdrawn_projects],
+        )
+
+        queue = queue.rename(
+            columns={
+                "Interconnection Request\nReceive Date": "Interconnection Request Receive Date",
+                "Actual\nOn-line Date": "Actual On-line Date",
+                "Current\nOn-line Date": "Current On-line Date",
+                "Interconnection Agreement \nStatus": "Interconnection Agreement Status",
+                "Study\nProcess": "Study Process",
+                "Proposed\nOn-line Date\n(as filed with IR)": "Proposed On-line Date (as filed with IR)",
+                "System Impact Study or \nPhase I Cluster Study": "System Impact Study or Phase I Cluster Study",
+                "Facilities Study (FAS) or \nPhase II Cluster Study": "Facilities Study (FAS) or Phase II Cluster Study",
+                "Optional Study\n(OS)": "Optional Study (OS)",
+            },
+        )
+
+        type_columns = ["Type-1", "Type-2", "Type-3"]
+        queue["Generation Type"] = queue[type_columns].apply(
+            lambda x: " + ".join(x.dropna()),
+            axis=1,
+        )
+
+        rename = {
+            "Queue Position": "Queue ID",
+            "Project Name": "Project Name",
+            "Generation Type": "Generation Type",
+            "Queue Date": "Queue Date",
+            "County": "County",
+            "State": "State",
+            "Application Status": "Status",
+            "Current On-line Date": "Proposed Completion Date",
+            "Actual On-line Date": "Actual Completion Date",
+            "Reason for Withdrawal": "Withdrawal Comment",
+            "Withdrawn Date": "Withdrawn Date",
+            "Utility": "Transmission Owner",
+            "Station or Transmission Line": "Interconnection Location",
+            "Net MWs to Grid": "Capacity (MW)",
+        }
+
+        extra_columns = [
+            "Type-1",
+            "Type-2",
+            "Type-3",
+            "Fuel-1",
+            "Fuel-2",
+            "Fuel-3",
+            "MW-1",
+            "MW-2",
+            "MW-3",
+            "Interconnection Request Receive Date",
+            "Interconnection Agreement Status",
+            "Study Process",
+            "Proposed On-line Date (as filed with IR)",
+            "System Impact Study or Phase I Cluster Study",
+            "Facilities Study (FAS) or Phase II Cluster Study",
+            "Optional Study (OS)",
+            "Full Capacity, Partial or Energy Only (FC/P/EO)",
+            "Off-Peak Deliverability and Economic Only",
+            "Feasibility Study or Supplemental Review",
+        ]
+
+        missing = [
+            "Interconnecting Entity",
+            "Summer Capacity (MW)",
+            "Winter Capacity (MW)",
+        ]
+
+        queue = utils.format_interconnection_df(
+            queue=queue,
+            rename=rename,
+            extra=extra_columns,
+            missing=missing,
+        )
+
+        return queue
+
 
 def _make_timestamp(time_str, today, timezone="US/Pacific"):
     hour, minute = map(int, time_str.split(":"))
@@ -508,4 +602,4 @@ def _caiso_handle_start_end(date, end):
 
     print("asd")
     iso = gridstatus.CAISO()
-    iso.get_load(start="1/1/2018", end="1/1/2019", verbose=True)
+    iso.get_interconnection_queue()
diff --git a/gridstatus/ercot.py b/gridstatus/ercot.py
index 65fb0088..bca37279 100644
--- a/gridstatus/ercot.py
+++ b/gridstatus/ercot.py
@@ -1,7 +1,16 @@
+import pdb
+import queue
+
 import pandas as pd
 
 from gridstatus import utils
-from gridstatus.base import FuelMix, GridStatus, ISOBase, NotSupported
+from gridstatus.base import (
+    FuelMix,
+    GridStatus,
+    InterconnectionQueueStatus,
+    ISOBase,
+    NotSupported,
+)
 
 
 class Ercot(ISOBase):
@@ -12,6 +21,9 @@ class Ercot(ISOBase):
     default_timezone = "US/Central"
 
     status_homepage = "https://www.ercot.com/gridmktinfo/dashboards/gridconditions"
+    interconnection_homepage = (
+        "http://mis.ercot.com/misapp/GetReports.do?reportTypeId=15933"
+    )
 
     BASE = "https://www.ercot.com/api/1/services/read/dashboards"
 
@@ -184,6 +196,141 @@ def get_rtm_spp(self, year):
         df = pd.concat(all_sheets.values())
         return df
 
+    def get_interconnection_queue(self, verbose=False):
+        """Get interconnection queue for ERCOT
+
+        Monthly historical data available here: http://mis.ercot.com/misapp/GetReports.do?reportTypeId=15933&reportTitle=GIS%20Report&showHTMLView=&mimicKey
+        """
+
+        report_type_id = 15933
+        doc_url, date = self._get_document(
+            report_type_id=report_type_id,
+            constructed_name_contains="GIS_Report",
+        )
+
+        # TODO other sheets for small projects, inactive, and cancelled project
+        # TODO see if this data matches up with summaries in excel file
+        # TODO historical data available as well
+
+        if verbose:
+            print("Downloading interconnection queue from: ", doc_url)
+
+        # skip rows and handle header
+        queue = pd.read_excel(
+            doc_url,
+            sheet_name="Project Details - Large Gen",
+            skiprows=30,
+        ).iloc[4:]
+
+        queue["State"] = "Texas"
+        queue["Queue Date"] = queue["Screening Study Started"]
+
+        fuel_type_map = {
+            "BIO": "Biomass",
+            "COA": "Coal",
+            "GAS": "Gas",
+            "GEO": "Geothermal",
+            "HYD": "Hydrogen",
+            "NUC": "Nuclear",
+            "OIL": "Fuel Oil",
+            "OTH": "Other",
+            "PET": "Petcoke",
+            "SOL": "Solar",
+            "WAT": "Water",
+            "WIN": "Wind",
+        }
+
+        technology_type_map = {
+            "BA": "Battery Energy Storage",
+            "CC": "Combined-Cycle",
+            "CE": "Compressed Air Energy Storage",
+            "CP": "Concentrated Solar Power",
+            "EN": "Energy Storage",
+            "FC": "Fuel Cell",
+            "GT": "Combustion (gas) Turbine, but not part of a Combined-Cycle",
+            "HY": "Hydroelectric Turbine",
+            "IC": "Internal Combustion Engine, eg. Reciprocating",
+            "OT": "Other",
+            "PV": "Photovoltaic Solar",
+            "ST": "Steam Turbine other than Combined-Cycle",
+            "WT": "Wind Turbine",
+        }
+
+        queue["Fuel"] = queue["Fuel"].map(fuel_type_map)
+        queue["Technology"] = queue["Technology"].map(technology_type_map)
+
+        queue["Generation Type"] = queue["Fuel"] + " - " + queue["Technology"]
+
+        queue["Status"] = (
+            queue["IA Signed"]
+            .isna()
+            .map(
+                {
+                    True: InterconnectionQueueStatus.ACTIVE.value,
+                    False: InterconnectionQueueStatus.COMPLETED.value,
+                },
+            )
+        )
+
+        queue["Actual Completion Date"] = queue["Approved for Synchronization"]
+
+        rename = {
+            "INR": "Queue ID",
+            "Project Name": "Project Name",
+            "Interconnecting Entity": "Interconnecting Entity",
+            "Projected COD": "Proposed Completion Date",
+            "POI Location": "Interconnection Location",
+            "County": "County",
+            "State": "State",
+            "Capacity (MW)": "Capacity (MW)",
+            "Queue Date": "Queue Date",
+            "Generation Type": "Generation Type",
+            "Actual Completion Date": "Actual Completion Date",
+            "Status": "Status",
+        }
+
+        # todo: there are a few columns being parsed as "unamed" that aren't being included but should
+        extra_columns = [
+            "Fuel",
+            "Technology",
+            "GIM Study Phase",
+            "Screening Study Started",
+            "Screening Study Complete",
+            "FIS Requested",
+            "FIS Approved",
+            "Economic Study Required",
+            "IA Signed",
+            "Air Permit",
+            "GHG Permit",
+            "Water Availability",
+            "Meets Planning",
+            "Meets All Planning",
+            "CDR Reporting Zone",
+            # "Construction Start", # all null
+            # "Construction End", # all null
+            "Approved for Energization",
+            "Approved for Synchronization",
+            "Comment",
+        ]
+
+        missing = [
+            # todo the actual complettion date can be calculated by looking at status and other date columns
+            "Withdrawal Comment",
+            "Transmission Owner",
+            "Summer Capacity (MW)",
+            "Winter Capacity (MW)",
+            "Withdrawn Date",
+        ]
+
+        queue = utils.format_interconnection_df(
+            queue=queue,
+            rename=rename,
+            extra=extra_columns,
+            missing=missing,
+        )
+
+        return queue
+
     def _get_document(
         self,
         report_type_id,
diff --git a/gridstatus/isone.py b/gridstatus/isone.py
index b191401d..4e43204b 100644
--- a/gridstatus/isone.py
+++ b/gridstatus/isone.py
@@ -9,7 +9,14 @@
 
 import gridstatus
 from gridstatus import utils
-from gridstatus.base import FuelMix, GridStatus, ISOBase, Markets, NotSupported
+from gridstatus.base import (
+    FuelMix,
+    GridStatus,
+    InterconnectionQueueStatus,
+    ISOBase,
+    Markets,
+    NotSupported,
+)
 from gridstatus.decorators import support_date_range
 
 
@@ -21,6 +28,7 @@ class ISONE(ISOBase):
     default_timezone = "US/Eastern"
 
     status_homepage = "https://www.iso-ne.com/markets-operations/system-forecast-status/current-system-status"
+    interconnection_homepage = "https://irtt.iso-ne.com/reports/external"
 
     markets = [
         Markets.REAL_TIME_5_MIN,
@@ -408,6 +416,93 @@ def _process_lmp(self, data, market, timezone, locations, include_id=False):
         data = utils.filter_lmp_locations(data, locations)
         return data
 
+    def get_interconnection_queue(self, verbose=False):
+        """Get the interconnection queue. Contains active and withdrawm applications.
+
+        More information: https://www.iso-ne.com/system-planning/interconnection-service/interconnection-request-queue/
+
+
+        Returns:
+            pd.DataFrame -- interconnection queue
+
+        """
+        # not sure what the reportdate value is. it is hardcode into the javascript to add and doesnt work without
+        url = "https://irtt.iso-ne.com/reports/exportpublicqueue?ReportDate=638005248000000000&Status=&Jurisdiction="
+
+        if verbose:
+            print("Loading interconnection queue from {}".format(url))
+
+        r = requests.get(url)
+        queue = pd.read_excel(io.BytesIO(r.content), skiprows=4)
+
+        # only keep generator interconnection requests
+        queue = queue[queue["Type"] == "G"]
+
+        queue["Status"] = (
+            queue["W/ D Date"]
+            .isna()
+            .map(
+                {
+                    True: InterconnectionQueueStatus.WITHDRAWN.value,
+                    False: InterconnectionQueueStatus.ACTIVE.value,
+                },
+            )
+        )
+
+        queue["Proposed Completion Date"] = queue["Sync Date"]
+
+        rename = {
+            "Position": "Queue ID",
+            "Alternative Name": "Project Name",
+            "Fuel Type": "Generation Type",
+            "Requested": "Queue Date",
+            "County": "County",
+            "State": "State",
+            "Status": "Status",
+            "Interconnection Location": "Interconnection Location",
+            "W/ D Date": "Withdrawn Date",
+            "Net MW": "Capacity (MW)",
+            "Summer MW": "Summer Capacity (MW)",
+            "Winter MW": "Winter Capacity (MW)",
+            "TO Report": "Transmission Owner",
+        }
+
+        # todo: there are a few columns being parsed as "unamed" that aren't being included but should
+        extra_columns = [
+            "Updated",
+            "Unit",
+            "Op Date",
+            "Sync Date",
+            "Serv",
+            "SIS Complete",
+            "I39",
+            "Dev",
+            "Zone",
+            "FS",
+            "SIS",
+            "OS",
+            "FAC",
+            "IA",
+            "Project Status",
+        ]
+
+        missing = [
+            "Interconnecting Entity",
+            "Actual Completion Date",  # because there are only activate and withdrawn projects
+            "Withdrawal Comment",
+        ]
+
+        queue = utils.format_interconnection_df(
+            queue=queue,
+            rename=rename,
+            extra=extra_columns,
+            missing=missing,
+        )
+
+        queue = queue.sort_values("Queue ID").reset_index(drop=True)
+
+        return queue
+
 
 def _make_request(url, skiprows):
     with requests.Session() as s:
diff --git a/gridstatus/miso.py b/gridstatus/miso.py
index cdfc0a3e..e7599f34 100644
--- a/gridstatus/miso.py
+++ b/gridstatus/miso.py
@@ -1,4 +1,7 @@
+import json
+
 import pandas as pd
+import requests
 from pandas import Timestamp
 
 from gridstatus import utils
@@ -10,6 +13,10 @@ class MISO(ISOBase):
 
     BASE = "https://api.misoenergy.org/MISORTWDDataBroker/DataBrokerServices.asmx"
 
+    interconnection_homepage = (
+        "https://www.misoenergy.org/planning/generator-interconnection/GI_Queue/"
+    )
+
     name = "Midcontinent ISO"
     iso_id = "miso"
     # says EST in time stamp but EDT is currently in affect. EST == CDT, so using central time for now
@@ -183,6 +190,87 @@ def get_lmp(self, date, market: str, locations: list = None):
 
         return data
 
+    def get_interconnection_queue(self, verbose=False):
+        """Get the interconnection queue
+
+        Returns:
+            pd.DataFrame -- Interconnection queue
+        """
+        url = "https://www.misoenergy.org/api/giqueue/getprojects"
+
+        if verbose:
+            print("Downloading interconnection queue from {}".format(url))
+
+        json_str = requests.get(url).text
+        data = json.loads(json_str)
+        # todo there are also study documents available:  https://www.misoenergy.org/planning/generator-interconnection/GI_Queue/gi-interactive-queue/
+        # there is also a map that plots the locations of these projects:
+        queue = pd.DataFrame(data)
+
+        queue = queue.rename(
+            columns={
+                "postGIAStatus": "Post Generator Interconnection Agreement Status",
+                "doneDate": "Interconnection Approval Date",
+            },
+        )
+
+        queue["Capacity (MW)"] = queue[
+            [
+                "summerNetMW",
+                "winterNetMW",
+            ]
+        ].max(axis=1)
+
+        rename = {
+            "projectNumber": "Queue ID",
+            "county": "County",
+            "state": "State",
+            "transmissionOwner": "Transmission Owner",
+            "poiName": "Interconnection Location",
+            "queueDate": "Queue Date",
+            "withdrawnDate": "Withdrawn Date",
+            "applicationStatus": "Status",
+            "Capacity (MW)": "Capacity (MW)",
+            "summerNetMW": "Summer Capacity (MW)",
+            "winterNetMW": "Winter Capacity (MW)",
+            "negInService": "Proposed Completion Date",
+            "fuelType": "Generation Type",
+        }
+
+        extra_columns = [
+            "facilityType",
+            "Post Generator Interconnection Agreement Status",
+            "Interconnection Approval Date",
+            "inService",
+            "giaToExec",
+            "studyCycle",
+            "studyGroup",
+            "studyPhase",
+            "svcType",
+            "dp1ErisMw",
+            "dp1NrisMw",
+            "dp2ErisMw",
+            "dp2NrisMw",
+            "sisPhase1",
+        ]
+
+        missing = [
+            # todo the actual complettion date can be calculated by looking at status and other date columns
+            "Actual Completion Date",
+            "Withdrawal Comment",
+            "Project Name",
+            "Interconnecting Entity",
+        ]
+
+        queue = utils.format_interconnection_df(
+            queue=queue,
+            rename=rename,
+            extra=extra_columns,
+            missing=missing,
+        )
+
+        return queue
+
 
 """
 Notes
diff --git a/gridstatus/nyiso.py b/gridstatus/nyiso.py
index 1e4f2168..1295459e 100644
--- a/gridstatus/nyiso.py
+++ b/gridstatus/nyiso.py
@@ -6,7 +6,14 @@
 
 import gridstatus
 from gridstatus import utils
-from gridstatus.base import FuelMix, GridStatus, ISOBase, Markets
+from gridstatus.base import (
+    FuelMix,
+    GridStatus,
+    InterconnectionQueueStatus,
+    ISOBase,
+    Markets,
+    _interconnection_columns,
+)
 from gridstatus.decorators import support_date_range
 
 ZONE = "zone"
@@ -22,6 +29,7 @@ class NYISO(ISOBase):
     default_timezone = "US/Eastern"
     markets = [Markets.REAL_TIME_5_MIN, Markets.DAY_AHEAD_HOURLY]
     status_homepage = "https://www.nyiso.com/system-conditions"
+    interconnection_homepage = "https://www.nyiso.com/interconnections"
 
     @support_date_range(frequency="MS")
     def get_status(self, date, end=None, verbose=False):
@@ -215,6 +223,155 @@ def get_lmp(
 
         return df
 
+    def get_interconnection_queue(self, verbose=False):
+        """Return NYISO interconnection queue
+
+        Additional Non-NYISO queue info: https://www3.dps.ny.gov/W/PSCWeb.nsf/All/286D2C179E9A5A8385257FBF003F1F7E?OpenDocument
+
+        Returns:
+            pd.DataFrame: Interconnection queue containing, active, withdrawn, and completed project
+
+        """
+
+        # 3 sheets - ['Interconnection Queue', 'Withdrawn', 'In Service']
+        # harded coded for now. perhaps this url can be parsed from the html here:
+        url = "https://www.nyiso.com/documents/20142/1407078/NYISO-Interconnection-Queue.xlsx"
+
+        if verbose:
+            print("Downloading interconnection queue from {}".format(url))
+
+        all_sheets = pd.read_excel(
+            url,
+            sheet_name=["Interconnection Queue", "Withdrawn"],
+        )
+
+        # Drop extra rows at bottom
+        active = (
+            all_sheets["Interconnection Queue"]
+            .dropna(
+                subset=["Queue Pos.", "Project Name"],
+            )
+            .copy()
+        )
+
+        active["Status"] = InterconnectionQueueStatus.ACTIVE.value
+
+        withdrawn = all_sheets["Withdrawn"]
+        withdrawn["Status"] = InterconnectionQueueStatus.WITHDRAWN.value
+        # assume it was withdrawn when last updated
+        withdrawn["Withdrawn Date"] = withdrawn["Last Update"]
+        withdrawn["Withdrawal Comment"] = None
+
+        # make completed look like the other two sheets
+        completed = pd.read_excel(url, sheet_name="In Service", header=[0, 1])
+        completed.insert(17, "Proposed Initial-Sync", None)
+        completed["Status"] = InterconnectionQueueStatus.COMPLETED.value
+        completed.columns = active.columns
+
+        # the spreadsheet doesnt have a date, so make it null
+        completed["Proposed  In-Service"] = None
+        completed["Proposed COD"] = None
+        # assume it was finished when last updated
+        completed["Actual Completion Date"] = completed["Last Update"]
+
+        queue = pd.concat([active, withdrawn, completed])
+
+        # fix extra space in column name
+        queue = queue.rename(columns={"Utility ": "Utility"})
+
+        queue["Type/ Fuel"] = queue["Type/ Fuel"].map(
+            {
+                "S": "Solar",
+                "ES": "Energy Storage",
+                "W": "Wind",
+                "AC": "AC Transmission",
+                "DC": "DC Transmission",
+                "CT": "Combustion Turbine",
+                "CC": "Combined Cycle",
+                "M": "Methane",
+                #    "CR": "",
+                "H": "Hydro",
+                "L": "Load",
+                "ST": "Steam Turbine",
+                "CC-NG": "Natural Gas",
+                "FC": "Fuel Cell",
+                "PS": "Pumped Storage",
+                "NU": "Nuclear",
+                "D": "Dual Fuel",
+                #    "C": "",
+                "NG": "Natural Gas",
+                "Wo": "Wood",
+                "F": "Flywheel",
+                #    "CW": "",
+                "CC-D": "Combined Cycle - Dual Fuel",
+                "SW": "=Solid Waste",
+                #    "CR=CSR - ES + Solar": "",
+                "CT-NG": "Combustion Turbine - Natural Gas",
+                "DC/AC": "DC/AC Transmission",
+                "CT-D": "Combustion Turbine - Dual Fuel",
+                "CS-NG": "Steam Turbine & Combustion Turbine-  Natural Gas",
+                "ST-NG": "Steam Turbine - Natural Gas",
+            },
+        )
+
+        queue["Capacity (MW)"] = (
+            queue[["SP (MW)", "WP (MW)"]]
+            .replace(
+                "TBD",
+                0,
+            )
+            .astype(float)
+            .max(axis=1)
+        )
+
+        queue["Date of IR"] = pd.to_datetime(active["Date of IR"])
+        queue["Proposed COD"] = pd.to_datetime(
+            active["Proposed COD"],
+            errors="coerce",
+        )
+        queue["Proposed  In-Service"] = pd.to_datetime(
+            active["Proposed  In-Service"],
+            errors="coerce",
+        )
+        queue["Proposed Initial-Sync"] = pd.to_datetime(
+            active["Proposed Initial-Sync"],
+            errors="coerce",
+        )
+
+        # TODO handle other 2 sheets
+        # TODO they publish past queues, but not sure what data is in them that is relevant
+
+        rename = {
+            "Queue Pos.": "Queue ID",
+            "Project Name": "Project Name",
+            "County": "County",
+            "State": "State",
+            "Owner/Developer": "Interconnecting Entity",
+            "Utility": "Transmission Owner",
+            "Interconnection Point": "Interconnection Location",
+            "Status": "Status",
+            "Date of IR": "Queue Date",
+            "Proposed COD": "Proposed Completion Date",
+            "Type/ Fuel": "Generation Type",
+            "Capacity (MW)": "Capacity (MW)",
+            "SP (MW)": "Summer Capacity (MW)",
+            "WP (MW)": "Winter Capacity (MW)",
+        }
+
+        extra_columns = [
+            "Proposed  In-Service",
+            "Proposed Initial-Sync",
+            "Last Update",
+            "Z",
+            "S",
+            "Availability of Studies",
+            "FS Complete/ SGIA Tender",
+        ]
+
+        queue = utils.format_interconnection_df(queue, rename, extra_columns)
+
+        return queue
+
     def get_generators(self, verbose=False):
         """Get a list of generators in NYISO
 
diff --git a/gridstatus/pjm.py b/gridstatus/pjm.py
index 73c05f98..f0208610 100644
--- a/gridstatus/pjm.py
+++ b/gridstatus/pjm.py
@@ -1,7 +1,9 @@
+import io
 import math
 import warnings
 
 import pandas as pd
+import requests
 import tqdm
 
 import gridstatus
@@ -21,6 +23,10 @@ class PJM(ISOBase):
     iso_id = "pjm"
     default_timezone = "US/Eastern"
 
+    interconnection_queue_homepage = (
+        "https://www.pjm.com/planning/services-requests/interconnection-queues.aspx"
+    )
+
     location_types = [
         "ZONE",
         "LOAD",
@@ -430,6 +436,72 @@ def _get_pjm_json(
 
         return df
 
+    def get_interconnection_queue(self):
+        r = requests.post(
+            "https://services.pjm.com/PJMPlanningApi/api/Queue/ExportToXls",
+            headers={
+                # unclear if this key changes. obtained from https://www.pjm.com/dist/interconnectionqueues.71b76ed30033b3ff06bd.js
+                "api-subscription-key": "E29477D0-70E0-4825-89B0-43F460BF9AB4",
+                "Host": "services.pjm.com",
+                "Origin": "https://www.pjm.com",
+                "Referer": "https://www.pjm.com/",
+            },
+        )
+        queue = pd.read_excel(io.BytesIO(r.content))
+
+        queue["Capacity (MW)"] = queue[["MFO", "MW In Service"]].min(axis=1)
+
+        rename = {
+            "Queue Number": "Queue ID",
+            "Name": "Project Name",
+            "County": "County",
+            "State": "State",
+            "Transmission Owner": "Transmission Owner",
+            "Queue Date": "Queue Date",
+            "Withdrawal Date": "Withdrawn Date",
+            "Withdrawn Remarks": "Withdrawal Comment",
+            "Status": "Status",
+            "Revised In Service Date": "Proposed Completion Date",
+            "Actual In Service Date": "Actual Completion Date",
+            "Fuel": "Generation Type",
+            "MW Capacity": "Summer Capacity (MW)",
+            "MW Energy": "Winter Capacity (MW)",
+        }
+
+        extra = [
+            "MW In Service",
+            "Commercial Name",
+            "Initial Study",
+            "Feasibility Study",
+            "Feasibility Study Status",
+            "System Impact Study",
+            "System Impact Study Status",
+            "Facilities Study",
+            "Facilities Study Status",
+            "Interim Interconnection Service Agreement",
+            "Interim/Interconnection Service Agreement Status",
+            "Wholesale Market Participation Agreement",
+            "Construction Service Agreement",
+            "Construction Service Agreement Status",
+            "Upgrade Construction Service Agreement",
+            "Upgrade Construction Service Agreement Status",
+            "Backfeed Date",
+            "Long-Term Firm Service Start Date",
+            "Long-Term Firm Service End Date",
+            "Test Energy Date",
+        ]
+
+        missing = ["Interconnecting Entity", "Interconnection Location"]
+
+        queue = utils.format_interconnection_df(
+            queue,
+            rename,
+            extra=extra,
+            missing=missing,
+        )
+
+        return queue
+
     def _get_key(self):
         settings = self._get_json(
             "https://dataminer2.pjm.com/config/settings.json",
@@ -453,7 +525,12 @@ def _get_key(self):
 
     import gridstatus
 
-    iso = gridstatus.PJM()
+    for i in gridstatus.all_isos:
+        print("\n" + i.name + "\n")
+        for c in i().get_interconnection_queue().columns:
+            print(c.replace("\n", " "))
 
-    # df = iso.get_historical_fuel_mix(start="1/1/2016", end="10/16/2022")
-    df = iso.get_historical_fuel_mix(start="11/6/2016")
+        i().get_interconnection_queue().to_csv(
+            f"debug/queue/{i.iso_id}-queue.csv",
+            index=None,
+        )
diff --git a/gridstatus/spp.py b/gridstatus/spp.py
index 78fe7f39..58868b1a 100644
--- a/gridstatus/spp.py
+++ b/gridstatus/spp.py
@@ -3,7 +3,13 @@
 from bs4 import BeautifulSoup
 
 from gridstatus import utils
-from gridstatus.base import FuelMix, GridStatus, ISOBase, NotSupported
+from gridstatus.base import (
+    FuelMix,
+    GridStatus,
+    InterconnectionQueueStatus,
+    ISOBase,
+    NotSupported,
+)
 
 
 class SPP(ISOBase):
@@ -15,6 +21,9 @@ class SPP(ISOBase):
     default_timezone = "US/Central"
 
     status_homepage = "https://www.spp.org/markets-operations/current-grid-conditions/"
+    interconnection_homepage = (
+        "https://www.spp.org/engineering/generator-interconnection/"
+    )
 
     def get_status(self, date=None, verbose=False):
         if date != "latest":
@@ -192,6 +201,81 @@ def _get_load_and_forecast(self, verbose=False):
         # https://marketplace.spp.org/chart-api/gen-mix-365/asFile
         # 15mb file with five minute resolution
 
+    def get_interconnection_queue(self, verbose=False):
+        """Get interconnection queue
+
+        Returns:
+            pd.DataFrame: Interconnection queue
+
+
+        """
+        url = "https://opsportal.spp.org/Studies/GenerateActiveCSV"
+        if verbose:
+            print("Getting interconnection queue from {}".format(url))
+
+        queue = pd.read_csv(url, skiprows=1)
+
+        queue["Status (Original)"] = queue["Status"]
+
+        queue["Status"] = queue["Status"].map(
+            {
+                "IA FULLY EXECUTED/COMMERCIAL OPERATION": InterconnectionQueueStatus.COMPLETED.value,
+                "IA FULLY EXECUTED/ON SCHEDULE": InterconnectionQueueStatus.COMPLETED.value,
+                "IA FULLY EXECUTED/ON SUSPENSION": InterconnectionQueueStatus.COMPLETED.value,
+                "IA PENDING": InterconnectionQueueStatus.ACTIVE.value,
+                "DISIS STAGE": InterconnectionQueueStatus.ACTIVE.value,
+                "None": InterconnectionQueueStatus.ACTIVE.value,
+            },
+        )
+
+        queue["Generation Type"] = queue[["Generation Type", "Fuel Type"]].apply(
+            lambda x: " - ".join(x.dropna()),
+            axis=1,
+        )
+
+        queue["Proposed Completion Date"] = queue["Commercial Operation Date"]
+
+        rename = {
+            "Generation Interconnection Number": "Queue ID",
+            " Nearest Town or County": "County",
+            "State": "State",
+            "TO at POI": "Transmission Owner",
+            "Capacity": "Capacity (MW)",
+            "MAX Summer MW": "Summer Capacity (MW)",
+            "MAX Winter MW": "Winter Capacity (MW)",
+            "Generation Type": "Generation Type",
+            "Request Received": "Queue Date",
+            "Substation or Line": "Interconnection Location",
+        }
+
+        # todo: there are a few columns being parsed as "unamed" that aren't being included but should
+        extra_columns = [
+            "In-Service Date",
+            "Commercial Operation Date",
+            "Cessation Date",
+            "Current Cluster",
+            "Cluster Group",
+            "Replacement Generator Commercial Op Date",
+            "Service Type",
+        ]
+
+        missing = [
+            "Project Name",
+            "Interconnecting Entity",
+            "Withdrawn Date",
+            "Withdrawal Comment",
+            "Actual Completion Date",
+        ]
+
+        queue = utils.format_interconnection_df(
+            queue=queue,
+            rename=rename,
+            extra=extra_columns,
+            missing=missing,
+        )
+
+        return queue
+
 
 # historical generation mix
 # https://marketplace.spp.org/pages/generation-mix-rolling-365
diff --git a/gridstatus/utils.py b/gridstatus/utils.py
index 0f672e92..e72e6b42 100644
--- a/gridstatus/utils.py
+++ b/gridstatus/utils.py
@@ -6,7 +6,7 @@
 import tqdm
 
 import gridstatus
-from gridstatus.base import ISOBase, Markets, NotSupported
+from gridstatus.base import ISOBase, Markets, NotSupported, _interconnection_columns
 from gridstatus.caiso import CAISO
 from gridstatus.ercot import Ercot
 from gridstatus.isone import ISONE
@@ -136,3 +136,37 @@ def get_zip_file(url):
 
 def is_today(date, tz=None):
     return _handle_date(date, tz=tz).date() == pd.Timestamp.now(tz=tz).date()
+
+
+def format_interconnection_df(queue, rename, extra=None, missing=None):
+    """Format interconnection queue data"""
+    assert set(rename.keys()).issubset(queue.columns), set(
+        rename.keys(),
+    ) - set(queue.columns)
+    queue = queue.rename(columns=rename)
+    columns = _interconnection_columns.copy()
+
+    if extra:
+        columns += extra
+
+    if missing:
+        for m in missing:
+            assert m not in queue.columns, "Missing column already exists"
+            queue[m] = None
+
+    return queue[columns].reset_index(drop=True)
+
+
+def get_interconnection_queues():
+    """Get interconnection queue data for all ISOs"""
+    all_queues = []
+    for iso in tqdm.tqdm(all_isos):
+        iso = iso()
+        # only shared columns
+        queue = iso.get_interconnection_queue()[_interconnection_columns]
+        queue.insert(0, "ISO", iso.name)
+        all_queues.append(queue)
+        pd.concat(all_queues)
+
+    all_queues = pd.concat(all_queues).reset_index(drop=True)
+    return all_queues


Test patch:
diff --git a/gridstatus/tests/test_interconnection_queue.py b/gridstatus/tests/test_interconnection_queue.py
new file mode 100644
index 00000000..7c44ef84
--- /dev/null
+++ b/gridstatus/tests/test_interconnection_queue.py
@@ -0,0 +1,28 @@
+import pandas as pd
+import pytest
+
+import gridstatus
+from gridstatus import CAISO, ISONE, MISO, NYISO, PJM, SPP, Ercot
+from gridstatus.base import _interconnection_columns
+
+
+def check_queue(queue):
+    # todo make sure datetime columns are right type
+    assert isinstance(queue, pd.DataFrame)
+    assert queue.shape[0] > 0
+    assert set(_interconnection_columns).issubset(queue.columns)
+
+
+@pytest.mark.parametrize(
+    "iso",
+    [PJM(), SPP(), ISONE(), Ercot(), MISO(), CAISO(), NYISO()],
+)
+def test_get_interconnection_queue(iso):
+    queue = iso.get_interconnection_queue()
+    check_queue(queue)
+
+
+# todo implement this
+@pytest.mark.slow
+def test_get_interconnection_queue_all():
+    gridstatus.utils.get_interconnection_queues()
diff --git a/gridstatus/tests/test_isos.py b/gridstatus/tests/test_isos.py
index a7e8f2f1..e263b039 100644
--- a/gridstatus/tests/test_isos.py
+++ b/gridstatus/tests/test_isos.py
@@ -50,7 +50,6 @@ def test_make_lmp_availability_df():
 
 @pytest.mark.parametrize("iso", all_isos)
 def test_get_latest_fuel_mix(iso):
-    print(iso)
     mix = iso.get_fuel_mix("latest")
     assert isinstance(mix, FuelMix)
     assert isinstance(mix.time, pd.Timestamp)
diff --git a/gridstatus/tests/test_nyiso.py b/gridstatus/tests/test_nyiso.py
index 53aaf372..0d113b36 100644
--- a/gridstatus/tests/test_nyiso.py
+++ b/gridstatus/tests/test_nyiso.py
@@ -162,3 +162,8 @@ def test_nyiso_get_loads():
     ]
     assert set(df.columns) == set(columns)
     assert df.shape[0] >= 0
+
+
+def test_nyiso_interconnection_queue():
+    iso = gridstatus.NYISO()
+    df = iso.get_interconnection_queue()