{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "963c0e0a",
   "metadata": {},
   "source": [
    "# Playback Walkthrough\n",
    "\n",
    "Explore deterministic playback outputs for the tiny7 scenario using the shared analytics utilities."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "3b7fa46d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-11-14T10:34:32.115436Z",
     "iopub.status.busy": "2025-11-14T10:34:32.114703Z",
     "iopub.status.idle": "2025-11-14T10:34:32.959632Z",
     "shell.execute_reply": "2025-11-14T10:34:32.958996Z"
    }
   },
   "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>day</th>\n",
       "      <th>shift_id</th>\n",
       "      <th>machine_id</th>\n",
       "      <th>machine_role</th>\n",
       "      <th>sample_id</th>\n",
       "      <th>production_units</th>\n",
       "      <th>total_hours</th>\n",
       "      <th>idle_hours</th>\n",
       "      <th>mobilisation_cost</th>\n",
       "      <th>sequencing_violations</th>\n",
       "      <th>blackout_conflicts</th>\n",
       "      <th>available_hours</th>\n",
       "      <th>utilisation_ratio</th>\n",
       "      <th>downtime_hours</th>\n",
       "      <th>downtime_events</th>\n",
       "      <th>weather_severity_total</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>S1</td>\n",
       "      <td>H1</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>S1</td>\n",
       "      <td>H2</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>S1</td>\n",
       "      <td>H2</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>S1</td>\n",
       "      <td>H2</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>S1</td>\n",
       "      <td>H1</td>\n",
       "      <td>None</td>\n",
       "      <td>0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   day shift_id machine_id machine_role  sample_id  production_units  \\\n",
       "0    1       S1         H1         None          0               3.5   \n",
       "1    1       S1         H2         None          0               3.0   \n",
       "2    2       S1         H2         None          0               3.0   \n",
       "3    3       S1         H2         None          0               3.0   \n",
       "4    4       S1         H1         None          0               2.5   \n",
       "\n",
       "   total_hours  idle_hours  mobilisation_cost  sequencing_violations  \\\n",
       "0         10.0         0.0                0.0                      0   \n",
       "1         10.0         0.0                0.0                      0   \n",
       "2         10.0         0.0                0.0                      0   \n",
       "3         10.0         0.0                0.0                      0   \n",
       "4         10.0         0.0                0.0                      0   \n",
       "\n",
       "   blackout_conflicts  available_hours  utilisation_ratio  downtime_hours  \\\n",
       "0                   0             10.0                1.0             0.0   \n",
       "1                   0             10.0                1.0             0.0   \n",
       "2                   0             10.0                1.0             0.0   \n",
       "3                   0             10.0                1.0             0.0   \n",
       "4                   0             10.0                1.0             0.0   \n",
       "\n",
       "   downtime_events  weather_severity_total  \n",
       "0                0                     0.0  \n",
       "1                0                     0.0  \n",
       "2                0                     0.0  \n",
       "3                0                     0.0  \n",
       "4                0                     0.0  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sys\n",
    "from pathlib import Path\n",
    "\n",
    "PROJECT_ROOT = Path.cwd().resolve()\n",
    "while PROJECT_ROOT != PROJECT_ROOT.parent and not (PROJECT_ROOT / \"pyproject.toml\").exists():\n",
    "    PROJECT_ROOT = PROJECT_ROOT.parent\n",
    "if not (PROJECT_ROOT / \"pyproject.toml\").exists():\n",
    "    raise RuntimeError(\n",
    "        \"Notebook must be executed within a FHOPS checkout (pyproject.toml not found).\"\n",
    "    )\n",
    "if str(PROJECT_ROOT) not in sys.path:\n",
    "    sys.path.insert(0, str(PROJECT_ROOT))\n",
    "\n",
    "from docs.examples.analytics import utils\n",
    "\n",
    "SCENARIO = PROJECT_ROOT / \"examples/tiny7/scenario.yaml\"\n",
    "ASSIGNMENTS = PROJECT_ROOT / \"tests/fixtures/playback/tiny7_assignments.csv\"\n",
    "\n",
    "playback_tables = utils.load_deterministic_playback(SCENARIO, ASSIGNMENTS)\n",
    "playback_tables.shift.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "cc480be6",
   "metadata": {},
   "source": [
    "## Production by Day\n",
    "\n",
    "Visualise production totals per day. Adjust the cell below to experiment with different views."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "a77887f6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-11-14T10:34:32.963117Z",
     "iopub.status.busy": "2025-11-14T10:34:32.962944Z",
     "iopub.status.idle": "2025-11-14T10:34:33.195402Z",
     "shell.execute_reply": "2025-11-14T10:34:33.194800Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAEiCAYAAAAPh11JAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAMr1JREFUeJzt3XlYVGXjP/73sA3EJrIICAIugCuipo9Smkkq7lYu5AKYfT4WpoiZklcSloGWiqZhmmK5ViZWmiKS0sfHDSFUMk0UEcU1lWFRVOb+/tHP+TUN6hkc5gz6fl3XuWruOXPuN/g4z7t7zpyjEEIIEBEREdEjmckdgIiIiKi+YHEiIiIikojFiYiIiEgiFiciIiIiiViciIiIiCRicSIiIiKSiMWJiIiISCIWJyIiIiKJWJyIiIiIJGJxIqJaUygU+OCDD4w+7549e6BQKLBnzx6jz+3r64sBAwYYfV4iMg0sTkT11OrVq6FQKDSbtbU1/P39MXHiRFy+fFnueAbx+eefY/Xq1XLHMLqzZ89q/dlaWlrCxcUF3bp1w3vvvYdz587JHZHoqWUhdwAiejyzZ8+Gn58fbt++jb179yIlJQU///wz8vPz8cwzz8gd77F8/vnncHFxQWRkpNZ49+7dcevWLVhZWckTzEjCw8PRr18/qNVq3LhxA9nZ2UhOTsaiRYuwcuVKjBw5Uu6IRE8dFieiei4sLAydOnUCAIwfPx7Ozs5YsGABfvjhB4SHh9f4moqKCtja2hozpkGZmZnB2tpa7hh1rkOHDhg9erTWWFFREXr37o2IiAi0bNkSQUFBMqUjejrxozqiJ8yLL74IACgsLAQAREZGws7ODqdPn0a/fv1gb2+PUaNGAfi7QE2dOhXe3t5QKpUICAjAp59+CiGE1jGrqqowZcoUuLq6wt7eHoMGDcL58+d15o6MjISvr6/O+AcffACFQqEzvnbtWnTu3BnPPPMMnJyc0L17d+zcuRPA3+cS/f7778jKytJ8ZPXCCy8AePA5Tt999x06duwIGxsbuLi4YPTo0bhw4YJORjs7O1y4cAFDhgyBnZ0dXF1d8c4776C6uvrRv+D/z86dO9G+fXtYW1ujVatW2Lx5s+a5M2fOQKFQYOHChTqv27dvHxQKBTZs2CB5rn/y8fHB6tWrcefOHcybN08zfv36dbzzzjto27Yt7Ozs4ODggLCwMBw5ckSzT3l5OWxtbTF58mSd454/fx7m5uZITEysVS6ipwWLE9ET5vTp0wAAZ2dnzdi9e/fQp08fuLm54dNPP8Urr7wCIQQGDRqEhQsXom/fvliwYAECAgIwbdo0xMbGah1z/PjxSE5ORu/evZGUlARLS0v079//sXImJCRgzJgxsLS0xOzZs5GQkABvb2/88ssvAIDk5GR4eXkhMDAQa9aswZo1azBz5swHHm/16tUYPny45v/833jjDWzevBnPPfccbt68qbVvdXU1+vTpA2dnZ3z66afo0aMH5s+fj+XLl0vKfurUKYwYMQJhYWFITEyEhYUFhg0bhoyMDABA06ZNERISgnXr1um8dt26dbC3t8fgwYMl/qZ0de3aFc2aNdPMB/xd1rZs2YIBAwZgwYIFmDZtGo4dO4YePXqgpKQEAGBnZ4ehQ4fim2++0SmJGzZsgBBCU6qJ6AEEEdVLqampAoDYtWuXuHr1qiguLhYbN24Uzs7OwsbGRpw/f14IIURERIQAIGbMmKH1+i1btggA4qOPPtIaf/XVV4VCoRAFBQVCCCHy8vIEAPHWW29p7ffaa68JACI+Pl4zFhERIXx8fHSyxsfHi3++3Zw6dUqYmZmJoUOHiurqaq191Wq15t9bt24tevTooXO83bt3CwBi9+7dQggh7ty5I9zc3ESbNm3ErVu3NPtt3bpVABCzZs3SyghAzJ49W+uYwcHBomPHjjpz/ZuPj48AIL7//nvNWGlpqfDw8BDBwcGasS+++EIAEH/88Ydm7M6dO8LFxUVEREQ8dI7CwkIBQHzyyScP3Gfw4MECgCgtLRVCCHH79m2d32VhYaFQKpVaP2t6eroAILZv3661b7t27Wr8XRORNq44EdVzoaGhcHV1hbe3N0aOHAk7OzukpaWhcePGWvu9+eabWo9//vlnmJubY9KkSVrjU6dOhRAC27dv1+wHQGe/mJiYWmfesmUL1Go1Zs2aBTMz7behmj7Se5TDhw/jypUreOutt7TOferfvz8CAwOxbds2nddMmDBB6/Hzzz+PM2fOSJrP09MTQ4cO1Tx2cHDA2LFj8dtvv+HSpUsAgOHDh8Pa2lpr1Sk9PR3Xrl3TOW+pNuzs7AAAZWVlAAClUqn5XVZXV+Ovv/6CnZ0dAgICkJubq3ldaGgoPD09tXLl5+fj6NGjBslF9KRjcSKq55YuXYqMjAzs3r0bx48fx5kzZ9CnTx+tfSwsLODl5aU1VlRUBE9PT9jb22uNt2zZUvP8/X+amZmhWbNmWvsFBATUOvPp06dhZmaGVq1a1foY/3Q/a02ZAgMDNc/fZ21tDVdXV60xJycn3LhxQ9J8zZs31yl4/v7+AP6+lAAANGjQAAMHDsT69es1+6xbtw6NGzfWnIf2OMrLywFA8+enVquxcOFCtGjRAkqlEi4uLnB1dcXRo0dRWlqqeZ2ZmRlGjRqFLVu2oLKyUpPL2toaw4YNe+xcRE86Fieieq5z584IDQ3FCy+8gJYtW+qs4ADaqxF16UGrRfqcdG0M5ubmRpln7NixOHPmDPbt24eysjL8+OOPCA8PN8ifRX5+Ptzc3ODg4AAA+PjjjxEbG4vu3btj7dq1SE9PR0ZGBlq3bg21Wq2Tq7y8HFu2bIEQAuvXr8eAAQPg6Oj42LmInnS8HAHRU8rHxwe7du1CWVmZ1qrTiRMnNM/f/6darcbp06e1VnROnjypc0wnJyedE7EB6Kz4NGvWDGq1GsePH0f79u0fmFHqx3b3s548eVJnNefkyZOa5w2loKAAQgitfH/++ScAaH2rsG/fvnB1dcW6devQpUsXVFZWYsyYMY89//79+3H69Gmtj9Y2bdqEnj17YuXKlVr73rx5Ey4uLlpjbdq0QXBwMNatWwcvLy+cO3cOn3322WPnInoacMWJ6CnVr18/VFdXY8mSJVrjCxcuhEKhQFhYGABo/rl48WKt/ZKTk3WO2axZM5SWluLo0aOasYsXLyItLU1rvyFDhsDMzAyzZ8/WWQ0R/7gUgq2tbY1F7N86deoENzc3LFu2DFVVVZrx7du3448//njsbwD+W0lJidbPpFKp8PXXX6N9+/Zwd3fXjFtYWCA8PBzffvstVq9ejbZt26Jdu3aPNXdRUREiIyNhZWWFadOmacbNzc11LiPx3Xff6VyO4b4xY8Zg586dSE5OhrOzs+bPmYgejitORE+pgQMHomfPnpg5cybOnj2LoKAg7Ny5Ez/88ANiYmI05zS1b98e4eHh+Pzzz1FaWopu3bohMzMTBQUFOsccOXIkpk+fjqFDh2LSpEmorKxESkoK/P39tU5Qbt68OWbOnIkPP/wQzz//PF5++WUolUpkZ2fD09NTcy2hjh07IiUlBR999BGaN28ONze3Gs8PsrS0xNy5cxEVFYUePXogPDwcly9fxqJFi+Dr64spU6YY9Hfn7++P119/HdnZ2WjUqBFWrVqFy5cvIzU1VWffsWPHYvHixdi9ezfmzp2r1zy5ublYu3Yt1Go1bt68iezsbHz//fdQKBRYs2aNVgkbMGAAZs+ejaioKHTr1g3Hjh3DunXr0LRp0xqP/dprr+Hdd99FWloa3nzzTVhaWur3SyB6Wsn6nT4iqrX7lyPIzs5+6H4RERHC1ta2xufKysrElClThKenp7C0tBQtWrQQn3zyidYlAYQQ4tatW2LSpEnC2dlZ2NraioEDB4ri4mKdyxEIIcTOnTtFmzZthJWVlQgICBBr167VuRzBfatWrRLBwcFCqVQKJycn0aNHD5GRkaF5/tKlS6J///7C3t5eANB8Xf7flyO475tvvtEcr2HDhmLUqFGayzI86vfxoIz/5uPjI/r37y/S09NFu3bthFKpFIGBgeK777574Gtat24tzMzMdLI8yP3LEdzfLCwsRMOGDUWXLl1EXFycKCoq0nnN7du3xdSpU4WHh4ewsbERISEhYv/+/aJHjx4PvMxAv379BACxb98+SbmISAiFEP9a2yUiIoMKDg5Gw4YNkZmZKXcULUOHDsWxY8dqXD0koprxHCciojp0+PBh5OXlYezYsXJH0XLx4kVs27bNICerEz1NuOJERFQH8vPzkZOTg/nz5+PatWs4c+aMSdyYuLCwEP/973/x5ZdfIjs7G6dPn9Y6oZ2IHo4rTkREdWDTpk2IiorC3bt3sWHDBpMoTQCQlZWFMWPGoLCwEF999RVLE5GeuOJEREREJBFXnIiIiIgkYnEiIiIikqheXwBTrVajpKQE9vb2tbqjOhEREZEQAmVlZfD09HzkvSTrdXEqKSmBt7e33DGIiIjoCVBcXAwvL6+H7lOvi9P9G5MWFxdr7hBOREREpA+VSgVvb2+tG54/SL0uTvc/nnNwcGBxIiIiosci5bQfnhxOREREJBGLExEREZFELE5EREREErE4EREREUnE4kREREQkEYsTERERkUQsTkREREQS1evrOBmD74xtRp3vbFJ/o85HRERE0nHFiYiIiEgiFiciIiIiiViciIiIiCRicSIiIiKSiMWJiIiISCIWJyIiIiKJWJyIiIiIJGJxIiIiIpKIxYmIiIhIIhYnIiIiIolkL04XLlzA6NGj4ezsDBsbG7Rt2xaHDx+WOxYRERGRDlnvVXfjxg2EhISgZ8+e2L59O1xdXXHq1Ck4OTnJGYuIiIioRrIWp7lz58Lb2xupqamaMT8/PxkTERERET2YrB/V/fjjj+jUqROGDRsGNzc3BAcHY8WKFQ/cv6qqCiqVSmsjIiIiMhZZi9OZM2eQkpKCFi1aID09HW+++SYmTZqEr776qsb9ExMT4ejoqNm8vb2NnJiIiIieZgohhJBrcisrK3Tq1An79u3TjE2aNAnZ2dnYv3+/zv5VVVWoqqrSPFapVPD29kZpaSkcHBzqJKPvjG11ctwHOZvU36jzERERPe1UKhUcHR0l9QlZV5w8PDzQqlUrrbGWLVvi3LlzNe6vVCrh4OCgtREREREZi6zFKSQkBCdPntQa+/PPP+Hj4yNTIiIiIqIHk7U4TZkyBQcOHMDHH3+MgoICrF+/HsuXL0d0dLScsYiIiIhqJGtxevbZZ5GWloYNGzagTZs2+PDDD5GcnIxRo0bJGYuIiIioRrJexwkABgwYgAEDBsgdg4iIiOiRZL/lChEREVF9weJEREREJBGLExEREZFELE5EREREErE4EREREUnE4kREREQkEYsTERERkUQsTkREREQSyX4BTKInie+MbUaf82xSf6PPSfQ0Mfbf64f9nWYW+XHFiYiIiEiixypOVVVVhspBREREZPL0Kk7bt29HREQEmjZtCktLSzzzzDNwcHBAjx49MGfOHJSUlNRVTiIiIiLZSSpOaWlp8Pf3x7hx42BhYYHp06dj8+bNSE9Px5dffokePXpg165daNq0KSZMmICrV6/WdW4iIiIio5N0cvi8efOwcOFChIWFwcxMt2sNHz4cAHDhwgV89tlnWLt2LaZMmWLYpEREREQyk1Sc9u/fL+lgjRs3RlJS0mMFIiIiIjJVj/2tuurqauTl5eHGjRuGyENERERksvQuTjExMVi5ciWAv0tTjx490KFDB3h7e2PPnj2GzkdERERkMvQuTps2bUJQUBAA4KeffkJhYSFOnDiBKVOmYObMmQYPSERERGQq9C5O165dg7u7OwDg559/xrBhwzTfuDt27Jhex/rggw+gUCi0tsDAQH0jERERERmF3rdcadSoEY4fPw4PDw/s2LEDKSkpAIDKykqYm5vrHaB169bYtWvX/x/IgneBISIiItOkd0uJiorC8OHD4eHhAYVCgdDQUADAwYMHa7VaZGFhoVnBIiIiIjJlehenDz74AG3atEFxcTGGDRsGpVIJADA3N8eMGTP0DnDq1Cl4enrC2toaXbt2RWJiIpo0aaL3cYiIiIjqmt7F6euvv8aIESM0hem+8PBwbNy4Ua9jdenSBatXr0ZAQAAuXryIhIQEPP/888jPz4e9vb3O/lVVVVr3x1OpVPrGJyIiIqo1vU8Oj4qKQmlpqc54WVkZoqKi9DpWWFgYhg0bhnbt2qFPnz74+eefcfPmTXz77bc17p+YmAhHR0fN5u3trW98IiIiolrTuzgJIaBQKHTGz58/D0dHx8cK06BBA/j7+6OgoKDG5+Pi4lBaWqrZiouLH2s+IiIiIn1I/qguODhYc8mAXr16aX37rbq6GoWFhejbt+9jhSkvL8fp06cxZsyYGp9XKpU6HxESERERGYvk4jRkyBAAQF5eHvr06QM7OzvNc1ZWVvD19cUrr7yi1+TvvPMOBg4cCB8fH5SUlCA+Ph7m5uYIDw/X6zhERERExiC5OMXHxwMAfH19MWLECFhbWz/25OfPn0d4eDj++usvuLq64rnnnsOBAwfg6ur62McmIiIiMjS9v1UXERFhsMn1/RYeERERkZwkFaeGDRvizz//hIuLC5ycnGo8Ofy+69evGywcERERkSmRVJwWLlyoua5ScnJyXeYhIiIiMlmSitM/P54z5Ed1RERERPVJre6oq1arUVBQgCtXrkCtVms91717d4MEIyIiIjI1ehenAwcO4LXXXkNRURGEEFrPKRQKVFdXGywcERERkSnRuzhNmDABnTp1wrZt2+Dh4fHQE8WJiIiIniR6F6dTp05h06ZNaN68eV3kISIiIjJZet+rrkuXLg+8lxwRERHRk0zvFae3334bU6dOxaVLl9C2bVtYWlpqPd+uXTuDhSMiIiIyJXoXp/v3oxs3bpxmTKFQQAjBk8OJqF7wnbHNqPOdTer/wOeYhah+0bs4FRYW1kUOIiIiIpOnd3Hy8fGpixxEREREJk/v4vT1118/9PmxY8fWOgwRERGRKdO7OE2ePFnr8d27d1FZWQkrKys888wzLE5ERET0xNL7cgQ3btzQ2srLy3Hy5Ek899xz2LBhQ11kJCIiIjIJehenmrRo0QJJSUk6q1FERERETxKDFCcAsLCwQElJiaEOR0RERGRy9D7H6ccff9R6LITAxYsXsWTJEoSEhBgsGBEREZGp0bs4DRkyROuxQqGAq6srXnzxRcyfP99QuYiIiIhMjt4f1anVaq2turoaly5dwvr16+Hh4VHrIElJSVAoFIiJian1MYiIiIjqksHOcXoc2dnZ+OKLL3ifOyIiIjJpkopTUlISbt26JemABw8exLZt0u93VF5ejlGjRmHFihVwcnKS/DoiIiIiY5NUnI4fP44mTZrgrbfewvbt23H16lXNc/fu3cPRo0fx+eefo1u3bhgxYgTs7e0lB4iOjkb//v0RGhqqf3oiIiIiI5J0cvjXX3+NI0eOYMmSJXjttdegUqlgbm4OpVKJyspKAEBwcDDGjx+PyMhIWFtbS5p848aNyM3NRXZ2tqT9q6qqUFVVpXmsUqkkvY6IiIjIECR/qy4oKAgrVqzAF198gaNHj6KoqAi3bt2Ci4sL2rdvDxcXF70mLi4uxuTJk5GRkSG5aCUmJiIhIUGveYiIiIgMRe/LEZiZmaF9+/Zo3779Y02ck5ODK1euoEOHDpqx6upq/Prrr1iyZAmqqqpgbm6u9Zq4uDjExsZqHqtUKnh7ez9WDiIiIiKp9C5OhtKrVy8cO3ZMaywqKgqBgYGYPn26TmkCAKVSCaVSaayIRERERFpkK0729vZo06aN1pitrS2cnZ11xomIiIhMgUlcx4mIiIioPpBtxakme/bskTsCERER0QNxxYmIiIhIIr1XnCoqKpCUlITMzExcuXIFarVa6/kzZ84YLBwRERGRKdG7OI0fPx5ZWVkYM2YMPDw8oFAo6iIXERERkcnRuzht374d27ZtQ0hISF3kISIiIjJZep/j5OTkhIYNG9ZFFiIiIiKTpndx+vDDDzFr1izNPeqIiIiInhZ6f1Q3f/58nD59Go0aNYKvry8sLS21ns/NzTVYOCIiIiJTondxGjJkSB3EICIiIjJ9ehen+Pj4ushBREREZPJqfeXwnJwc/PHHHwCA1q1bIzg42GChiIiIiEyR3sXpypUrGDlyJPbs2YMGDRoAAG7evImePXti48aNcHV1NXRGIiIiIpOg97fq3n77bZSVleH333/H9evXcf36deTn50OlUmHSpEl1kZGIiIjIJOi94rRjxw7s2rULLVu21Iy1atUKS5cuRe/evQ0ajoiIiMiU6L3ipFardS5BAACWlpY6960jIiIiepLoXZxefPFFTJ48GSUlJZqxCxcuYMqUKejVq5dBwxERERGZEr2L05IlS6BSqeDr64tmzZqhWbNm8PPzg0qlwmeffVYXGYmIiIhMgt7nOHl7eyM3Nxe7du3CiRMnAAAtW7ZEaGiowcMRERERmZJaXcdJoVDgpZdewksvvWToPEREREQmS1JxWrx4Mf7nf/4H1tbWWLx48UP35SUJiIiI6EklqTgtXLgQo0aNgrW1NRYuXPjA/RQKhV7FKSUlBSkpKTh79iyAv69APmvWLISFhUk+BhEREZGxSCpOhYWFNf774/Ly8kJSUhJatGgBIQS++uorDB48GL/99htat25tsHmIiIiIDEHvb9XNnj0blZWVOuO3bt3C7Nmz9TrWwIED0a9fP7Ro0QL+/v6YM2cO7OzscODAAX1jEREREdU5vYtTQkICysvLdcYrKyuRkJBQ6yDV1dXYuHEjKioq0LVr11ofh4iIiKiu6P2tOiEEFAqFzviRI0fQsGFDvQMcO3YMXbt2xe3bt2FnZ4e0tDS0atWqxn2rqqpQVVWleaxSqfSej4iIiKi2JBcnJycnKBQKKBQK+Pv7a5Wn6upqlJeXY8KECXoHCAgIQF5eHkpLS7Fp0yZEREQgKyurxvKUmJj4WKta9Z3vjG1Gne9sUv8HPmdKWYiIiIxFcnFKTk6GEALjxo1DQkICHB0dNc9ZWVnB19e3Vh+xWVlZoXnz5gCAjh07Ijs7G4sWLcIXX3yhs29cXBxiY2M1j1UqFby9vfWek4iIiKg2JBeniIgIAICfnx9CQkJgYVGra2c+klqt1vo47p+USiWUSmWdzEtERET0KHq3n4qKCmRmZqJPnz5a4+np6VCr1XpdgykuLg5hYWFo0qQJysrKsH79euzZswfp6en6xiIiIiKqc3p/q27GjBmorq7WGRdCYMaMGXod68qVKxg7diwCAgLQq1cvZGdnIz09nbdyISIiIpOk94rTqVOnajxxOzAwEAUFBXoda+XKlfpOT0RERCQbvVecHB0dcebMGZ3xgoIC2NraGiQUERERkSnSuzgNHjwYMTExOH36tGasoKAAU6dOxaBBgwwajoiIiMiU6F2c5s2bB1tbWwQGBsLPzw9+fn5o2bIlnJ2d8emnn9ZFRiIiIiKToPc5To6Ojti3bx8yMjJw5MgR2NjYoF27dujevXtd5CMiIiIyGbW6GJNCoUDv3r3Ru3dvQ+chIiIiMll6F6fZs2c/9PlZs2bVOgwRERGRKdO7OKWlpWk9vnv3LgoLC2FhYYFmzZqxOBEREdETS+/i9Ntvv+mMqVQqREZGYujQoQYJRURERGSK9P5WXU0cHByQkJCA999/3xCHIyIiIjJJBrtTb2lpKUpLSw11OCLJfGdsM+p8Z5P6G3U+IiIyHXoXp8WLF2s9FkLg4sWLWLNmjV43+CUiIiKqb/QuTgsXLtR6bGZmBldXV0RERCAuLs5gwYiIiIhMjd7FqbCwsC5yEBEREZk8g5wcTkRERPQ0kLTi9PLLL0s+4ObNm2sdhoiIiMiUSVpxcnR01GwODg7IzMzE4cOHNc/n5OQgMzMTjo6OdRaUiIiISG6SVpxSU1M1/z59+nQMHz4cy5Ytg7m5OQCguroab731FhwcHOomJREREZEJ0Pscp1WrVuGdd97RlCYAMDc3R2xsLFatWmXQcERERESmRO/idO/ePZw4cUJn/MSJE1Cr1QYJRURERGSK9L4cQVRUFF5//XWcPn0anTt3BgAcPHgQSUlJiIqK0utYiYmJ2Lx5M06cOAEbGxt069YNc+fORUBAgL6xiIiIiOqc3sXp008/hbu7O+bPn4+LFy8CADw8PDBt2jRMnTpVr2NlZWUhOjoazz77LO7du4f33nsPvXv3xvHjx2Fra6tvNCIiIqI6pXdxMjMzw7vvvot3330XKpUKAGp9UviOHTu0Hq9evRpubm7IyclB9+7da3VMIiIiorpS65v8Xr16FSdPngQABAYGwsXF5bHD3L9JcMOGDR/7WERERESGpvfJ4RUVFRg3bhw8PDzQvXt3dO/eHR4eHnj99ddRWVlZ6yBqtRoxMTEICQlBmzZtatynqqoKKpVKayMiIiIyFr1XnGJjY5GVlYWffvoJISEhAIC9e/di0qRJmDp1KlJSUmoVJDo6Gvn5+di7d+8D90lMTERCQkKtjk/0NPKdsc2o851N6m/U+YiIjE3vFafvv/8eK1euRFhYGBwcHODg4IB+/fphxYoV2LRpU61CTJw4EVu3bsXu3bvh5eX1wP3i4uJQWlqq2YqLi2s1HxEREVFt6L3iVFlZiUaNGumMu7m56f1RnRACb7/9NtLS0rBnzx74+fk9dH+lUgmlUqnXHERERESGoveKU9euXREfH4/bt29rxm7duoWEhAR07dpVr2NFR0dj7dq1WL9+Pezt7XHp0iVcunQJt27d0jcWERERUZ3Te8UpOTkZffv2hZeXF4KCggAAR44cgbW1NdLT0/U61v3zoV544QWt8dTUVERGRuobjYiIiKhO6V2c2rZti1OnTmHdunWaW6+Eh4dj1KhRsLGx0etYQgh9pyciIiKSjV7F6e7duwgMDMTWrVvxxhtv1FUmIiIiIpOk1zlOlpaWWuc2ERERET1N9D45PDo6GnPnzsW9e/fqIg8RERGRydL7HKfs7GxkZmZi586daNu2rc7NeDdv3mywcERERESmRO/i1KBBA7zyyit1kYWIiIjIpOldnFJTU+siBxEREZHJk3yOk1qtxty5cxESEoJnn30WM2bM4IUqiYiI6KkiuTjNmTMH7733Huzs7NC4cWMsWrQI0dHRdZmNiIiIyKRILk5ff/01Pv/8c6Snp2PLli346aefsG7dOqjV6rrMR0RERGQyJJ/jdO7cOfTr10/zODQ0FAqFAiUlJfDy8qqTcET05PCdsc2o851N6m/U+Yjo6SB5xenevXuwtrbWGrO0tMTdu3cNHoqIiIjIFElecRJCIDIyEkqlUjN2+/ZtTJgwQetaTryOExERET2pJBeniIgInbHRo0cbNAwRERGRKZNcnHj9JiIiInra6X2vOiIiIqKnFYsTERERkUQsTkREREQSsTgRERERScTiRERERCSRrMXp119/xcCBA+Hp6QmFQoEtW7bIGYeIiIjooWQtThUVFQgKCsLSpUvljEFEREQkieTrONWFsLAwhIWFyRmBiIiISDKe40REREQkkawrTvqqqqpCVVWV5rFKpZIxDRERET1t6tWKU2JiIhwdHTWbt7e33JGIiIjoKVKvilNcXBxKS0s1W3FxsdyRiIiI6ClSrz6qUyqVUCqVcscgIiKip5Ssxam8vBwFBQWax4WFhcjLy0PDhg3RpEkTGZMRERER6ZK1OB0+fBg9e/bUPI6NjQUAREREYPXq1TKlIiIiIqqZrMXphRdegBBCzghEREREktWrk8OJiIiI5MTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJBGLExEREZFELE5EREREErE4EREREUnE4kREREQkEYsTERERkUQsTkREREQSsTgRERERScTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJBGL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Hj3q+scgonqIK05E9EQRQkChUAAAdu3ahV69eqFx48awt7fHmDFj8Ndff6GyshIA0LlzZ7Ru3RpfffUVAGDt2rXw8fFB9+7dZctPRKaNxYmInih//PEH/Pz8cPbsWQwYMADt2rXD999/j5ycHCxduhQAcOfOHc3+48eP15wTlZqaiqioKE3xIiL6NxYnInpi/PLLLzh27BheeeUV5OTkQK1WY/78+fjPf/4Df39/lJSU6Lxm9OjRKCoqwuLFi3H8+HFERETIkJyI6gsLuQMQEdVGVVUVLl26hOrqaly+fBk7duxAYmIiBgwYgLFjxyI/Px93797FZ599hoEDB+K///0vli1bpnMcJycnvPzyy5g2bRp69+4NLy8vGX4aIqovuOJERPXSjh074OHhAV9fX/Tt2xe7d+/G4sWL8cMPP8Dc3BxBQUFYsGAB5s6dizZt2mDdunVITEys8Vivv/467ty5g3Hjxhn5pyCi+obfqiOip96aNWswZcoUlJSUwMrKSu44RGTC+FEdET21KisrcfHiRSQlJeF///d/WZqI6JH4UR0RPbXmzZuHwMBAuLu7Iy4uTu44RFQP8KM6IiIiIom44kREREQkEYsTERERkUQsTkREREQSsTgRERERScTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJNH/A2NGyWiXX9TZAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x300 with 1 Axes>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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7dq1WL9+Pezt7XHp0iVcunQJt27d0jcWERERUZ3Te8UpOTkZffv2hZeXF4KCggAAR44cgbW1NdLT0/U61v3zoV544QWt8dTUVERGRuobjYiIiKhO6V2c2rZti1OnTmHdunWaW6+Eh4dj1KhRsLGx0etYQgh9pyciIiKSjV7F6e7duwgMDMTWrVvxxhtv1FUmIiIiIpOk1zlOlpaWWuc2ERERET1N9D45PDo6GnPnzsW9e/fqIg8RERGRydL7HKfs7GxkZmZi586daNu2rc7NeDdv3mywcERERESmRO/i1KBBA7zyyit1kYWIiIjIpOldnFJTU+siBxEREZHJk3yOk1qtxty5cxESEoJnn30WM2bM4IUqiYiI6KkiuTjNmTMH7733Huzs7NC4cWMsWrQI0dHRdZmNiIiIyKRILk5ff/01Pv/8c6Snp2PLli346aefsG7dOqjV6rrMR0RERGQyJJ/jdO7cOfTr10/zODQ0FAqFAiUlJfDy8qqTcET05PCdsc2o851N6m/U+Yjo6SB5xenevXuwtrbWGrO0tMTdu3cNHoqIiIjIFElecRJCIDIyEkqlUjN2+/ZtTJgwQetaTryOExERET2pJBeniIgInbHRo0cbNAwRERGRKZNcnHj9JiIiInra6X2vOiIiIqKnFYsTERERkUQsTkREREQSsTgRERERScTiRERERCSRrMXp119/xcCBA+Hp6QmFQoEtW7bIGYeIiIjooWQtThUVFQgKCsLSpUvljEFEREQkieTrONWFsLAwhIWFyRmBiIiISDKe40REREQkkawrTvqqqqpCVVWV5rFKpZIxDRERET1t6tWKU2JiIhwdHTWbt7e33JGIiIjoKVKvilNcXBxKS0s1W3FxsdyRiIiI6ClSrz6qUyqVUCqVcscgIiKip5Ssxam8vBwFBQWax4WFhcjLy0PDhg3RpEkTGZMRERER6ZK1OB0+fBg9e/bUPI6NjQUAREREYPXq1TKlIiIiIqqZrMXphRdegBBCzghEREREktWrk8OJiIiI5MTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJBGLExEREZFELE5EREREErE4EREREUnE4kREREQkEYsTERERkUQsTkREREQSsTgRERERScTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJBGL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Hj3q+scgonqIK05E9EQRQkChUAAAdu3ahV69eqFx48awt7fHmDFj8Ndff6GyshIA0LlzZ7Ru3RpfffUVAGDt2rXw8fFB9+7dZctPRKaNxYmInih//PEH/Pz8cPbsWQwYMADt2rXD999/j5ycHCxduhQAcOfOHc3+48eP15wTlZqaiqioKE3xIiL6NxYnInpi/PLLLzh27BheeeUV5OTkQK1WY/78+fjPf/4Df39/lJSU6Lxm9OjRKCoqwuLFi3H8+HFERETIkJyI6gsLuQMQEdVGVVUVLl26hOrqaly+fBk7duxAYmIiBgwYgLFjxyI/Px93797FZ599hoEDB+K///0vli1bpnMcJycnvPzyy5g2bRp69+4NLy8vGX4aIqovuOJERPXSjh074OHhAV9fX/Tt2xe7d+/G4sWL8cMPP8Dc3BxBQUFYsGAB5s6dizZt2mDdunVITEys8Vivv/467ty5g3Hjxhn5pyCi+obfqiOip96aNWswZcoUlJSUwMrKSu44RGTC+FEdET21KisrcfHiRSQlJeF///d/WZqI6JH4UR0RPbXmzZuHwMBAuLu7Iy4uTu44RFQP8KM6IiIiIom44kREREQkEYsTERERkUQsTkREREQSsTgRERERScTiRERERCQRixMRERGRRCxORERERBKxOBERERFJxOJEREREJNH/A2NGyWiXX9TZAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 600x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "chart = utils.plot_production_by_day(playback_tables.day)\n",
    "chart"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "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.12.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
