Skip to content

Using the calculator ​

The calculator reproduces the PyIndexGUI desktop workflow in five steps:

  1. Import — pick a file and map its columns to date, price, product_id and the optional quantity, plus the date format (default %Y-%m-%d). A preview shows the first rows.
  2. Aggregate — choose the period frequency (1d, 1w, 1mo, 1q, 1y) and how prices aggregate within each (product, period): arithmetic, geometric or harmonic mean, or the quantity-weighted variants. Quantities are always summed.
  3. Balance (optional) — this step decides which products the indices are computed on. Remove products missing from some periods, or impute the missing cells carrying the last (forward) or next (backward) observation. Keep as is runs the matched-sample estimators: every period comparison uses the products present in both of its periods, and Geary-Khamis runs over the observed cells.
  4. Calculate — bilateral methods compare two chosen periods and return a number; multilateral methods return the full index series relative to the first period. Each mode has its own results card with a chart and a table: bilateral runs for the same period pair appear as bars (one per method, with a no-change reference at 1.0), and a different period pair starts a new chart. Every multilateral run is added to the chart as a new line so you can compare methods; any run can be removed with its ✕ button, and Clear results wipes all results. Calculations run in a background worker, so the page stays responsive even for heavy methods on large panels. Unbalanced-panel warnings are displayed inline.
  5. Export — download the bilateral runs, the multilateral series and the panel as CSV, or everything as one Excel workbook.

Tips ​

  • Geary-Khamis exposes its max iterations and tolerance options; Time Product Dummy offers the unweighted (OLS) variant.
  • Use GEKS-Jevons when your data has no quantities (e.g. web-scraped prices).
  • All computation happens locally in your browser via DuckDB-WASM and the jsindexnum library; no data is uploaded.