Loading...
Loading...
Interprets completed doubleml-pipeline output directories across treatments, outcome KPIs, entity dimensions (geo_col, item_col), calendar periods, and CATE covariates, turning Double Machine Learning estimates into causal insight reports, ROI or effect-per-unit verdicts, and resource allocation recommendations. Use when pointing at a doubleml-pipeline output_dir (containing metadata.json and step4_consolidated_results/) or when asked which treatments paid back, where or when effects are strongest, what drives effect heterogeneity, whether estimates are trustworthy, or how to reallocate budget. Don't use for fitting new DoubleML models, running raw regressions on input CSVs, or forecasting non-causal time series.
npx skill4agent add google/doubleml-pipeline causal-insightsdoubleml-pipelineoutput_dirmetadata.jsongeo_colitem_colmetadata.jsonconsolidated_1a_full_df.csvtreatment_colsx_cols_listcovariates_for_cate_listgeo_colitem_coloptimize=Truerun_sensitivity=True| Step | File in | What to extract |
|---|---|---|
| 1 | | |
| 2 | | Row-level panel + |
| 3 | | Pooled |
| 4 | | Phase 3 repetition stability ( |
| 5 | | OVB |
| 6 | | Phase 0 |
| 7 | | |
estimated_incremental_KPI_<d>_2.5%_97.5%(T - zero_point) * boundT < zero_pointnp.minimum(c25, c975).sum()np.maximum(c25, c975).sum()effect_per_unitT.sum()treatment_spend_colsconsolidated_3b_summary*.csvtotal_estimated_roiincremental_kpi / total_input<d>treatment_types[d]percentagepriceimpressionsconsolidated_1a_full_df.csvincremental_kpidf[treatment_spend_cols[d]].sum()effect_per_unit[roi_low, roi_high]opt_threshold_roiroi_high < threshold_roinot_worth_investingroi_low > threshold_roiworth_investingundeterminedopt_threshold_roinullpricebenchmark price - price<price>_gapmetadata["price_benchmarks"][d]effect_per_unitmediancate_coef_dict_pooling.csvmodel == "median"c<c>_pvaluebs(<c>, ...)C(<c>)...p_adj = min(1.0, min(ps) * len(ps))< 0.05strong (p=...)< 0.10weak (p=...)>= 0.10none (p=...)p<0.0010.001TrueContrib_*total_ground_truth_KPItrue_incremental_KPI_*ground_truth_*true_total_roiSMAPER_squaredMAERMSEmetadata["ground_truth_metrics"]cluster_dml.derived_columnscluster_date_block1 / roi_on_spendoutcome_coleffect_per_unit100treatment_types[d] == "percentage"[0, 1]output_diroutcome_colincremental_kpimetadata.jsondailyweeklymonthlygeo_colitem_coltreatment_colstreatment_typestreatment_spend_colsx_cols_listcovariates_for_cate_listopt_threshold_roicluster_dmlspendincremental_kpiroi_on_spendeffect_per_unitshare_of_outcomegeo_colitem_colconsolidated_1a_full_df.csvgeo_colitem_colroi_on_spendincremental_kpigeo_colitem_colcovariates_for_cate_listdate_colwithin_quantile_binsgeo_colitem_colrobustness_valuemax(benchmark_cf_d, benchmark_cf_y)low_sample< 30plausibility_flagsci_separationroi_on_spendeffect_per_unitplausibility_flagsgap_in_row_sdratio_to_overalltreated_sharep25/p50/p75007_optimization/geo_colitem_coloptimization_yearly_summary.csvincreasedreducedcut_to_zerooptimization_metrics.csvoptimize=Truedate_coleffect_directionpositivenegativezerostrong (p=0.0022)roi_on_spendworth_investingnot_worth_investingundeterminedoptimizationcate_covariateconfounderunusedcovariates_for_cate_listcovariates_for_cate_listincremental_kpiconfounderx_cols_listunusedcovariates_for_cate_listx_cols_listconsolidated_1a_full_df.csv_l<k>geo_colitem_col| Check | Required Action |
|---|---|
| Payback & multiplicity | Keep |
| Driver evidence | Claim a covariate shifts per-unit response only when CATE grade is |
| Plausibility & support | Flag |
| Model & Phase 0 | Caveat high repetition CV ( |
| Optimizer discipline | Frame |
Fact:Inference:Hypothesis:spendincremental_kpiroi_on_spendRV