The source files can be found in examples/.

Data preprocessing and imputation

Real price data is rarely clean. Assets list partway through the window (leading gaps), trade halts and stale quotes leave flat or missing stretches, names get delisted (trailing gaps), and exchanges keep different holiday calendars so timestamps do not line up. Feeding that straight into an optimiser is a recipe for silent errors. prices_to_returns handles all of it in one call, before it computes returns, through three cooperating controls:

  • missing_col_percent — drop any asset whose fraction of missing observations exceeds this threshold (too sparse to trust).
  • missing_row_percent — drop any timestamp whose fraction of missing values across assets exceeds this threshold (e.g. a misaligned holiday).
  • impute_method — fill the remaining gaps with an Impute imputor before differencing prices into returns.

The order matters: filter the hopeless rows/columns first, then impute what is left, then compute returns.

When to reach for this

Reach for these whenever the raw price table has missing values — newly listed or delisted assets, halted or stale prices, or non-overlapping trading calendars. The decision for each asset or date is drop or fill: drop what is too sparse to trust (missing_*_percent), fill what is recoverable (impute_method), and let prices_to_returns do both in one pass.

Impute.jl imputors

Imputation methods are Impute.jl imputors passed via impute_method. Impute is an optional dependency of PortfolioOptimisers — add it to your project and using Impute to load PortfolioOptimisersImputeExt, which is what teaches prices_to_returns to accept an imputor; without it, passing one is an error. Note that this is unrelated to Imputer, PortfolioOptimisers' own imputation estimator for pipelines. The two most useful imputors for prices are Impute.LOCF() (last observation carried forward — the right model for a halt or stale quote, since it holds the last traded price) and Impute.Interpolate() (linear interpolation — natural for short gaps between two good prices).

using PortfolioOptimisers, PrettyTables, DataFrames, Statistics, Imputeresfmt = (v, i, j) -> begin    if j == 1        return v    else        return isa(v, Number) ? "$(round(v * 100, digits = 3)) %" : v    endend;

1. A clean slice, then realistic damage

We start from the usual S&P 500 slice and deliberately injure it to mimic the messes above: one asset that is mostly missing (a late lister we will want to drop), a halted block of one asset, and scattered single-day gaps across the rest.

using CSV, TimeSeriesX = TimeArray(CSV.File(joinpath(@__DIR__, "..", "SP500.csv.gz")); timestamp = :Date)[(end - 252):end]ts = timestamp(X)nx = string.(colnames(X))T, N = size(values(X))vals = Matrix{Union{Float64, Missing}}(values(X))vals[1:160, 3] .= missing                 # asset 3: mostly missing (late lister → drop)vals[100:120, 2] .= missing               # asset 2: a ~3-week trading halt (fillable)using StableRNGsrng = StableRNG(42)for _ in 1:60                              # scattered single-day gaps elsewhere    vals[rand(rng, 1:T), rand(rng, 4:N)] = missingendXmiss = TimeArray(ts, vals, Symbol.(nx))
253×20 TimeSeries.TimeArray{Union{Missing, Float64}, 2, Date, Matrix{Union{Missing, Float64}}} 2021-12-28 to 2022-12-28
┌────────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│             AAPL     AMD      BAC      BBY      CVX      GE       HD       JNJ      JPM      KO      LLY      MRK      MSFT     PEP      PFE      PG       RRC      UNH      WMT      XOM     │
├────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ 2021-12-28 │ 177.738 │  153.15 │ missing │  92.981 │ 112.335 │  73.953 │  390.59 │ 163.569 │ 150.437 │ 56.324 │ 271.118 │  73.413 │ 336.502 │ 165.585 │  54.471 │  155.94 │  18.827 │ 492.795 │ 139.467 │  58.376 │
│ 2021-12-29 │ 177.827 │  148.26 │ missing │  94.233 │ 111.757 │  73.557 │ 395.032 │ 164.722 │ 150.361 │ 56.391 │  273.07 │  73.547 │ 337.192 │ 166.171 │  54.068 │ 157.232 │  18.788 │ 495.382 │ 139.398 │  57.865 │
│ 2021-12-30 │ 176.657 │  145.15 │ missing │  94.877 │ 111.264 │  73.487 │ 394.167 │ 165.451 │ 150.285 │ 56.228 │ 271.922 │  73.729 │ 334.599 │ 165.883 │  54.838 │ 155.872 │  18.057 │ 494.255 │ 139.848 │  57.525 │
│ 2021-12-31 │ 176.033 │   143.9 │ missing │  94.924 │ 111.188 │  73.309 │ 399.042 │ 164.261 │ 150.162 │ 56.639 │ 270.912 │  73.251 │  331.64 │ 166.882 │  55.448 │ 156.648 │  17.622 │ 492.011 │ 141.332 │  57.903 │
│ 2022-01-03 │ 180.434 │  150.24 │ missing │   95.41 │ 112.998 │  74.682 │ 392.917 │ 164.712 │ 153.338 │ 56.726 │ 266.509 │  73.471 │ 330.092 │ 166.181 │  53.194 │ 155.997 │  18.146 │ 492.148 │ 141.293 │  60.127 │
│ 2022-01-04 │ 178.144 │  144.42 │ missing │  98.231 │ 115.054 │  77.111 │ 396.955 │  164.27 │ 159.151 │ 57.673 │ 261.683 │  73.605 │ 324.432 │ 166.421 │  51.204 │ 156.543 │  18.432 │ 480.998 │ 138.705 │  62.389 │
│ 2022-01-05 │ 173.406 │  136.15 │ missing │  96.232 │ 115.803 │  77.111 │ 391.571 │ 165.365 │ 156.242 │ 58.151 │ 255.641 │  75.392 │ 311.978 │ 166.988 │  52.237 │ 157.251 │  18.076 │ 479.812 │  140.58 │  63.165 │
│ 2022-01-06 │ 170.511 │  136.23 │ missing │   96.12 │ 116.788 │  77.561 │ 390.148 │ 164.798 │ 157.902 │ 57.845 │ 254.347 │ missing │ 309.513 │ 167.026 │  51.495 │  155.93 │  18.501 │ 460.177 │  140.19 │   64.65 │
│ 2022-01-07 │ 170.679 │   132.0 │ missing │  95.765 │ 118.465 │  78.686 │ 378.465 │ 167.026 │ 159.466 │ 57.711 │ 254.514 │  76.749 │  309.67 │ 167.238 │  52.321 │ 155.844 │  18.491 │  449.35 │ 141.528 │   65.18 │
│ 2022-01-10 │ 170.699 │   132.0 │ missing │  95.999 │ 118.541 │   77.15 │ 372.552 │   166.2 │ 159.619 │ 57.807 │ 255.112 │  78.728 │ 309.897 │ 167.324 │ missing │ 153.718 │   19.45 │  455.62 │ 141.254 │  64.792 │
│ 2022-01-11 │ 173.564 │  137.31 │ missing │   97.25 │ 121.251 │  78.989 │ 371.792 │ 164.434 │ 159.781 │ 57.826 │ 257.279 │  78.059 │ 310.597 │ 167.247 │  53.232 │ 151.937 │  20.409 │  459.54 │ 140.854 │  67.518 │
│ 2022-01-12 │  174.01 │  137.47 │ missing │  95.933 │ 120.644 │  79.338 │ 374.417 │ 163.032 │ 160.687 │ 57.912 │ 251.002 │  77.609 │ 313.842 │ 167.065 │  53.194 │ 152.272 │  22.158 │ 464.164 │ 140.111 │  67.319 │
│ 2022-01-13 │ 170.699 │  132.74 │ missing │  95.858 │ 120.142 │  79.509 │  372.09 │ 162.043 │ 160.487 │ 58.256 │ 244.872 │  77.724 │ 300.559 │ 167.334 │  52.152 │ 151.582 │  21.081 │ 458.001 │ 142.094 │  66.836 │
│ 2022-01-14 │ 171.572 │  136.88 │ missing │ missing │ 122.189 │  80.052 │ 357.687 │ 161.159 │ 150.623 │ 58.725 │ 239.429 │  77.781 │ 305.884 │ 168.736 │  51.598 │ 153.038 │  21.535 │ 459.236 │ 141.694 │   68.01 │
│ 2022-01-18 │  168.33 │  131.93 │ missing │  92.159 │ 122.587 │  79.843 │  352.61 │ 160.449 │ 144.307 │ 58.256 │ 242.322 │  77.934 │ 298.439 │ 167.122 │  50.809 │ 150.088 │  20.251 │ 451.691 │ 139.213 │  69.155 │
│ 2022-01-19 │ 164.791 │  128.27 │ missing │  92.822 │ 122.141 │  78.081 │  345.85 │ 159.949 │ 142.075 │ 58.352 │ 240.341 │  77.695 │ 299.109 │ 168.323 │  50.274 │ 155.135 │  19.717 │  453.19 │   140.6 │  69.183 │
│ 2022-01-20 │ 163.086 │  121.89 │ missing │  88.664 │ 121.706 │  76.242 │ 336.129 │ 158.672 │ 140.864 │ 58.113 │ 238.458 │  77.179 │ 297.404 │ 167.103 │  50.753 │ 155.973 │  18.254 │ 453.661 │ 137.943 │  69.334 │
│ 2022-01-21 │ 161.004 │  118.81 │ missing │  90.112 │ 120.246 │  74.729 │ 335.668 │ 158.308 │ 138.402 │ 57.826 │ 238.389 │  76.443 │ 291.911 │ 167.372 │   49.57 │  156.57 │  17.414 │ 451.868 │ 136.937 │  68.294 │
│ 2022-01-24 │ 160.221 │  116.53 │ missing │  94.719 │ 120.502 │  75.202 │ 349.812 │ 156.483 │ 138.278 │ 57.357 │   235.8 │  75.344 │ 292.246 │ 166.517 │  48.396 │ 155.299 │  17.898 │ 452.945 │ 136.947 │   68.88 │
│ 2022-01-25 │ 158.397 │  111.13 │ missing │  91.589 │ 125.628 │  70.701 │ 345.168 │ 160.958 │ 139.786 │ 57.223 │ 234.859 │  75.946 │ 284.476 │ 164.605 │  49.335 │ 153.604 │  18.017 │ 447.625 │ 133.967 │  70.905 │
│ 2022-01-26 │ 158.308 │  110.71 │ missing │  90.552 │ 125.723 │  69.312 │ 343.533 │ 161.678 │ 141.112 │ 57.013 │ 233.289 │   75.64 │ 292.582 │ 162.866 │  49.776 │ 152.266 │  17.958 │ 449.183 │   132.6 │  70.186 │
│ 2022-01-27 │ 157.842 │   102.6 │ missing │  89.786 │ 128.262 │  69.762 │ 342.716 │   163.8 │ 138.622 │  57.06 │ 232.171 │  77.017 │ 295.668 │ 162.713 │  50.495 │  153.21 │  18.155 │ 452.289 │ 132.688 │  71.085 │
│ 2022-01-28 │ 168.855 │  105.24 │ missing │  91.224 │ 123.752 │   71.47 │ 352.437 │ 164.952 │ 139.862 │ 58.199 │  240.39 │  77.323 │ 303.971 │ 165.883 │  51.404 │ 154.529 │  19.203 │ 456.659 │ 134.329 │  71.237 │
│ 2022-01-31 │ 173.267 │  114.25 │ missing │  92.757 │ 124.434 │  73.316 │  352.86 │ 165.432 │  141.76 │ 58.361 │ 240.675 │  77.877 │ 306.653 │   166.7 │  49.852 │  154.48 │  19.025 │ 463.038 │ 136.566 │   71.88 │
│ 2022-02-01 │ 173.098 │  116.78 │ missing │   93.85 │ 127.713 │  76.009 │ 354.514 │ 164.078 │ 144.193 │ 57.931 │ 243.509 │  78.298 │ 304.464 │ 165.566 │  50.212 │ 153.797 │  20.142 │ 458.962 │  137.64 │  76.488 │
│ 2022-02-02 │ 174.318 │  122.76 │ missing │  92.542 │   128.3 │  76.079 │  359.35 │ 165.893 │ 143.039 │ 58.524 │  246.01 │  78.384 │ 309.098 │ 168.573 │  50.959 │  156.55 │  20.893 │ 470.102 │ 137.582 │   76.29 │
│ 2022-02-03 │ 171.403 │  120.08 │ missing │   90.72 │ 127.154 │  76.296 │ 350.773 │ 165.883 │ 141.856 │ 58.935 │ 240.106 │  75.516 │ 297.058 │ 168.477 │  50.505 │ 158.033 │  20.211 │ 478.911 │ 137.718 │    75.4 │
│ 2022-02-04 │ 171.115 │   123.6 │ missing │  90.468 │ 128.746 │  76.832 │ 345.831 │ 164.798 │ missing │ 58.313 │ 237.615 │  75.086 │ 301.683 │  165.71 │  50.145 │  155.52 │  20.142 │ 473.424 │ 136.097 │  77.037 │
│ 2022-02-07 │ 170.391 │  123.67 │ missing │  91.168 │ 131.275 │  77.522 │   343.6 │ 164.251 │ 146.025 │ 58.926 │  238.87 │  74.149 │ 296.763 │ 165.057 │  50.344 │ 154.355 │  19.727 │ 473.943 │ 134.759 │  77.965 │
│ 2022-02-08 │ 173.537 │  128.23 │ missing │  92.925 │ 129.276 │  77.064 │ 347.533 │ 164.683 │ 148.772 │ 59.308 │   235.3 │  73.509 │ 300.322 │ 165.259 │  48.915 │ 154.009 │  18.837 │ 483.457 │ 134.788 │  75.949 │
│ 2022-02-09 │ 174.977 │  132.85 │ missing │  95.503 │ 130.555 │  77.018 │  350.35 │ 164.664 │ 149.392 │  58.39 │ 238.595 │  73.146 │  306.88 │ 165.182 │  48.698 │ 153.662 │  19.015 │ 488.053 │ 134.495 │  75.585 │
│ 2022-02-10 │ 170.847 │  125.77 │ missing │  93.868 │ 128.897 │  76.661 │ 341.427 │ 162.676 │ 148.772 │ 58.715 │ 235.035 │  73.175 │ 298.173 │ 161.752 │  47.875 │ 151.322 │  20.102 │ 476.902 │ missing │  74.858 │
│ 2022-02-11 │ 167.393 │  113.18 │ missing │  93.962 │ 131.522 │   75.14 │ 336.812 │ 161.035 │ 146.836 │ 57.673 │  231.21 │  73.251 │ 290.935 │ 161.954 │  48.045 │ 150.475 │  20.745 │ 468.486 │  132.19 │  76.743 │
│ 2022-02-14 │ 167.631 │  114.27 │ missing │  94.027 │ 129.494 │  74.962 │ 338.033 │ 159.008 │ 145.471 │ 58.046 │ 231.141 │  73.089 │ 290.895 │ 160.148 │  47.118 │ 150.908 │  20.241 │ 464.831 │ 130.842 │  75.566 │
│ 2022-02-15 │ 171.512 │  121.47 │ missing │  95.475 │ 128.546 │  78.314 │ 339.668 │  160.65 │ 147.599 │ 58.266 │ 240.153 │  74.369 │ 296.289 │ 159.437 │  47.108 │ 150.985 │  20.013 │ 468.584 │ 131.252 │  74.619 │
│ 2022-02-16 │ 171.274 │  117.69 │ missing │  93.084 │ 128.584 │  78.694 │  336.62 │ 160.554 │ 147.866 │ 58.256 │ 241.866 │  73.805 │ 295.943 │ 159.763 │  47.004 │ 152.131 │  19.944 │ missing │ 130.431 │  74.964 │
│ 2022-02-17 │ 167.631 │  112.37 │ missing │  92.149 │ 127.924 │  76.405 │ 334.553 │ 159.575 │  144.46 │ 59.423 │ 237.326 │  72.983 │ 287.278 │ 160.196 │  46.266 │ 153.874 │  20.181 │ 460.853 │ 135.657 │  74.849 │
│ 2022-02-18 │ 166.063 │  113.83 │ missing │   91.29 │ 127.742 │  71.927 │ 333.524 │ 157.865 │ 145.137 │ 59.825 │ 236.676 │  72.993 │ 284.511 │ 161.118 │  45.916 │ 153.951 │  20.191 │ missing │ 134.788 │  74.016 │
│ 2022-02-22 │ 163.105 │  115.65 │ missing │    84.6 │ 126.765 │   73.06 │ 304.005 │ 155.719 │  144.88 │ 59.576 │ 235.514 │  72.592 │ 284.303 │ 161.733 │ missing │ 152.054 │  19.747 │ 453.181 │ 133.284 │  73.155 │
│ 2022-02-23 │ 158.886 │  109.76 │ missing │  82.806 │ 129.781 │  71.896 │ 296.582 │ 155.797 │ 141.846 │ 58.916 │ 234.706 │  72.486 │ 276.942 │ 160.138 │  44.346 │ 150.157 │  22.385 │ 450.349 │ 131.916 │  73.452 │
│ 2022-02-24 │ 161.537 │  116.61 │ missing │  85.562 │ 129.111 │  71.811 │ 301.188 │  152.82 │ 137.897 │ 57.883 │ 239.404 │  70.259 │ 291.092 │ 157.352 │  43.485 │ 146.114 │  23.591 │ 446.694 │ 131.408 │  72.524 │
│ 2022-02-25 │ 163.631 │  121.06 │ missing │  89.533 │ 134.406 │  74.783 │ 304.466 │ 160.416 │ 141.159 │ 60.121 │ 247.057 │  72.945 │ 293.779 │ 161.762 │   45.15 │ 152.353 │  23.137 │ 466.154 │ 133.215 │  74.476 │
│ 2022-02-28 │ 163.899 │  123.34 │ missing │   90.29 │ 137.872 │  74.116 │ 303.678 │ 159.034 │ 135.273 │ 59.538 │  246.17 │  73.194 │ 295.242 │ 157.304 │  44.412 │  150.09 │  22.682 │ 466.271 │ 132.024 │  75.031 │
│ 2022-03-01 │ 161.993 │  113.83 │ missing │  90.795 │ 143.348 │  71.648 │ 307.928 │ 158.483 │  130.17 │  59.28 │ 245.727 │  72.964 │ 291.447 │ 155.892 │  43.286 │ 147.606 │  23.492 │ 466.643 │ 132.834 │  75.748 │
│ 2022-03-02 │ 165.328 │  118.28 │ missing │  94.214 │  147.58 │  73.068 │ 314.774 │ 160.454 │ 132.869 │  59.72 │ 250.327 │   73.28 │ 296.625 │ 158.053 │  45.131 │ 148.068 │  24.896 │ 475.589 │   133.0 │  77.049 │
│ 2022-03-03 │ 165.001 │  111.98 │ missing │ 102.903 │ 149.572 │  71.741 │  311.88 │ 162.812 │ 131.925 │ 59.758 │ 254.729 │  73.738 │ 292.406 │ 157.884 │  45.254 │ 148.617 │  24.599 │ 476.775 │ 136.058 │  77.537 │
│ 2022-03-04 │ 161.963 │  108.41 │ missing │  99.128 │ 151.898 │  69.173 │ 311.784 │ 163.779 │ 128.214 │ 59.854 │ 258.895 │  74.388 │ 286.418 │ 160.282 │   46.03 │ 149.368 │  26.171 │ 488.592 │ 139.506 │  80.455 │
│ 2022-03-07 │ 158.122 │  102.95 │ missing │   97.83 │ 155.144 │  66.314 │ 310.351 │ 166.417 │ 123.263 │ 58.428 │ 257.684 │  74.293 │ 275.598 │ 157.091 │  45.396 │ 147.154 │  26.418 │ 477.049 │ 138.383 │  83.354 │
│ 2022-03-08 │ 156.276 │  105.53 │ missing │ missing │ 163.273 │  68.466 │ 304.553 │ 163.044 │ 122.395 │ 56.113 │ 255.999 │  73.547 │ 272.574 │ 152.662 │  44.885 │ 141.329 │  25.835 │  463.91 │  135.52 │  83.986 │
│ 2022-03-09 │ 161.745 │  111.05 │ missing │  95.055 │ 159.194 │  70.874 │ 306.836 │ 163.663 │ 127.298 │   56.4 │ 258.816 │   74.35 │ 285.074 │ 152.208 │  46.124 │ 143.235 │  26.368 │ 475.775 │ 136.224 │  79.212 │
│ 2022-03-10 │ 157.348 │  106.46 │ missing │  92.177 │  163.55 │  70.936 │ 307.552 │ missing │ 125.791 │ 55.367 │ 261.997 │  74.446 │ 282.199 │ 149.413 │   46.55 │ 139.547 │  27.801 │ 481.527 │  139.32 │  81.671 │
│ 2022-03-11 │ 153.586 │  104.29 │ missing │  88.375 │ 163.627 │  71.674 │ 306.439 │ 163.653 │ 122.958 │ 55.405 │ 262.273 │  74.799 │ 276.744 │ 148.659 │  47.562 │ 137.891 │  27.208 │  474.53 │ 138.773 │   81.25 │
│ 2022-03-14 │ 149.506 │  102.25 │ missing │  88.421 │ 159.625 │  71.806 │ 307.958 │ 165.914 │ 124.179 │ 56.427 │ 264.932 │  75.002 │ 273.157 │ 150.748 │  49.436 │ missing │  25.261 │ 479.493 │ 140.707 │  78.341 │
│ 2022-03-15 │ 153.943 │  109.33 │ missing │  92.551 │ 151.544 │  71.728 │ 317.805 │ 170.215 │ 126.382 │ 57.468 │ 271.295 │  75.831 │  283.74 │ missing │  49.398 │ 144.679 │  25.192 │  489.31 │ 142.397 │  73.882 │
│ 2022-03-16 │  158.41 │  115.37 │ missing │  92.345 │ 150.998 │  73.553 │ 320.098 │ 168.649 │  132.03 │ 57.314 │  272.26 │   75.33 │ 290.894 │ 154.432 │   50.07 │ 144.188 │  25.202 │ 489.654 │ 141.977 │  73.605 │
│ 2022-03-17 │ 159.432 │  111.69 │ missing │  92.766 │ 153.612 │  74.198 │  325.37 │ 170.852 │ 133.699 │ 57.921 │ 281.193 │   76.12 │ 291.714 │ 155.631 │  51.319 │ 144.641 │  26.606 │ 498.263 │ 142.193 │  75.566 │
│ 2022-03-18 │ 162.767 │  113.46 │ missing │  95.148 │ 154.847 │  74.244 │ 329.607 │ 168.958 │ 133.652 │ 57.931 │  283.29 │  76.284 │ 296.862 │  157.42 │  51.574 │ 144.564 │   26.24 │ 497.378 │ 142.614 │   75.27 │
│ 2022-03-21 │ 164.157 │  115.92 │ missing │  92.532 │ 157.633 │  73.646 │ 318.608 │ 169.915 │ 133.222 │ 58.394 │  285.26 │  76.236 │ 295.607 │ 157.198 │  51.271 │ 145.112 │  26.566 │ 498.892 │ 141.428 │  78.647 │
│ 2022-03-22 │ 167.572 │  114.78 │ missing │  92.775 │ 157.107 │  73.708 │ 318.956 │ 169.113 │ 136.056 │ 58.606 │  280.71 │  76.468 │ 300.449 │ 158.919 │  50.183 │ 146.229 │  26.447 │ 496.592 │ 141.006 │  78.303 │
│ 2022-03-23 │ 168.951 │  113.92 │ missing │   91.05 │ 158.801 │  72.776 │ 306.691 │ 168.475 │ 133.346 │  58.22 │ 279.893 │  76.882 │ 295.934 │ 158.087 │  49.379 │ 145.209 │  28.068 │ 494.538 │ 139.192 │  79.537 │
│ 2022-03-24 │ 172.783 │  120.53 │ missing │  91.163 │ 159.223 │  73.103 │ 305.462 │ 169.345 │ 134.214 │ 58.779 │  283.34 │  77.538 │ 300.489 │ 159.045 │  49.757 │ 145.459 │   28.76 │ 504.592 │ 140.055 │  79.776 │
│ 2022-03-25 │ 173.428 │  119.67 │ missing │  90.777 │ 162.105 │  73.025 │ 300.529 │ 170.968 │ 135.388 │ 59.309 │  284.65 │  78.435 │ 300.074 │ 159.789 │  49.937 │ 147.144 │  31.142 │ 504.169 │ 140.663 │  81.517 │
│ 2022-03-28 │ 174.302 │  120.24 │ missing │  91.182 │  159.27 │  71.456 │ 304.011 │ 171.848 │ 134.386 │ 59.685 │  287.25 │  78.309 │  307.01 │ 160.263 │   50.41 │ 148.155 │  30.836 │ 504.336 │ 143.164 │  79.231 │
│ 2022-03-29 │ 177.637 │  123.23 │ missing │  94.972 │ 157.327 │  73.514 │ 307.329 │ 171.761 │ 134.682 │ 59.917 │ 284.029 │  78.656 │ 311.664 │ 162.642 │  49.899 │ 149.676 │  30.549 │ 501.909 │  144.37 │   78.81 │
│ 2022-03-30 │ 176.456 │  119.22 │ missing │  90.899 │ 158.438 │   73.46 │ 298.381 │ 173.549 │ 134.071 │ 59.965 │ 285.506 │  79.457 │ 310.133 │ 162.419 │  49.615 │ 148.646 │  30.331 │ 511.825 │ 146.958 │  80.159 │
│ 2022-03-31 │ 173.319 │  109.34 │ missing │  85.687 │   155.9 │  71.068 │  289.55 │ 171.268 │ 130.046 │ 59.762 │  282.04 │  79.119 │ 304.649 │ 161.859 │  48.982 │ 147.115 │  30.025 │ 501.162 │ 146.027 │   79.02 │
│ 2022-04-01 │ 173.021 │  108.19 │ missing │  85.196 │ 157.231 │  71.837 │ 292.026 │ 172.196 │ 129.082 │ 60.601 │ 288.244 │  80.537 │ 305.746 │  164.16 │  48.792 │  149.32 │  31.181 │ 503.737 │ 148.076 │  79.527 │
│ 2022-04-04 │ 177.121 │  110.53 │ missing │  88.929 │ 157.375 │  71.472 │ 295.596 │ 170.534 │ 129.654 │ 60.283 │ 287.013 │  80.508 │  311.23 │ 163.735 │  48.196 │ 148.347 │  30.766 │ 501.211 │ 148.106 │  79.566 │
│ 2022-04-05 │ 173.766 │  106.82 │ missing │ missing │ 156.408 │   69.98 │ 294.899 │ 171.635 │ 128.146 │ 60.215 │ 288.067 │   80.73 │ 307.188 │ 163.909 │   48.48 │ 148.867 │  30.737 │ 508.817 │ 148.527 │  79.154 │
│ 2022-04-06 │ 170.559 │  103.67 │ missing │  85.837 │ 157.796 │  69.833 │ 288.786 │   176.1 │ 126.368 │ 60.823 │ 301.215 │  81.935 │ 295.943 │ 166.703 │  50.022 │ 150.995 │  31.152 │ 522.566 │ 151.979 │  80.034 │
│ 2022-04-07 │ 170.867 │  103.72 │ missing │  86.789 │ 159.989 │  69.483 │ 292.858 │ 175.646 │ 125.983 │  61.15 │ 303.766 │    83.7 │ 297.791 │ 166.858 │  52.189 │  152.95 │  31.004 │ 527.676 │ 153.499 │  81.374 │
│ 2022-04-08 │ 168.832 │   101.0 │ missing │  88.005 │ 162.698 │  69.701 │ 300.945 │ missing │  128.29 │ 61.526 │ 306.977 │  84.548 │ 293.443 │ 167.419 │  52.198 │ missing │  32.219 │  536.53 │ 154.352 │  83.087 │
│ 2022-04-11 │ 164.524 │   97.37 │ missing │   88.76 │ 158.514 │  69.646 │ 296.698 │  173.79 │ 127.819 │ 61.507 │ 304.288 │  83.536 │ 281.873 │ 166.906 │  51.025 │ 153.556 │  31.557 │ 528.157 │ 151.293 │  80.226 │
│ 2022-04-12 │  166.42 │    95.1 │ missing │  87.883 │ 161.817 │  69.903 │ 296.282 │ 173.848 │ 126.416 │  62.23 │ 303.421 │  82.571 │ 278.711 │ 167.583 │  50.249 │ 153.094 │  31.379 │ 524.492 │ 150.253 │    81.9 │
│ 2022-04-13 │  169.14 │   97.74 │ missing │  89.768 │ 164.364 │  70.485 │ 300.277 │ 174.583 │ 122.341 │ 62.394 │ 298.093 │  83.054 │ 284.204 │ 167.293 │   50.24 │ 153.527 │  32.298 │ 527.725 │ missing │  83.058 │
│ 2022-04-14 │ 164.068 │   93.06 │ missing │  88.458 │ 164.287 │  70.547 │  294.57 │ 173.848 │ 121.207 │ 62.673 │ 297.295 │  83.806 │ 276.507 │ 166.229 │  50.259 │  152.67 │  32.012 │ 525.583 │ 154.028 │  84.034 │
│ 2022-04-18 │ 163.849 │   93.89 │ missing │  88.119 │  166.49 │  70.213 │ 290.401 │ 171.683 │ 123.456 │ 62.114 │ 294.301 │  82.996 │ 277.189 │ 164.798 │  49.048 │ 151.217 │  33.563 │ 524.856 │ 152.852 │  84.723 │
│ 2022-04-19 │ 166.162 │   96.93 │ missing │  90.089 │ 164.517 │  71.378 │ 297.743 │ 176.921 │ 126.012 │ 62.722 │ 292.519 │  82.726 │ 281.912 │ 167.196 │  47.477 │ 153.479 │  32.259 │ 528.413 │ 154.587 │  83.967 │
│ 2022-04-20 │ 165.993 │   94.02 │ missing │  88.986 │ 165.187 │   70.99 │ 304.843 │ 177.704 │ 126.454 │ 63.579 │ 288.491 │  83.372 │ 282.959 │ 169.682 │   47.07 │ 157.561 │  32.585 │ 536.579 │ 156.529 │  84.158 │
│ 2022-04-21 │ 165.189 │   89.85 │ missing │  88.269 │ 157.576 │  71.239 │ 300.219 │ 177.192 │ 125.474 │  63.82 │ 285.231 │   83.15 │ 277.475 │ 169.072 │  46.465 │ 157.438 │   31.29 │ 528.157 │ 156.764 │  83.268 │
│ 2022-04-22 │ 160.594 │   88.14 │ missing │  86.045 │   154.1 │   69.18 │ 290.304 │ 175.433 │ missing │ 62.895 │ 274.515 │  81.569 │ 270.776 │ 166.471 │  45.538 │ 156.122 │  29.995 │ 511.943 │ 153.813 │  81.451 │
│ 2022-04-25 │ 161.676 │   90.69 │ missing │  87.732 │ 150.788 │  69.809 │ 294.976 │ 179.753 │ 121.832 │  63.56 │ 280.887 │  82.388 │ 277.386 │ 168.009 │  46.313 │  157.38 │  29.916 │ 515.215 │ 153.891 │  78.705 │
│ 2022-04-26 │ 155.641 │   85.16 │ missing │  87.506 │ 149.868 │  62.594 │ 290.159 │ 178.467 │ 118.228 │ 62.702 │ 278.553 │  81.463 │ 267.011 │ 167.583 │  46.389 │ 154.708 │  29.155 │ 504.906 │ 152.283 │  78.733 │
│ 2022-04-27 │ 155.412 │   84.91 │ missing │  87.694 │ 149.591 │  60.745 │ 291.746 │ 175.974 │  116.69 │ 63.194 │ 280.779 │  81.395 │ 279.857 │ 169.082 │  47.061 │ missing │   30.47 │ 504.936 │ 151.244 │  80.982 │
│ 2022-04-28 │  162.43 │   89.64 │ missing │  88.213 │ 154.905 │  60.373 │ 301.574 │ 177.288 │ 118.535 │ 63.801 │ 292.775 │  85.416 │ 286.191 │ 171.645 │  47.789 │ 158.213 │  30.628 │ 515.362 │ 153.175 │  83.431 │
│ 2022-04-29 │ 156.484 │   85.52 │ missing │  84.772 │ 150.002 │  57.903 │ 290.585 │ 174.389 │  114.71 │ 62.278 │ 287.713 │  85.522 │ 274.224 │ 166.046 │  46.427 │ 155.444 │   29.59 │ 499.766 │ 150.018 │  81.565 │
│ 2022-05-02 │ 156.792 │   89.84 │ missing │   88.43 │ 152.951 │  58.679 │  296.94 │  172.63 │ missing │  61.15 │ 285.181 │  84.519 │ 281.092 │ 162.226 │  45.736 │ 153.343 │  29.501 │ 492.494 │ 149.027 │  82.675 │
│ 2022-05-03 │ 158.301 │   91.13 │ missing │  89.221 │ 155.575 │  60.318 │ 294.996 │ 172.292 │ 118.237 │ 60.803 │ 283.714 │  83.989 │ 278.434 │ 162.448 │  46.635 │ 151.242 │  30.658 │ 490.991 │ 149.547 │  84.378 │
│ 2022-05-04 │ 164.792 │   99.42 │ missing │  92.181 │ 160.458 │   62.47 │ 305.008 │ 174.138 │ 122.149 │ 62.683 │ 290.441 │  85.358 │ 286.536 │ 168.125 │  46.985 │ 152.355 │  31.666 │ 498.853 │ 151.616 │  87.737 │
│ 2022-05-05 │ 155.611 │   93.87 │ missing │  86.921 │ 159.184 │  61.041 │ 289.337 │ 170.814 │ 119.093 │ 62.182 │ 287.949 │  84.866 │ 274.056 │ 164.769 │   45.84 │ 149.548 │  30.341 │ 486.175 │ 150.317 │  86.407 │
│ 2022-05-06 │ 156.346 │   95.34 │ missing │  86.167 │ 163.426 │  60.761 │ 284.694 │ 170.437 │   118.9 │ 62.403 │  292.41 │  85.233 │ 271.468 │ 164.789 │  46.399 │ 151.039 │  30.183 │ 490.991 │ 147.188 │  87.727 │
│ 2022-05-09 │ 151.157 │   86.36 │ missing │  85.856 │ 152.473 │  56.676 │ 287.325 │ 171.365 │ missing │ 62.278 │ 284.856 │   84.51 │ 261.438 │ 166.036 │   46.02 │ 150.661 │  26.388 │ 478.019 │  148.91 │  80.809 │
│ 2022-05-10 │ 153.593 │   88.73 │ missing │   83.65 │ 153.938 │   56.94 │ 281.647 │ 171.133 │ missing │   61.7 │  281.38 │  84.674 │   266.3 │ 165.833 │  46.824 │ 149.867 │  26.358 │ 479.581 │ 146.814 │  81.345 │
│ 2022-05-11 │  145.63 │   87.92 │ missing │  78.984 │ 156.216 │  56.264 │ 273.715 │ 170.205 │ 113.538 │ 61.989 │ 282.355 │  86.004 │ 257.456 │  165.03 │  46.787 │ 147.756 │  27.199 │ 477.753 │ 145.278 │  83.039 │
│ 2022-05-12 │ 141.714 │   87.06 │ missing │   82.35 │   157.7 │  56.916 │ 280.225 │ 171.886 │ 113.442 │ 62.182 │ 287.388 │  87.586 │ 252.318 │ 164.779 │  48.065 │ 147.156 │  26.754 │  470.53 │ 145.141 │  83.416 │
│ 2022-05-13 │ 146.237 │   95.12 │ missing │  81.407 │ 160.726 │  58.291 │ 286.358 │ 170.901 │ 114.451 │ 63.348 │ 288.188 │  87.181 │ 258.019 │ 167.989 │  47.616 │ 148.734 │  26.764 │ 477.016 │ 145.701 │   85.89 │
│ 2022-05-16 │ 144.676 │   94.24 │ missing │  79.908 │ 165.647 │  57.965 │ 286.319 │ 172.089 │ 113.653 │ 63.579 │ 295.847 │  89.023 │ 258.395 │ missing │  48.332 │ 150.187 │  27.287 │  480.77 │ 145.859 │   87.91 │
│ 2022-05-17 │ 148.354 │  102.47 │ missing │  79.654 │ 166.624 │   59.34 │ 291.117 │ 172.804 │  117.42 │ 63.406 │ 297.843 │  89.678 │ 263.651 │ 168.705 │  48.971 │ 149.761 │   28.73 │ 484.023 │ 129.266 │  89.032 │
│ 2022-05-18 │ 139.984 │   96.28 │ missing │  71.283 │ 162.231 │  58.408 │ 275.862 │ 169.596 │ 115.412 │ 58.991 │ 291.706 │   88.81 │ 251.648 │ 158.252 │  48.074 │ 140.427 │  27.455 │ 463.238 │ 120.488 │   87.62 │
│ 2022-05-19 │ 136.535 │ missing │ missing │  69.115 │ 161.073 │  58.827 │ 278.358 │ 168.089 │ 113.701 │ 57.835 │ 282.891 │  88.801 │ 250.717 │ 155.882 │  48.313 │ 137.193 │  27.791 │ 470.285 │ 117.181 │  88.094 │
│ 2022-05-20 │ 136.773 │ missing │ missing │   68.21 │   162.0 │  58.446 │ 277.806 │ 171.026 │ 112.769 │ 58.779 │ 295.323 │  90.209 │ 250.142 │ 156.859 │  50.049 │ 137.281 │  27.851 │ 477.341 │ 117.309 │   88.79 │
│ 2022-05-23 │ 142.261 │ missing │ missing │  68.427 │ 165.764 │  58.609 │ 276.684 │ 174.518 │ 119.746 │ 60.591 │ 299.029 │  90.479 │ 258.155 │ 160.137 │   50.44 │ 140.437 │  28.898 │ 483.581 │ 120.655 │  90.752 │
│ 2022-05-24 │ 139.527 │ missing │ missing │  69.256 │ 166.653 │  57.879 │ 278.513 │ 176.424 │ 121.438 │ 61.709 │ 302.349 │   91.26 │ 257.134 │ 162.284 │  50.945 │ 142.935 │  28.651 │ 488.966 │ 122.161 │  91.245 │
│ 2022-05-25 │ 139.686 │ missing │ missing │  75.468 │ 169.327 │  57.887 │ 283.978 │ 174.693 │ 122.283 │ 61.758 │ 303.386 │  90.401 │ 260.007 │ 163.396 │  51.231 │ 140.592 │  32.348 │ 489.487 │ 121.413 │  93.082 │
│ 2022-05-26 │ 142.927 │ missing │ missing │  77.344 │ 170.466 │  59.813 │ 292.916 │ 174.537 │ 124.398 │ 61.979 │  309.76 │  89.013 │ 263.354 │ 164.498 │  51.499 │ 141.821 │  34.305 │ 493.556 │ 124.001 │   93.41 │
│ 2022-05-27 │ 148.752 │ missing │ missing │  79.173 │ 172.097 │  61.173 │ 298.381 │ 176.123 │ 126.156 │ 62.346 │ 319.662 │  89.755 │ 270.624 │ 166.104 │  51.422 │  143.99 │  35.747 │ 498.351 │ 126.442 │  94.328 │
│ 2022-05-31 │ 147.957 │ missing │ missing │  77.354 │ 168.603 │  60.808 │ 292.858 │ 174.605 │ 127.079 │ 61.093 │ 309.741 │  88.743 │ 269.267 │ 162.216 │  50.592 │ 143.177 │  33.553 │   488.2 │  126.59 │  92.792 │
│ 2022-06-01 │ 147.827 │ missing │ missing │  75.487 │ 170.205 │  60.209 │ 289.295 │ 172.835 │ 124.849 │ 60.794 │ 307.408 │  87.885 │ 269.812 │ 160.998 │  49.953 │ 141.008 │  34.828 │ 484.043 │  123.46 │ missing │
│ 2022-06-02 │ 150.312 │ missing │ missing │  76.599 │ 169.896 │  60.582 │ 297.745 │ 172.291 │ 126.858 │  61.43 │ 298.861 │  86.785 │ 271.951 │ 162.303 │  50.249 │ 142.528 │  34.591 │ 483.758 │ 125.487 │  94.406 │
│ 2022-06-03 │ 144.517 │ missing │ missing │  75.779 │ 171.441 │  59.782 │ 296.976 │ 171.581 │ 125.089 │ 60.697 │  298.09 │  86.699 │ 267.435 │ 160.521 │  50.745 │  141.25 │  34.453 │ 477.223 │ 123.332 │  95.778 │
│ 2022-06-06 │ 145.273 │ missing │ missing │  74.724 │ 170.697 │  59.806 │ 295.817 │ 171.561 │ 124.676 │ 60.601 │  299.78 │  86.631 │ 266.177 │ 161.193 │  50.802 │ 140.698 │  35.293 │ 481.714 │ 122.889 │  95.537 │
│ 2022-06-07 │ 147.827 │ missing │ missing │  73.856 │  173.95 │  60.582 │ 293.754 │ 173.448 │ 125.003 │ 60.967 │ 308.416 │  87.248 │ 269.891 │ 162.186 │   51.47 │ 142.267 │  36.588 │ 488.514 │ 121.413 │  99.915 │
│ 2022-06-08 │ 147.082 │ missing │ missing │  72.697 │ 174.848 │   59.93 │ 289.626 │ 172.417 │ 123.014 │  60.62 │  309.79 │  86.284 │ 267.821 │ 161.378 │  51.003 │ 140.495 │  35.579 │ 485.006 │  120.36 │ 101.094 │
│ 2022-06-09 │ 141.793 │ missing │ missing │  70.632 │ 171.363 │  58.081 │ 291.894 │ 168.945 │ 120.428 │  59.57 │ 299.671 │  84.857 │ 262.255 │ 158.505 │  49.391 │ 137.958 │  34.927 │ 480.977 │   119.1 │   98.91 │
│ 2022-06-10 │ 136.316 │ missing │ missing │  68.436 │ 169.317 │  55.324 │ 281.556 │ 167.817 │ 114.893 │ 59.194 │ 293.505 │  84.066 │ 250.568 │ 158.252 │  47.664 │ 137.435 │  34.038 │  476.26 │ 119.769 │  97.102 │
│ 2022-06-13 │ 131.097 │ missing │ missing │   66.27 │ 161.527 │  52.598 │ 275.638 │ 166.125 │ 111.472 │ 59.126 │ missing │  81.964 │ 239.941 │ 155.545 │  45.699 │ 133.756 │  32.021 │ 461.587 │ 117.516 │  92.647 │
│ 2022-06-14 │ 131.972 │ missing │ missing │  67.358 │ 161.739 │  52.854 │ 271.267 │ 163.576 │ 109.617 │ 57.505 │ 287.358 │  82.149 │ 242.149 │  152.02 │  45.709 │ 129.583 │   29.62 │ 453.775 │ 117.565 │  92.888 │
│ 2022-06-15 │ 134.626 │ missing │ missing │  68.474 │ 158.563 │   53.67 │ 272.299 │ 165.327 │ 110.914 │ 57.932 │ 289.532 │  82.275 │  249.35 │ 153.646 │  46.271 │ 128.296 │  30.331 │  456.31 │ 117.486 │  91.719 │
│ 2022-06-16 │ 129.288 │ missing │ missing │  65.344 │ 150.088 │   50.71 │ 266.196 │ 165.415 │ 109.011 │ 57.349 │  284.67 │  82.528 │ 242.625 │ 152.906 │  45.289 │  129.08 │  28.839 │ 449.811 │ 118.707 │  88.336 │
│ 2022-06-17 │ 130.779 │ missing │ missing │  67.282 │ 143.234 │  51.262 │ 263.538 │ 164.812 │ 108.627 │ 57.699 │ missing │  82.265 │ 245.279 │ 152.935 │  44.383 │  128.15 │  25.983 │ 445.836 │ 116.414 │  83.242 │
│ 2022-06-21 │ 135.063 │   83.79 │ missing │  67.243 │ 149.229 │  51.068 │ 262.049 │ 168.264 │ missing │ 58.932 │ 293.831 │   85.58 │ 251.311 │  156.49 │   45.89 │ 132.033 │  26.606 │ 473.707 │ 120.232 │  88.423 │
│ 2022-06-22 │ 134.547 │   83.75 │ missing │   66.68 │ 142.742 │  50.128 │ 261.835 │ 170.919 │ 110.693 │ 59.369 │  303.07 │  86.679 │ 250.707 │ 157.775 │  46.806 │ 134.095 │  25.904 │ 482.939 │ 118.775 │  84.924 │
│ 2022-06-23 │ 137.449 │   82.43 │ missing │  68.026 │  137.49 │  49.763 │ 268.104 │ 174.732 │ 109.482 │ 60.078 │ 309.029 │   89.44 │ 256.382 │  159.79 │  47.779 │ 137.774 │  24.056 │ 492.929 │ 121.659 │  82.362 │
│ 2022-06-24 │ 140.819 │   87.08 │ missing │   71.27 │ 139.749 │  52.101 │ 275.482 │  177.29 │ missing │ 61.204 │ 321.777 │  90.539 │ 265.137 │ 161.767 │  49.209 │ 139.759 │  25.983 │ 488.817 │ 121.757 │  83.996 │
│ 2022-06-27 │ 140.819 │   86.16 │ missing │  68.837 │ 142.452 │  51.875 │  275.18 │ 177.124 │ 111.846 │ 61.078 │ 323.407 │  91.783 │ 262.354 │ 161.981 │  49.486 │ 138.694 │  26.793 │ 498.699 │ 122.151 │  86.054 │
│ 2022-06-28 │ 136.624 │   80.78 │ missing │  65.698 │  144.74 │   51.23 │ 262.974 │ 172.086 │ 111.308 │ 60.466 │ 313.871 │  89.333 │ 254.025 │ 159.703 │  48.322 │ 136.438 │  27.327 │  501.44 │ 120.429 │  88.442 │
│ 2022-06-29 │ 138.404 │   77.99 │ missing │  64.075 │ 141.883 │  49.527 │ 266.595 │ 172.135 │ 110.808 │ 60.903 │ 319.188 │  89.936 │ 257.768 │ 162.351 │  48.589 │ 137.678 │  26.378 │  508.61 │ 119.986 │  85.175 │
│ 2022-06-30 │ 135.908 │   76.47 │ missing │ missing │ 139.759 │  49.511 │ 266.984 │ 172.641 │ 108.223 │ 61.078 │ 320.403 │  88.633 │ 254.371 │ 162.283 │  50.011 │ 139.217 │  24.461 │ 506.559 │ 119.651 │  82.778 │
│ 2022-07-01 │ 138.105 │   73.67 │ missing │  63.713 │ 141.429 │   49.41 │ 271.666 │ 174.596 │ 109.607 │ 62.505 │ 320.878 │  89.848 │ 257.095 │ 164.942 │  49.896 │ 141.463 │  25.084 │ 510.277 │ 120.685 │  84.624 │
│ 2022-07-05 │  140.72 │    75.2 │ missing │  66.776 │ 137.712 │  48.236 │ 276.193 │ 173.254 │  109.19 │ 61.437 │ 323.318 │  90.062 │ 260.334 │ 164.572 │  49.257 │ 140.098 │  23.898 │ 498.284 │ 122.279 │  81.976 │
│ 2022-07-06 │ 142.072 │   75.35 │ missing │  65.383 │ 135.898 │  47.878 │ 276.047 │ 173.409 │ 108.482 │ 61.563 │ 326.253 │  90.539 │ 263.661 │ 166.217 │  50.316 │ 141.405 │  23.749 │ 508.196 │ 123.145 │  80.497 │
│ 2022-07-07 │ 145.481 │    79.3 │ missing │  67.644 │ 138.543 │   48.99 │ 279.074 │ 173.604 │ 111.226 │ 61.078 │ 324.079 │  90.422 │  265.83 │ 165.886 │  50.955 │ 141.357 │  25.904 │ 507.298 │ 123.332 │  83.068 │
│ 2022-07-08 │ 146.167 │   79.35 │ missing │  67.911 │ 137.819 │  49.185 │  278.86 │  173.39 │ 110.877 │ 61.301 │  326.57 │  90.198 │ 265.098 │ 167.366 │  50.716 │ 140.408 │  25.321 │  511.49 │ 123.411 │  83.203 │
│ 2022-07-11 │  144.01 │   76.95 │ missing │  66.709 │ 136.602 │  48.143 │ 278.782 │ 173.458 │ 109.423 │ 61.107 │ 327.162 │  91.676 │ 261.978 │ 165.993 │  50.449 │ 141.395 │  26.022 │ missing │  123.46 │  82.778 │
│ 2022-07-12 │ 144.994 │   76.36 │ missing │  67.196 │ 134.102 │  49.006 │ 277.546 │ 171.026 │  109.53 │ 60.845 │ 319.771 │  90.995 │ 251.241 │ 165.049 │  49.639 │ 140.146 │  26.072 │ missing │ 123.086 │  81.676 │
│ 2022-07-13 │ 144.626 │   77.52 │ missing │  68.026 │ 133.204 │   48.22 │ 279.551 │ 170.628 │ 108.502 │ 60.563 │ 318.654 │  91.161 │ 250.301 │ 165.633 │    49.4 │ 141.066 │  26.803 │ 494.339 │ 123.381 │  82.005 │
│ 2022-07-14 │ 147.589 │    78.6 │ missing │  67.883 │ 131.225 │  47.505 │  281.79 │ 170.861 │ 104.711 │ 60.369 │ 323.032 │  91.268 │ 251.648 │  166.49 │  49.019 │  140.65 │   26.24 │ 495.513 │ 125.792 │  80.361 │
│ 2022-07-15 │ 149.279 │   81.11 │ missing │  69.152 │ 132.876 │  48.881 │ 284.642 │ 173.341 │  109.51 │  60.68 │ 327.686 │  92.318 │ 254.262 │ 166.626 │  49.362 │ 140.456 │  26.694 │ 522.457 │ 127.023 │  81.715 │
│ 2022-07-18 │ 146.197 │   81.43 │ missing │  69.982 │ 134.739 │  49.519 │ 285.265 │ 169.451 │ 108.385 │ 59.854 │ 317.972 │  89.771 │ 251.816 │ 163.841 │  48.408 │ 138.752 │  27.505 │  512.22 │ 126.727 │  83.222 │
│ 2022-07-19 │ 150.104 │   85.88 │ missing │  72.492 │ 139.595 │  51.899 │ 291.865 │  166.98 │ 111.071 │ 60.709 │  322.35 │   89.79 │ 257.045 │ 165.594 │  48.999 │ 139.459 │  28.058 │ 526.106 │ 127.505 │   85.32 │
│ 2022-07-20 │ 152.132 │   89.43 │ missing │  74.543 │ 141.438 │  52.793 │ 294.269 │ 166.027 │ 111.052 │ 59.709 │ 318.229 │  87.155 │ 259.759 │ 163.841 │  48.475 │ 137.048 │  29.966 │ 512.318 │ 128.568 │  86.257 │
│ 2022-07-21 │ 154.428 │   91.09 │ missing │  74.619 │ 140.357 │  52.979 │ 296.898 │ 166.611 │ 111.808 │ 59.573 │ 323.062 │  87.632 │ 262.305 │ 164.085 │  48.761 │ 137.178 │  30.065 │ 515.267 │ 130.447 │  84.817 │
│ 2022-07-22 │ 153.175 │    88.1 │ missing │  73.284 │ 139.189 │  53.026 │ 298.445 │ 167.399 │ 111.265 │ 59.796 │  324.87 │  87.603 │ 257.867 │ 165.156 │ missing │  139.37 │  29.373 │ 514.232 │ 130.113 │   84.17 │
│ 2022-07-25 │ 152.042 │   87.54 │ missing │  72.367 │  143.33 │  53.158 │ 298.017 │ 167.729 │ 111.711 │ 60.379 │ 327.637 │  88.011 │ 256.352 │ 165.389 │  49.381 │ 140.316 │  31.458 │ 522.181 │ 129.926 │  86.973 │
│ 2022-07-26 │   150.7 │   85.25 │ missing │  68.713 │ 142.211 │  55.608 │ 290.259 │ 168.916 │ 109.966 │ 61.369 │ 327.647 │   88.75 │ 249.488 │ 167.317 │  49.887 │ 140.588 │  32.713 │ 524.272 │ 120.045 │  86.634 │
│ 2022-07-27 │ 155.859 │   89.82 │ missing │ missing │ 144.083 │  55.662 │  290.97 │ 168.449 │  111.73 │ 61.175 │ 325.058 │  88.691 │ 266.167 │ 167.084 │  49.553 │ 141.924 │  33.296 │  527.25 │ 124.582 │   88.51 │
│ 2022-07-28 │ 156.416 │   91.67 │ missing │  74.419 │ 145.174 │  56.875 │  291.67 │ 169.422 │ 111.313 │ 62.194 │ 326.896 │  87.437 │ 273.764 │ 170.248 │  48.755 │ 144.282 │  31.903 │ 534.035 │ 127.692 │  89.544 │
│ 2022-07-29 │ 161.545 │   94.47 │ missing │  73.465 │   158.1 │  57.474 │ 292.946 │ 169.733 │ 111.847 │ 62.301 │ 325.799 │  86.854 │ 278.052 │ 170.365 │  48.553 │ 135.365 │ missing │ 534.874 │ 129.955 │   93.69 │
│ 2022-08-01 │ 160.551 │   96.78 │ missing │  73.455 │ 154.943 │  58.944 │ 297.696 │  169.14 │ 110.732 │ 62.641 │ 320.324 │  86.067 │ 275.348 │ 172.303 │  48.649 │ 139.253 │  31.844 │ 528.009 │ 130.438 │  91.322 │
│ 2022-08-02 │  159.06 │   99.29 │ missing │  71.194 │ 153.621 │  57.824 │ 292.722 │ 168.177 │ 109.006 │ 61.786 │ 316.421 │  85.172 │ 272.189 │ 170.881 │  47.765 │ 138.328 │   31.31 │ 528.088 │ 130.575 │  90.926 │
│ 2022-08-03 │ 165.144 │   98.09 │ missing │  72.224 │ 149.972 │   58.12 │ 298.231 │ 169.801 │  110.15 │ 62.058 │ 310.126 │  85.182 │ 279.766 │ 172.186 │  47.928 │ 141.183 │  31.399 │ 533.207 │  128.43 │  87.978 │
│ 2022-08-04 │ 164.826 │  103.91 │ missing │  72.797 │ 145.898 │  57.288 │  299.01 │ 167.078 │ 108.938 │ 61.815 │ 302.181 │  84.404 │ 280.934 │ 171.251 │  47.928 │ 140.959 │   29.65 │ 526.402 │ 123.578 │  84.276 │
│ 2022-08-05 │ 164.597 │  102.31 │ missing │  72.883 │ 148.312 │  57.824 │ 301.463 │ 166.416 │ 112.235 │ 61.534 │ 297.764 │  84.978 │ 280.202 │ 169.966 │  47.361 │ 141.027 │  30.381 │ 527.694 │ 124.572 │  85.494 │
│ 2022-08-08 │ 164.119 │  100.07 │ missing │  74.944 │  148.09 │  58.462 │ 303.683 │ 165.531 │ 110.867 │ 61.136 │ missing │  86.028 │ 277.636 │ 169.284 │  47.649 │ 141.563 │  29.748 │ 529.213 │ 125.586 │  85.977 │
│ 2022-08-09 │ 164.169 │   95.54 │ missing │  72.845 │  150.02 │  58.267 │ 297.102 │ 165.512 │ 111.866 │ 61.214 │ 299.444 │  87.029 │ 279.597 │ 169.917 │  47.851 │ 141.232 │  31.794 │ 529.864 │ 126.826 │  87.562 │
│ 2022-08-10 │ 168.469 │   99.05 │ missing │  74.915 │ 150.416 │  59.986 │ 303.303 │ 165.988 │ 114.784 │ 61.796 │ 301.015 │  86.708 │ 286.392 │  171.32 │  48.015 │ 142.567 │  32.318 │ 530.317 │ 127.091 │  88.394 │
│ 2022-08-11 │ 167.723 │   98.12 │ missing │  76.738 │ 154.084 │  61.355 │ 302.437 │ 162.555 │ 116.481 │ 61.379 │ 297.615 │  86.455 │ 284.272 │ 170.443 │  46.419 │ 141.553 │ missing │ 525.524 │ 128.317 │  90.951 │
│ 2022-08-12 │ 171.316 │  100.83 │ missing │  76.623 │ 154.306 │  62.155 │ 306.525 │ 160.766 │ 118.411 │ 61.845 │ 305.438 │  88.487 │ 289.115 │ 172.673 │  48.169 │ 142.927 │  33.712 │ 536.215 │ 130.689 │  91.741 │
│ 2022-08-15 │ 172.401 │  101.01 │ missing │  77.606 │ 151.372 │  62.062 │ 306.252 │ 161.534 │  118.73 │ 62.621 │ 311.247 │  88.079 │  290.66 │ 174.572 │  47.822 │ 144.769 │  32.397 │ 537.142 │ 131.065 │  90.102 │
│ 2022-08-16 │ 172.242 │   100.2 │ missing │   81.06 │ 150.985 │  63.042 │ 318.683 │ 162.973 │ 119.865 │ 63.136 │ 307.649 │  88.069 │ 289.908 │ 175.585 │  47.928 │ 146.104 │  33.079 │ 538.602 │ 137.757 │  89.262 │
│ 2022-08-17 │ 173.755 │   98.27 │  35.447 │  78.494 │ 152.231 │  62.148 │ 317.106 │ 162.983 │ 118.857 │  62.99 │ 314.103 │  88.507 │ 289.143 │ 175.487 │  47.361 │ 145.432 │   32.99 │ 537.497 │ missing │  89.984 │
│ 2022-08-18 │ 173.357 │  100.44 │   35.32 │  78.646 │   154.9 │  61.596 │ 316.571 │ 162.195 │ 117.935 │  63.32 │ 314.004 │  88.857 │ 288.002 │ 175.662 │  46.698 │ 145.948 │  33.909 │ 537.714 │  137.46 │  92.112 │
│ 2022-08-19 │ 170.739 │   95.95 │  34.541 │  75.889 │ 153.604 │  60.437 │ 312.784 │ 164.666 │ 115.017 │ 63.272 │ 320.002 │  89.518 │ 284.012 │ 175.438 │  47.246 │ 145.909 │    33.0 │ 540.771 │ 135.434 │  91.819 │
│ 2022-08-22 │ 166.807 │   92.84 │  33.802 │  73.875 │ 152.835 │  58.151 │ 303.916 │ 164.088 │ 113.117 │  62.33 │ 320.329 │  88.623 │ 275.675 │ 173.764 │  47.005 │ 145.519 │   34.65 │ 537.073 │ 133.012 │  91.751 │
│ 2022-08-23 │ 166.468 │   92.49 │    33.5 │   75.23 │ 157.793 │  59.177 │ 298.747 │ 162.659 │ 112.002 │ 62.398 │ 312.398 │   87.69 │ 274.375 │ 173.686 │   46.15 │ 142.713 │  33.583 │ 528.424 │ 132.449 │  95.645 │
│ 2022-08-24 │ 166.767 │   92.73 │  33.607 │  74.076 │ 158.962 │  59.675 │ 299.925 │  162.12 │ 112.273 │ 62.485 │ 316.135 │  87.505 │ 273.729 │ 174.552 │  45.592 │ 142.099 │  34.344 │ 529.075 │ 133.407 │  96.211 │
│ 2022-08-25 │ 169.256 │   97.18 │   34.21 │   74.61 │ 160.355 │  60.764 │ 301.551 │ 163.638 │  114.94 │ 62.786 │ 320.369 │  87.758 │ 276.767 │ 174.562 │  46.044 │ 141.982 │  34.048 │ 534.114 │ 134.297 │  96.709 │
│ 2022-08-26 │ 162.875 │   91.18 │   33.13 │  70.755 │ 159.176 │  58.532 │ 290.181 │ 160.837 │ 111.178 │ 61.272 │ 312.854 │  86.776 │ 266.087 │ 170.443 │  45.006 │ 138.659 │  34.087 │ 521.964 │ missing │  95.518 │
│ 2022-08-29 │ 160.645 │   88.49 │  33.003 │  70.325 │ 160.364 │  59.138 │ 288.448 │ 159.594 │ 110.906 │ 60.903 │  307.49 │  85.153 │ 263.248 │ 169.908 │  44.439 │ 138.074 │  33.761 │ 522.477 │ 131.342 │  97.714 │
│ 2022-08-30 │ 158.186 │   86.94 │  33.188 │  71.461 │ 156.458 │  58.423 │ 285.314 │ 159.036 │ 110.926 │  60.34 │ 304.407 │  84.462 │ 261.005 │ 168.447 │  44.074 │ 136.603 │   31.32 │ 515.642 │ 130.946 │  93.996 │
│ 2022-08-31 │ 156.504 │   84.87 │  32.721 │  67.453 │ 153.965 │  57.109 │  282.59 │ 157.969 │ 110.266 │ 59.913 │ 298.647 │  82.985 │ 259.516 │ 167.746 │  43.478 │  134.42 │  32.476 │  512.18 │ 131.015 │  93.293 │
│ 2022-09-01 │ 157.241 │   82.33 │  32.799 │   68.56 │  151.51 │  56.829 │  287.44 │ 161.885 │ 111.023 │ 60.194 │ 306.479 │  84.725 │ 258.454 │ 169.442 │  44.823 │ 136.077 │  31.587 │ 516.786 │ 132.923 │  91.614 │
│ 2022-09-02 │   155.1 │   80.24 │   32.76 │  67.883 │  153.76 │  56.323 │   286.0 │ 159.339 │ 110.247 │ 59.369 │ 298.746 │  83.831 │ 254.147 │ 167.295 │  43.929 │  133.66 │  31.794 │ 509.241 │  131.46 │  93.293 │
│ 2022-09-06 │ 153.826 │   78.72 │  32.398 │  68.112 │ 153.049 │  56.113 │ 283.687 │  159.77 │ missing │ 59.398 │ 304.189 │  84.015 │ 251.358 │ 166.168 │  43.987 │ 132.169 │  30.499 │ 510.553 │ 130.808 │  92.668 │
│ 2022-09-07 │  155.25 │   79.61 │  32.897 │  69.887 │ 151.091 │  57.218 │ 291.457 │ 160.642 │  112.37 │ 60.495 │ 308.928 │  84.453 │ 256.162 │ 169.834 │  44.343 │ 134.167 │  29.818 │ 514.498 │ 134.169 │  91.878 │
│ 2022-09-08 │ 153.756 │   82.78 │  33.956 │   71.28 │ missing │  57.365 │ 293.838 │ 161.934 │ 114.988 │ 60.311 │ 312.794 │  84.987 │ 256.588 │ 169.265 │  45.256 │ 134.342 │  30.163 │ 520.248 │ 134.851 │  92.629 │
│ 2022-09-09 │ 156.653 │   85.45 │   34.24 │  72.749 │ 155.825 │  57.575 │ 293.711 │ 162.247 │ 115.541 │ 60.505 │ missing │   84.91 │ 262.484 │ 169.805 │  45.986 │ 136.388 │  30.747 │ 518.744 │ 135.256 │  94.181 │
│ 2022-09-12 │ 162.686 │   84.64 │  34.563 │  74.257 │  158.29 │  58.571 │ 291.526 │ 162.179 │ 116.908 │  60.68 │ 312.517 │  85.707 │ 264.658 │ 170.471 │   45.91 │ 137.499 │  31.626 │  525.58 │ 136.472 │  95.264 │
│ 2022-09-13 │ 153.139 │   77.03 │  33.319 │  70.316 │  155.28 │  55.087 │ 272.312 │ 157.959 │ 112.845 │ 58.709 │ missing │  83.879 │ 250.107 │ 164.109 │    44.4 │ 134.654 │  31.102 │ 508.475 │ 133.655 │  93.039 │
│ 2022-09-14 │ 154.603 │   77.45 │  33.191 │  70.182 │  159.04 │  54.457 │ 270.754 │ 161.219 │ 112.584 │ 59.019 │ 306.955 │  85.212 │ 250.336 │ 165.354 │  44.362 │ 134.975 │  32.658 │ 504.329 │ 133.358 │  95.323 │
│ 2022-09-15 │ 151.676 │   76.66 │  33.818 │  69.104 │ 156.458 │  53.586 │ 266.051 │ 161.631 │  114.28 │ 58.217 │ 306.816 │  85.016 │ 243.547 │ 162.609 │   44.16 │ 133.933 │  31.122 │ 517.329 │ 131.925 │  92.551 │
│ 2022-09-16 │ 150.014 │   76.51 │  33.436 │  69.304 │ 152.396 │  51.626 │ 270.392 │ 164.098 │ missing │ 58.227 │ 306.241 │  85.967 │ 242.911 │ 163.678 │  44.247 │ 134.751 │  29.418 │ 515.459 │ 131.648 │   90.97 │
│ 2022-09-19 │ 153.776 │   76.77 │  33.995 │  71.449 │ 152.835 │   52.14 │ 274.752 │ 162.805 │ missing │ 58.667 │ 302.473 │  84.908 │ 242.693 │ 165.403 │  43.679 │ 134.469 │  30.042 │ 517.962 │ 132.775 │   90.96 │
│ 2022-09-20 │ 156.185 │   75.25 │  33.485 │  68.503 │ 152.231 │  51.782 │ 268.628 │ 161.523 │ 112.302 │ 58.579 │ 299.142 │  84.281 │ 240.639 │ 165.589 │  43.035 │ 133.991 │  29.596 │  517.22 │ 132.004 │  90.219 │
│ 2022-09-21 │  153.02 │   74.48 │  32.486 │  67.595 │ 150.994 │  50.717 │ 266.081 │ 159.868 │ 109.064 │  58.09 │ 293.937 │   82.84 │ 237.165 │ 165.119 │  42.218 │ 132.266 │  28.784 │ 506.615 │  133.21 │  88.764 │
│ 2022-09-22 │ 152.044 │    69.5 │  31.849 │  66.233 │ 150.877 │  50.825 │   263.7 │ 162.708 │ 107.823 │ 57.953 │ 308.204 │  85.761 │  239.18 │ 165.276 │  42.843 │ 132.734 │  27.179 │ 511.937 │ 131.846 │  88.394 │
│ 2022-09-23 │ 149.745 │   67.96 │  31.094 │  66.436 │ 141.019 │  50.196 │ 265.463 │ 163.236 │ 105.816 │ 57.308 │ 308.789 │  85.045 │ 236.142 │ 165.197 │  42.372 │  132.12 │  24.771 │ 508.128 │ 128.554 │  83.689 │
│ 2022-09-26 │ 150.083 │    66.3 │  30.408 │  63.094 │ 137.308 │  50.102 │ 261.191 │ 162.238 │ 103.538 │ 56.594 │ 304.863 │  84.457 │ 235.676 │ 165.129 │  42.132 │ 132.247 │  23.522 │ 502.935 │  129.79 │  81.962 │
│ 2022-09-27 │ 151.069 │   67.17 │  29.957 │  63.181 │ 137.366 │  50.196 │ 263.259 │ 161.493 │ missing │ 55.137 │ 308.432 │  84.124 │ 234.644 │ 162.737 │  42.382 │ 128.612 │  23.473 │ 502.944 │ 129.434 │   83.68 │
│ 2022-09-28 │ 149.157 │   68.36 │  30.447 │  65.141 │ 142.003 │  50.188 │ 276.486 │ 162.884 │ 104.701 │ 55.724 │ 331.512 │  85.045 │ 239.269 │ 165.344 │  42.709 │ 128.612 │  24.612 │ 508.455 │ 131.569 │  86.725 │
│ 2022-09-29 │ 141.831 │   64.14 │  30.046 │  62.862 │ 141.019 │  48.841 │ 272.704 │ 161.092 │ 102.927 │ 55.323 │  327.18 │  84.908 │ 235.726 │ 163.325 │  42.449 │ 125.416 │  24.345 │   503.4 │ 130.719 │  86.549 │
│ 2022-09-30 │  137.57 │   63.36 │  29.595 │  61.181 │ 139.947 │  48.202 │ 270.362 │ 159.946 │ 101.317 │ 54.785 │ 320.577 │  84.399 │  231.16 │ 160.041 │  42.065 │ 123.028 │  25.029 │  499.65 │ 128.198 │  85.212 │
│ 2022-10-03 │ 141.801 │   66.11 │  30.467 │    61.5 │ 147.799 │  49.518 │ 277.965 │  159.79 │ 104.449 │ 55.401 │ 318.792 │    85.8 │ 238.941 │ 161.992 │   42.43 │ 125.231 │  26.099 │ 510.008 │ 130.996 │  89.711 │
│ 2022-10-04 │ 145.435 │    67.9 │  31.731 │  65.103 │ 153.546 │  52.586 │ 283.707 │ 162.159 │ 109.336 │ 55.528 │ 327.061 │  86.623 │ 247.021 │ 163.815 │  42.737 │  126.78 │  27.902 │ 517.586 │ 132.696 │  92.981 │
│ 2022-10-05 │ 145.733 │   67.94 │   31.28 │  65.586 │ 154.422 │  52.508 │ 283.991 │  161.66 │ 107.986 │   55.0 │ 328.934 │  86.623 │ 247.338 │ 162.727 │  42.411 │ 125.903 │  28.744 │ 521.445 │ 131.381 │  96.738 │
│ 2022-10-06 │ 144.768 │   67.85 │   30.83 │  64.533 │ 157.238 │  51.558 │  284.52 │ 158.527 │ 105.785 │ 53.817 │ 330.094 │  85.692 │ 244.946 │  159.59 │   41.42 │ 123.252 │  27.496 │  513.59 │ 130.156 │  99.607 │
│ 2022-10-07 │ 139.452 │   58.44 │  30.134 │  62.331 │ 155.884 │  50.266 │ 278.573 │ 156.852 │ 103.672 │ 53.308 │ 323.858 │  85.849 │  232.49 │ 158.423 │   40.68 │ 121.099 │  26.842 │ 499.462 │ 127.072 │  98.602 │
│ 2022-10-10 │  139.78 │   57.81 │  30.046 │  61.181 │ 153.068 │  50.593 │ 276.751 │ 157.058 │ 102.703 │ 53.191 │ 321.112 │  88.671 │ 227.537 │ 158.629 │  40.132 │ 120.602 │  26.703 │ missing │ 127.823 │  96.465 │
│ 2022-10-11 │ 138.347 │   57.63 │  29.173 │ missing │ 153.098 │   49.83 │ 277.172 │  159.33 │  99.739 │ 53.279 │  324.79 │   89.23 │ 223.726 │ 159.384 │  40.296 │  121.06 │  26.842 │ 494.476 │ 131.134 │  95.645 │
│ 2022-10-12 │  137.71 │   57.85 │  29.262 │  61.046 │ 153.555 │  50.406 │  274.85 │  159.29 │ 101.353 │ 53.924 │ 321.786 │  88.613 │ 224.063 │  166.05 │  40.402 │ 121.255 │  27.535 │ 494.624 │ 129.651 │  96.065 │
│ 2022-10-13 │ 142.339 │   58.94 │  31.055 │  62.311 │ 160.998 │  52.897 │ 277.113 │ 161.699 │ 106.988 │ 54.638 │ 329.252 │  90.641 │  232.49 │ 171.167 │  41.315 │ 123.087 │  28.516 │ 504.468 │ 130.749 │  99.422 │
│ 2022-10-14 │  137.75 │   55.94 │  31.065 │  61.191 │ 155.991 │  52.609 │ 270.842 │ 161.023 │ 108.768 │ 53.768 │ 328.548 │  90.337 │ 226.852 │ 166.834 │  41.199 │ 121.888 │  26.663 │ 507.654 │  128.92 │  96.806 │
│ 2022-10-17 │ 141.761 │   57.96 │  32.946 │  63.354 │  157.13 │  53.435 │ 275.575 │ 163.109 │ 113.337 │ 54.462 │ missing │  92.239 │ 235.755 │ 169.324 │  41.959 │  124.09 │  27.109 │  516.31 │ 129.849 │  98.202 │
│ 2022-10-18 │ 143.095 │   57.92 │  34.181 │  64.291 │ 158.504 │ missing │ 279.298 │ 162.541 │ 116.252 │ 55.196 │ 332.157 │  92.719 │ 236.718 │ 171.608 │  42.382 │ 125.094 │  27.813 │ 516.637 │ 132.587 │  98.378 │
│ 2022-10-19 │ 143.205 │   57.23 │   33.24 │  61.567 │ 163.647 │  54.914 │ 269.921 │ 161.249 │ 113.972 │ 54.726 │ 326.466 │  91.396 │ 234.713 │ 169.942 │   41.44 │ 126.254 │  28.011 │ 514.767 │ 132.211 │ 101.296 │
│ 2022-10-20 │ 142.737 │   57.77 │  33.025 │  60.708 │ 164.582 │  54.478 │ 264.013 │  161.66 │ 113.601 │ 53.866 │ 326.248 │  91.082 │ 234.386 │ 168.079 │  41.247 │ 124.628 │  26.802 │ 515.321 │ 132.538 │ 101.433 │
│ 2022-10-21 │ 146.599 │   58.82 │   34.25 │  61.596 │ 168.703 │  56.697 │ 269.961 │ 165.185 │ 119.568 │ 54.726 │ 337.847 │  93.758 │ 240.311 │ 169.648 │  43.208 │ 126.188 │  25.613 │ 528.034 │ 135.216 │ 103.316 │
│ 2022-10-24 │ 148.769 │    58.7 │  34.367 │  61.625 │ 168.644 │  57.117 │ 277.534 │ 167.407 │ 119.715 │ 56.301 │ 344.916 │  95.424 │ 245.403 │ 174.177 │  43.776 │ 126.963 │  26.277 │  535.82 │ 137.796 │ 104.038 │
│ 2022-10-25 │ 151.646 │   61.47 │  34.681 │  63.451 │ 170.398 │  56.837 │ 284.393 │ 167.143 │ 120.028 │  57.65 │ 348.297 │  95.757 │ 248.787 │ 174.755 │  43.824 │ 128.426 │  28.338 │ 534.454 │ 138.448 │ 103.336 │
│ 2022-10-26 │  148.67 │   59.73 │  34.985 │  63.741 │ 172.502 │  58.752 │ 284.285 │ 168.612 │ 121.407 │ 58.081 │ 354.791 │  96.443 │ 229.592 │ 175.539 │  44.275 │ 129.329 │  27.743 │ 537.373 │ 139.506 │ 104.565 │
│ 2022-10-27 │  144.14 │    58.6 │  35.151 │  63.596 │ 173.291 │  59.173 │ 285.177 │ 168.709 │ 121.886 │ 58.217 │ 353.274 │  97.746 │ 225.056 │ 175.353 │  43.968 │ 129.427 │  27.337 │ 536.018 │ 139.101 │ 104.966 │
│ 2022-10-28 │ 155.031 │   62.01 │  35.455 │   66.02 │ 175.317 │  60.987 │ 292.613 │ 171.216 │ 123.334 │  59.42 │ 356.813 │  98.756 │ 234.108 │ 178.637 │  45.592 │ 132.705 │  26.881 │ 545.357 │  140.86 │  108.04 │
│ 2022-10-31 │ 152.642 │   60.06 │  35.318 │  66.078 │ 176.213 │  60.582 │ 290.144 │ 170.335 │ 123.138 │  58.53 │ 358.985 │  99.177 │ 230.396 │   178.0 │  44.746 │ 132.165 │  28.219 │ 549.225 │ 140.682 │ 108.147 │
│ 2022-11-01 │ 149.964 │   59.66 │  35.475 │  66.532 │ 177.499 │  60.893 │ 290.076 │ 169.473 │ 125.359 │ 58.325 │ 349.556 │  97.766 │ 226.465 │ 177.196 │   46.15 │ 132.371 │  27.981 │ 541.469 │  140.05 │ 109.221 │
│ 2022-11-02 │ 144.369 │   58.63 │  35.367 │   63.76 │ 173.875 │  60.263 │ 282.894 │ 166.869 │ 124.205 │ 57.513 │ 351.916 │  97.413 │ 218.456 │ 174.726 │  45.246 │ 130.467 │  27.288 │  537.63 │ 139.121 │ 106.976 │
│ 2022-11-03 │ 138.247 │   60.11 │  35.171 │  64.784 │ 176.437 │  61.026 │  275.81 │ 167.153 │  124.43 │ 57.484 │ 358.578 │  96.776 │ 212.649 │ 174.275 │  45.149 │ 129.574 │  26.881 │ 537.808 │ 139.091 │  108.43 │
│ 2022-11-04 │ 137.978 │   62.19 │  36.053 │  65.875 │ 178.668 │   63.12 │ 278.289 │ 167.897 │ 127.834 │ 57.953 │ 354.345 │  97.217 │ 219.736 │ 175.255 │   45.78 │ 131.939 │  27.763 │ 532.426 │ 139.338 │ 109.611 │
│ 2022-11-07 │ 138.517 │   63.08 │  36.268 │   66.32 │ 180.801 │  64.981 │ 284.403 │ 169.365 │ 128.509 │ 58.178 │ 361.939 │   98.07 │ 226.167 │ 176.657 │  45.653 │ 133.961 │  29.557 │ 539.203 │ 140.801 │ 110.909 │
│ 2022-11-08 │ 139.095 │   63.85 │  36.366 │  66.474 │ 180.538 │  65.401 │ 285.255 │ 170.207 │ 128.587 │ 58.286 │ 363.515 │ missing │  227.16 │ 177.147 │  45.906 │ 134.265 │  28.833 │ 547.148 │ 141.137 │ 111.261 │
│ 2022-11-09 │ 134.478 │   59.92 │  35.788 │  65.006 │  173.32 │   64.74 │ 280.954 │ 168.847 │ 126.914 │ 57.474 │ 360.154 │  99.559 │ 222.833 │ 175.029 │  45.295 │ 133.941 │  26.327 │  534.89 │ 137.855 │ 106.283 │
│ 2022-11-10 │ 146.444 │   68.47 │  37.366 │  69.575 │ 176.602 │  66.476 │   305.4 │ 170.824 │ 132.138 │ 59.538 │ 365.558 │  99.853 │ 241.165 │ 178.117 │  45.935 │ 138.554 │  28.477 │ 538.362 │ 140.712 │ 107.845 │
│ 2022-11-11 │ 149.265 │   72.37 │   37.64 │  72.009 │ 181.629 │    67.2 │ 308.574 │ 165.713 │ 132.353 │ 59.968 │ 349.278 │  96.002 │ 245.264 │ 174.539 │  46.148 │ 138.348 │  28.754 │ 516.508 │ 140.929 │ 111.212 │
│ 2022-11-14 │ 147.849 │   73.53 │  37.003 │  71.729 │ 181.716 │  66.826 │ 300.716 │ 168.318 │ 130.993 │ 59.391 │ 353.991 │  98.344 │ 239.745 │ 173.245 │  47.738 │ 138.357 │  28.239 │ 508.267 │ 136.788 │ 111.536 │
│ 2022-11-15 │ 149.604 │   76.37 │  36.945 │  73.023 │ 183.178 │  67.846 │ 305.625 │ 168.788 │ 130.045 │ 59.293 │ 347.916 │  97.609 │ 240.162 │ 173.696 │  47.088 │ 137.877 │  29.091 │ 497.642 │ 145.733 │ 112.284 │
│ 2022-11-16 │ 148.358 │    72.7 │  36.611 │  66.764 │ 180.197 │  66.102 │ 308.545 │ 169.835 │ 130.221 │ 59.186 │ 350.879 │  97.933 │   240.6 │ 174.814 │ missing │ 139.103 │  27.852 │ 506.061 │ 146.781 │ 111.084 │
│ 2022-11-17 │ 150.282 │    73.9 │  36.425 │  67.643 │ 180.707 │  66.484 │ 305.145 │ 171.206 │ 129.653 │ 59.371 │ 358.674 │ 100.265 │  240.55 │  176.48 │  46.856 │ 138.249 │  28.169 │  509.81 │ 146.287 │ 111.231 │
│ 2022-11-18 │ 150.851 │   73.57 │  36.445 │  69.594 │ 179.628 │  66.554 │  306.85 │ 172.518 │ 130.925 │ 59.792 │ 359.568 │ 102.147 │ 240.092 │ 177.755 │  46.759 │ 139.918 │ missing │ 524.344 │ 148.491 │ 110.267 │
│ 2022-11-21 │  147.58 │   72.46 │  36.562 │  68.416 │  177.91 │  66.873 │ 310.377 │ 173.405 │ 130.152 │ 60.711 │ 359.071 │ 103.499 │ 240.919 │ 181.176 │   46.71 │ 141.694 │  27.951 │  511.67 │   149.4 │ 109.175 │
│ 2022-11-22 │ 149.744 │   75.25 │  36.739 │  77.157 │ missing │  67.971 │ 318.313 │ 174.243 │ 132.099 │ 60.975 │ 358.783 │ 104.763 │ 243.885 │ 181.195 │  47.583 │ 142.911 │  29.943 │ missing │ 149.934 │ 112.333 │
│ 2022-11-23 │ 150.631 │    76.4 │  36.856 │  79.582 │ 180.855 │  68.415 │ 315.011 │  174.43 │ 133.507 │ 61.249 │ 359.618 │ 104.685 │ 246.423 │ 181.431 │   47.36 │ 143.726 │  29.497 │ 524.057 │ 150.655 │ 111.773 │
│ 2022-11-25 │  147.68 │   75.14 │  36.945 │  78.461 │ 180.324 │  68.625 │ 319.783 │ 174.657 │ 133.762 │ 61.308 │ 363.128 │ missing │ 246.333 │  180.48 │  47.709 │ 143.991 │  29.349 │ 531.882 │ 151.298 │ 111.379 │
│ 2022-11-28 │ 143.801 │   73.19 │  36.121 │  79.292 │ 175.083 │  66.546 │ 312.474 │ 174.745 │ 131.424 │ 61.318 │ 363.645 │ 106.282 │  240.63 │ 180.264 │  48.058 │ 143.873 │   28.07 │ 526.589 │ 151.733 │ 108.034 │
│ 2022-11-29 │  140.76 │   73.39 │  36.259 │  81.291 │ 177.704 │  66.694 │ 309.573 │ 173.523 │ 133.586 │ 61.102 │ 361.835 │ 106.664 │ 239.207 │  178.99 │   47.98 │ 142.774 │  28.338 │ 522.365 │ 151.199 │ 108.752 │
│ 2022-11-30 │   147.6 │   77.63 │  37.092 │  82.393 │ 179.942 │  66.935 │ 319.362 │ 175.405 │ missing │ 62.649 │ 368.924 │ 107.919 │ 253.947 │ 181.852 │  48.601 │ 146.385 │  28.605 │ 541.914 │ 150.655 │ 109.539 │
│ 2022-12-01 │ 147.879 │   77.48 │  36.027 │  83.523 │ 179.137 │ missing │ 322.398 │ 176.135 │ 133.273 │ 62.826 │ 368.178 │ 107.605 │ 253.499 │ 183.371 │  49.522 │ 146.474 │  27.734 │  531.18 │ 151.594 │ 109.008 │
│ 2022-12-02 │ 147.381 │   74.98 │  35.564 │  83.648 │ 177.704 │  67.644 │ 323.304 │ 176.273 │ 132.216 │ 63.377 │ 372.582 │  107.84 │ 253.828 │ 183.164 │  49.357 │ 147.808 │  26.594 │ 532.073 │ 151.446 │ 108.083 │
│ 2022-12-05 │ 146.204 │   73.62 │  33.977 │  81.446 │ 173.316 │  65.915 │ 315.507 │ 176.174 │ 128.509 │ 62.511 │ 367.144 │ 107.811 │  249.03 │ 180.629 │  49.182 │ 146.317 │  24.989 │ 530.961 │ 149.894 │ 105.122 │
│ 2022-12-06 │ 142.495 │   70.27 │  32.528 │  80.441 │ 168.849 │  66.398 │ 312.915 │ 173.533 │ 128.724 │ 62.481 │ 366.398 │ 106.753 │ 243.974 │ 179.159 │  48.194 │ 146.503 │  25.276 │ 535.209 │ 148.155 │   102.2 │
│ 2022-12-07 │ 140.531 │   70.14 │  32.272 │  78.597 │  169.35 │   66.18 │ 315.576 │ 174.588 │ 128.636 │  62.58 │ 369.809 │ 107.889 │ 243.228 │ 179.702 │  48.707 │ 147.445 │  25.038 │ 538.771 │ 147.384 │ 101.974 │
│ 2022-12-08 │ 142.236 │   70.47 │  31.976 │  80.557 │ 170.351 │  65.113 │  319.46 │ 174.617 │ 129.986 │ 62.846 │  369.63 │ 108.634 │ 246.244 │  181.28 │    50.2 │ 148.505 │  24.484 │ 543.743 │ 147.612 │ 102.731 │
│ 2022-12-09 │ 141.747 │   68.59 │  31.917 │  79.022 │ 164.913 │  63.416 │ 315.902 │ 173.178 │ 129.282 │ 62.186 │ 358.892 │ 106.606 │ 244.273 │ 180.609 │  50.142 │ 148.113 │  24.989 │  535.09 │ 144.169 │ 101.865 │
│ 2022-12-12 │  144.07 │   70.67 │  32.262 │  80.525 │ 166.631 │  64.786 │ 323.295 │ 175.248 │ 131.287 │ 63.003 │ 365.116 │ 106.792 │  251.33 │ 181.467 │  50.569 │ 149.634 │  26.287 │ 541.699 │ 146.858 │ 104.374 │
│ 2022-12-13 │ 145.048 │   71.65 │  32.281 │  82.088 │ 170.341 │  64.529 │ 328.134 │ 176.598 │  131.16 │ 63.023 │ 356.576 │ 108.693 │ 255.719 │ 181.369 │  51.451 │ 149.408 │  26.663 │ 534.117 │ 146.332 │ 105.515 │
│ 2022-12-14 │ 142.794 │   68.93 │  31.818 │  78.914 │ 169.163 │  63.493 │ 328.667 │  177.14 │ 130.504 │ 63.023 │ 361.388 │ 110.045 │ 256.018 │ 180.866 │  52.818 │ 149.997 │  26.286 │ 534.256 │ 145.519 │ 104.738 │
│ 2022-12-15 │ 136.104 │   66.53 │  31.315 │  78.875 │ 167.897 │   61.42 │  322.92 │ 174.903 │ missing │ 62.156 │ 357.918 │  108.15 │ 247.846 │ 177.798 │  51.975 │ 148.299 │  26.673 │ 523.658 │ 144.219 │ 103.735 │
│ 2022-12-16 │ 134.119 │   65.41 │  31.246 │  77.606 │  165.62 │  60.516 │ 318.721 │ 173.109 │ 126.474 │ 61.802 │ 357.779 │ 107.726 │ 243.546 │ 177.887 │  49.832 │ 147.641 │ missing │ 519.708 │ 141.629 │ 103.007 │
│ 2022-12-19 │ 131.986 │   64.59 │  31.601 │ missing │ 166.758 │  60.835 │ 312.797 │ 172.922 │ 127.227 │  61.89 │ 355.701 │ 107.963 │ 239.326 │ 178.873 │  49.793 │ 147.602 │   25.64 │ 519.609 │ 141.679 │ 103.469 │
│ 2022-12-20 │ 131.916 │   65.05 │  31.729 │  77.371 │ 169.497 │  62.604 │ 310.342 │ 173.109 │ 127.844 │ 61.841 │  357.55 │ 108.229 │  240.67 │ 178.765 │  49.754 │ 147.661 │   25.65 │ 516.245 │ 142.919 │ 104.964 │
│ 2022-12-21 │ 135.057 │   67.68 │  32.212 │  78.729 │  171.49 │   64.67 │ 314.798 │  175.09 │ 129.282 │ 62.836 │ 365.872 │ 109.611 │ 243.287 │ 180.017 │  50.084 │ 149.015 │  26.574 │ 523.519 │  144.04 │ 106.312 │
│ 2022-12-22 │ 131.846 │   63.86 │  31.927 │  78.563 │ 168.918 │  63.727 │ 311.604 │  174.45 │ 127.814 │ 62.383 │ 363.187 │ 109.739 │ 237.077 │ 178.627 │  50.065 │ 149.359 │  25.232 │ 523.072 │ 142.354 │ 104.168 │
│ 2022-12-23 │ 131.477 │   64.52 │  32.005 │  79.432 │  174.14 │  63.742 │ 314.177 │ 174.893 │ 128.421 │ 62.855 │ 365.762 │  110.35 │ 237.614 │ 179.781 │  50.249 │ 149.781 │  26.226 │  527.26 │ 142.641 │ 106.922 │
│ 2022-12-27 │ 129.652 │   63.27 │  32.065 │   79.93 │ 176.329 │  64.561 │ 314.985 │ 174.844 │ 128.871 │  63.24 │  362.76 │ 110.607 │ 235.852 │  180.58 │   49.57 │ 151.086 │  26.375 │ 527.935 │ 142.681 │ 108.408 │
│ 2022-12-28 │ 125.674 │   62.57 │  32.301 │  78.279 │ 173.728 │  63.883 │  311.22 │ 174.085 │ 129.575 │ 62.609 │ 363.098 │ 109.581 │ 233.434 │ 179.278 │   49.25 │ 149.133 │  24.497 │ 524.422 │ 140.181 │ 106.627 │
└────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘

2. Diagnose the missingness

Before deciding what to drop or fill, measure it. The per-column and per-row missing fractions are exactly the quantities missing_col_percent and missing_row_percent threshold against.

col_missing = vec(mean(ismissing, vals; dims = 1))worst_cols = sort(DataFrame(; asset = nx, missing_frac = col_missing), :missing_frac;                  rev = true)pretty_table(first(worst_cols, 6); formatters = [resfmt],             title = "Missing fraction per asset (worst six)")
Missing fraction per asset (worst six)
┌────────┬──────────────┐
│  asset  missing_frac │
│ String      Float64? │
├────────┼──────────────┤
│    BAC │     63.241 % │
│    AMD │        8.3 % │
│    JPM │      5.138 % │
│    BBY │      2.767 % │
│    LLY │      2.372 % │
│    UNH │      2.372 % │
└────────┴──────────────┘

Asset 3 is missing ~64% of the time — there is no honest way to impute that, so it should be dropped. Asset 2's halt and the scattered single-day gaps, by contrast, are short and recoverable.

3. Drop the hopeless, keep the rest

missing_col_percent = 0.5 drops any asset more than half missing (asset 3), while missing_row_percent = 0.5 would drop any date more than half missing across assets. With no imputation yet, the kept assets still contain gaps, so we ask only how many assets survive the filter.

rd_droponly = prices_to_returns(Xmiss; missing_col_percent = 0.5, missing_row_percent = 0.5,                                impute_method = Impute.LOCF())println("Assets kept after the 50% column filter: $(length(rd_droponly.nx)) of $N")
Assets kept after the 50% column filter: 19 of 20

4. Impute the survivors

The kept assets still have a halt and scattered gaps. We fill them with two different imputors and compare. Impute.LOCF() carries the last observed price forward — so a halt becomes a flat price stretch and therefore zero returns through the halt, which is the honest accounting for a non-trading period. Impute.Interpolate() draws a straight line across the gap, spreading a small constant return over the missing days.

rd_locf = prices_to_returns(Xmiss; missing_col_percent = 0.5, impute_method = Impute.LOCF())rd_interp = prices_to_returns(Xmiss; missing_col_percent = 0.5,                              impute_method = Impute.Interpolate())pretty_table(DataFrame(; method = ["LOCF", "Interpolate"],                       assets = [length(rd_locf.nx), length(rd_interp.nx)],                       observations = [size(rd_locf.X, 1), size(rd_interp.X, 1)]);             title = "Both imputors yield a complete returns matrix")
Both imputors yield a complete returns matrix
┌─────────────┬────────┬──────────────┐
│      method  assets  observations │
│      String   Int64         Int64 │
├─────────────┼────────┼──────────────┤
│        LOCF │     20 │           92 │
│ Interpolate │     20 │           92 │
└─────────────┴────────┴──────────────┘

5. Straight into the pipeline

A cleaned ReturnsResult is just an ordinary one — it flows into the rest of the package with no special handling. We solve a minimum-variance MeanRisk on the LOCF-imputed data to confirm the preprocessing produced something usable end to end.

using Clarabelslv = Solver(; name = :clarabel, solver = Clarabel.Optimizer,             settings = Dict("verbose" => false),             check_sol = (; allow_local = true, allow_almost = true))res = optimise(MeanRisk(; obj = MinimumRisk(),                        opt = JuMPOptimiser(; pe = prior(EmpiricalPrior(), rd_locf),                                            slv = slv)))println("Min-variance solve on cleaned data: $(res.retcode), $(count(>(1e-6), res.w)) active names")
Min-variance solve on cleaned data: OptimisationSuccess
  res ┴ Dict{Any, Any}: Dict{Any, Any}()
, 8 active names

6. Visualising the damage

A heatmap of the missingness mask makes the structure obvious: the wide band is asset 3 (dropped by the column filter), the short block is asset 2's halt, and the speckle is the scattered gaps that imputation fills.

using StatsPlots, GraphRecipesheatmap(1:N, 1:T, Float64.(ismissing.(vals)); xlabel = "Asset", ylabel = "Day",        colorbar_title = "missing", title = "Missingness pattern (raw data)", yflip = true)
Example block output

Summary

prices_to_returns is the single entry point for cleaning price data:

  • missing_col_percent / missing_row_percent drop assets and dates that are too sparse to trust, before any returns are computed.
  • impute_method fills the recoverable gaps with an Impute.jl imputor — Impute.LOCF() for halts and stale quotes, Impute.Interpolate() for short gaps.
  • The result is an ordinary ReturnsResult that feeds the rest of the pipeline unchanged.

This page was generated using Literate.jl.