Big project:
Currently cluster-experiments only accepts pandas DataFrames. tea-tasting has capabilities of
analyzing A/B analysis directly on data stacks (Polars, DuckDB, BigQuery, Snowflake) without pulling
data into pandas first.
Proposal
Integrate Narwhals to accept any
DataFrame-like object.
A separate, follow-up could add
Ibis support for true in-database
computation (BigQuery, Snowflake, ClickHouse, etc.).
Suggested scope (Phase 1 - Narwhals)
- Wrap public-facing
analyze() and power_analysis() entrypoints with
nw.from_native()
- Convert to pandas internally for now (zero-change to existing logic)
- Add Polars to the test matrix
Suggested scope (Phase 2 - Ibis)
- Push aggregations down to the backend before pulling into Python
- Only relevant for
AnalysisPlan.analyze(), not simulation-based power analysis
Big project:
Currently cluster-experiments only accepts pandas DataFrames. tea-tasting has capabilities of
analyzing A/B analysis directly on data stacks (Polars, DuckDB, BigQuery, Snowflake) without pulling
data into pandas first.
Proposal
Integrate Narwhals to accept any
DataFrame-like object.
A separate, follow-up could add
Ibis support for true in-database
computation (BigQuery, Snowflake, ClickHouse, etc.).
Suggested scope (Phase 1 - Narwhals)
analyze()andpower_analysis()entrypoints withnw.from_native()Suggested scope (Phase 2 - Ibis)
AnalysisPlan.analyze(), not simulation-based power analysis