vc_004 · Multi-table aggregation

Status: ✓ Passing · Last run: 2026-08-24T17:43:52 · Pipeline: v2 · History: 13/17 runs passed (76%)

What was tested

Two-table synthetic dataset: 500 clients + ~4,000 transactions joined on client_id. Target lives on the clients table. The signal must be recovered by aggregating transactions per client (count, mean amount, total). Verifies that the pipeline handles multi-row-per-entity sources via aggregate features rather than a row-multiplying equi-join.

What we planted in the data

What the system did

Top features by importance:

What we checked — all assertions passed

Status Assertion Detail
row_count_eq training rows = 500, expected = 500
no_pipeline_errors clean run
auc_in_band AUC = 0.750 inside band [0.65, 0.95]

How this could have gone wrong

Why this case matters

Multi-table is the failure shape the panel-fan-out fix had to handle generically: when a source table has many rows per entity, the pipeline must aggregate it (correlated-subquery features with time bounds), not blindly equi-join it into pred_grid (which would inflate training rows and leak future transactions into the features for any given snapshot). This case anchors that behavior on a clean two-table synthetic.

Reproducing

# from auto_insight_api/
python -m validation.v2 run vc_004 --pipeline v2 -v

← back to validation report