Power and MDE Methodology

GeoSC power is a simulation-based design diagnostic. For effect ee and duration dd , it estimates

Power^(e,d)=successful simulations with p<αsuccessful simulations. \widehat{Power}(e,d) = \frac{\text{successful simulations with }p < \alpha} {\text{successful simulations}}.

Failed simulations are excluded from the denominator and reported separately. A row is valid only when at least one simulation succeeds and its failure rate does not exceed power_failure_rate_threshold. Validity does not assert that the DGP or design assumptions are credible.

Implemented workflow

For every effect-duration grid point, GeoSC:

  1. pivots the long CSV to a unit-by-period matrix;
  2. uses periods before treatment_date as the fixed observed pre-period;
  3. demeans each unit, fits an SVD factor model, and estimates factor dynamics;
  4. simulates a post-period panel;
  5. computes one baseline as the mean across all treated units and all pre-periods;
  6. multiplies that pooled baseline by effect_size and applies the resulting same absolute effect path to every treated unit;
  7. appends simulated post data to the observed pre-period;
  8. calls SparseSC with treated periods at the split and counts results.p_value < alpha.

This denominator means a configured 10% lift is relative to the pooled treated pre-period mean. It is not a separate 10% of each treated unit’s own baseline. The output records the baseline and full absolute injection.

The power loop uses the SparseSC estimator and its top-level placebo p-value, but it is not identical to geosc infer. It does not run inference’s panel policies, cooldown resolver, assumption checks, CI configuration, result processor, or full SparseSC config surface. “Same inference path” is therefore too strong; align panels and settings explicitly.

Effect patterns

  • constant and immediate: full absolute effect in every simulated period;
  • ramp: linear sequence from zero to full effect, inclusive;
  • decay: full effect followed by exp(0.1t)\exp(-0.1t) decay;
  • any other value: configuration error.

The 0.1 decay rate is not configurable in version 0.3.1.

Grid-based MDE

For duration dd and target power qq , GeoSC reports the smallest valid tested effect that reaches the target:

MDEd=min{eE:valid(e,d), Power^(e,d)q}. MDE_d = \min\{e \in \mathcal E: valid(e,d),\ \widehat{Power}(e,d) \geq q\}.

target_power defaults to 0.80 in the CLI and pipeline but is configurable. No interpolation is performed. If no valid tested effect reaches the target, no grid-based MDE is established. Distinguish failure to attain the target on valid rows from having no valid simulation rows. An untested effect is not assessed.

Monte Carlo uncertainty

The CSV includes a Wilson interval around the estimated detection proportion. Its confidence setting uses the configured alpha. This interval describes finite simulation uncertainty, not DGP misspecification, donor-selection uncertainty, or future-campaign uncertainty. If it straddles target power, increase n_simulations before making a threshold decision.

Worked output

These rows are hypothetical illustrations, not retained benchmark results.

durationeffect_sizepowerintervalfailure_ratevalid
280.050.420.36–0.480.00true
280.100.760.71–0.810.00true
280.150.910.87–0.940.00true
350.100.840.79–0.880.00true
420.100.890.85–0.920.25false

At 80% target power, the 28-period grid-based MDE is 15% and the 35-period MDE is 10%. The 42-period row is excluded despite high estimated power.

Power is computationally intensive because total work scales approximately with effect sizes × durations × simulations × SparseSC fit and placebo cost. This differs from a closed-form regression MDE, but computational intensity is not by itself evidence of better calibration.