Location Matching
ProofPod's matching algorithm selects which locations should be in your test group and which should serve as controls. The goal: create a control group that behaves as similarly as possible to the test group, so any difference during the experiment can be attributed to your intervention.
The synthetic control method
Rather than picking a single "best match" control location for each test location, ProofPod creates a synthetic control—a weighted combination of multiple control locations that, together, closely replicate the test group's historical behavior.
This approach is more robust than one-to-one matching because it can capture patterns that no single location matches on its own.
How matching works
1. Deseasoning
First, ProofPod removes seasonal patterns from your data. Weekly averages are modeled using Fourier harmonics (sine/cosine waves), and each location's data is expressed as a residual—what's left after removing predictable seasonality.
This ensures matching is based on genuine behavioral similarity, not just "both locations are busy in December."
2. Feature scoring
Each location is scored on three dimensions:
- Stability — how smooth or noisy the location's time series is. Stable locations make better test subjects.
- Representativeness — how similar the location's pattern is to the overall average. Representative locations generalize well.
- Donor degree — how many other locations correlate well with this one. High donor degree means there are good potential controls available.
3. Group selection
ProofPod reserves a "donor bank" of locations (about 30% of your footprint) that have the highest donor degree—these make the best controls. Then it selects test locations that balance stability and representativeness.
4. Weight fitting
For the control group, ProofPod assigns weights to each donor location. The weights are optimized to minimize the prediction error between the weighted control and the test group during the pre-period.
- With 4+ test locations: equal-weight top-k donors (simple, robust)
- With fewer test locations: constrained optimization (synthetic control weights)
Quality metrics
After matching, ProofPod reports:
- R² — how well the synthetic control tracks the test group historically. Above 0.7 is good; below triggers a warning.
- RMSPE — root mean squared prediction error during the pre-period
- Warnings — insufficient donors, low fit quality, group imbalance
Smart, Hybrid, and Manual modes
- Smart — ProofPod runs the full matching algorithm and assigns groups automatically. Best for most users.
- Hybrid — starts with Smart's recommendation, then lets you drag locations between groups. Good when you have business constraints (e.g., "Store #5 must be in treatment").
- Manual — you assign every location yourself. ProofPod still shows matching diagnostics so you can assess quality.
Under the hood
The matching pipeline: (1) filter locations with < 8 weeks of data, (2) center each location by its mean, (3) fit Fourier seasonal to chain-level average, (4) compute residuals normalized as fraction of location mean, (5) compute feature scores via correlation matrix, (6) greedy group selection minimizing a stability/representativeness cost function, (7) constrained quadratic optimization for donor weights with min-contributor and max-weight constraints.