Temporal Placebo Testing in Causal AI: Falsifying Impossible Effects | Ushasvi
In Week 8 of the Causal Couture project, Ushasvi Rachel adds a temporal placebo test that checks an impossible direction, future engagement against current sales. A strong signal there suggests confounding, common trends, or misspecification.
Ushasvi Rachel of Humanitarians AI presents Week 8 of the Causal Couture project, which asks a pointed question: what happens if you deliberately test the model in a direction that cannot be causal? The answer is a temporal placebo test, added as another way for the project to challenge its own estimate rather than accept it at face value.
Where Week 8 starts
Week 7 added SKU-level cluster bootstrap uncertainty. Earlier work in the project already combined adjusted estimation with uncertainty methods, shuffled placebo testing, overlap and stockout robustness checks, and observational evidence reporting. Week 8 adds a different reliability challenge on top of that.
The primary question stays the same
The main question remains: what is the causal effect of social engagement on subsequent product sales? The estimator is an adjusted observational analysis under assumptions, not established causality. Its intended direction runs forward, with engagement at time T and product sales on the next calendar day. Exposure precedes outcome, although temporal ordering alone does not establish causality.
Reversing the logic
The temporal placebo reverses that logic. It tests future engagement at time T plus one against current sales at time T. Future engagement acts as a negative control exposure, because it cannot cause sales that already occurred. The model can still estimate an association in this impossible direction, but the result is a falsification signal and not a second causal effect.
Reading the signal
A substantial relationship in the impossible direction can point to remaining temporal structure, confounding, common trends, or model misspecification. It does not prove which explanation is responsible. It prompts further investigation. A relatively small placebo relationship is more reassuring, while a large one suggests such issues may remain. Neither result is an automatic verdict: passing does not prove causality or validate the causal diagram, and failing does not automatically invalidate the primary estimate.
How it was implemented
The module causal_temporal_placebo.py builds future engagement within each SKU and then estimates the impossible direction as an independent reliability check. Future engagement is accepted only for the same SKU on exactly the next calendar day, so a later observation across a date gap is not treated as consecutive. The placebo model adjusts for prior sales, prior engagement, inventory availability, SKU fixed effects, and day-of-week effects. Inventory-constrained observations are excluded where the flag is available.
The procedure checks required variables, temporal order, and sample adequacy. An inadequate sample returns an insufficient-data result rather than an unreliable estimate, and observation and SKU counts are reported for transparency.
Exposed through FastAPI and Swagger
The Phase 5 Causal Validation endpoint now exposes a temporal placebo test, while the Week 7 cluster uncertainty and the original uncertainty output remain available as complementary checks. The Causal Intelligence endpoint now includes the temporal placebo and carries forward SKU-level cluster bootstrap uncertainty. The existing evidence score was intentionally left unchanged, and the placebo is reported separately to preserve what the score already means.
Key takeaways
- A temporal placebo tests an impossible direction: future engagement against current sales.
- Future engagement serves as a negative control exposure.
- A large placebo relationship hints at confounding, common trends, or misspecification.
- Passing does not prove causality, and failing does not invalidate the estimate automatically.
- Future engagement counts only for the same SKU on exactly the next calendar day.
- The model adjusts for prior sales, prior engagement, inventory, SKU effects, and day of week.
- Too little data returns insufficient data instead of an unreliable number.
Try it yourself
For any causal claim you work with, name an exposure that cannot possibly cause the outcome, such as a future value, and test it the same way as your real exposure. Report the result separately from your main estimate and treat a strong signal as a reason to investigate.
Chapters
- 0:00Introduction to temporal placebo testing in Causal Couture
- 0:20Reversing temporal logic: Why future engagement cannot cause past sales
- 0:45Interpreting falsification signals from impossible relationships
- 1:10Implementation in causal_temporal_placebo.py and SKU constraints
- 1:35Integrating temporal placebo diagnostics into FastAPI and Swagger
Full transcript(auto-generated, with timestamps)
Introduction to temporal placebo testing in Causal Couture
[0:00]I'm Ashasvi Rachel. Week seven added SKU level cluster bootstrap uncertainty. Phase five already combined adjusted estimation to uncertainty methods, shuffled placebo testing, overlap, stockout robustness, and observational evidence reporting. Week eight adds a different reliability challenge. What
Reversing temporal logic: Why future engagement cannot cause past sales
[0:20]Happens if we deliberately test the model in a direction that cannot be causal? A reliability system should test whether similar structure appears where the proposed direction is impossible. The primary question remains, what is the causal effect of social engagement on subsequent product sales? The estimator remains an adjusted observational analysis under assumptions, not established causality. The intended
Interpreting falsification signals from impossible relationships
[0:46]Direction runs forward. Engagement at time T, then product sales on the next calendar day. Exposure precedes outcome, although temporal ordering alone does not establish causality. The temporal placebo reverses that logic. It tests future engagement at T plus one against current sales at T. Future engagement acts as a negative control exposure. Future engagement
Implementation in causal_temporal_placebo.py and SKU constraints
[1:12]Cannot cause sales that already occurred. The model can estimate an association in this impossible direction, but it is a falsification signal, not a second causal effect. A substantial relationship in the impossible direction can signal remaining temporal structure, confounding, common trends, or model misspecification. It does not prove which explanation is
Integrating temporal placebo diagnostics into FastAPI and Swagger
[1:35]Responsible. It prompts further investigation. I implemented causal_temporal_placebo.py. It constructs future engagement within each SKU, then estimates the impossible direction as an independent reliability check. Future engagement is accepted only for the same SKU on exactly the next calendar day. A later observation across a date gap is not treated as consecutive. The placebo model adjusts for prior sales, prior engagement, inventory availability, SKU fixed effects, and day of week effects. Inventory constrained observations are excluded where the appropriate flag is available. The procedure checks required variables, temporal order, and sample adequacy. An inadequate sample returns insufficient {underscore} data instead of an unreliable estimate. Observation and SKU counts provide transparency. Get/Phase 5/Causal Validation now exposes temporal {underscore} placebo {underscore} test. Week 7, cluster {underscore} uncertainty, and the original uncertainty output remain available as complimentary checks. Get/Phase 5/Causal Intelligence now includes the temporal placebo and carries forward SKU level cluster bootstrap uncertainty. The consolidated output surfaces the primary estimate
With distinct reliability diagnostics. The architecture connects the primary adjusted effect to uncertainty, shuffled placebo testing, temporal falsification, overlap, stock out analysis, model robustness, and observational evidence reporting. Each challenges a different weakness. The existing evidence score was intentionally left unchanged. The temporal placebo is reported separately, preserving the score's established meaning while making the new diagnostic visible. A relatively small placebo relationship is more reassuring. A large relationship suggests temporal structure, confounding, common trends, or specification issues may remain. Neither result is an automatic causal verdict. Passing does not prove causality or validate the causal diagram. Failing does not automatically invalidate the primary estimate. The diagnostic was documented and integrated successfully in the fast API and Swagger environment. Week eight combines adjusted estimation, row level and SKU level uncertainty, shuffled and temporal placebo tests, overlap, stock out analysis, robustness, and observational evidence reporting. Causal Co-op Tour increasingly challenges its own estimate rather than accepting it at face value.
More from Causal Couture
4:54Measuring Causal Uncertainty with Cluster Bootstrapping | Humanitarians AI
4:08Correlation is Not Causation: Separating Four Key Analytical Tasks
9:35Causal Couture Week 6: Launching the Causal Intelligence Layer
6:22Causal Couture Week 5: Implementing Scenario Intelligence & Trends
4:33Causal Couture Week 4: Preparing the Phase 4 Architecture
3:59