# Looker Studio dashboard specification

## Data source

Use the `v_roi_aud`, `v_lead_last_click`, and `v_wasted_spend` BigQuery views. Enable BI Engine only if measured query latency requires it. Default date range is last 7 days; reporting currency is AUD.

## Pages

1. **Executive pulse:** scorecards for leads, revenue, refunds, net revenue, cost, ROI; comparisons for last 24 hours, 7 days, 30 days, and custom range.
2. **Acquisition detail:** platform → campaign → ad group/ad set → ad drill path; separate Search and Content sections.
3. **Search and placement waste:** spend with zero leads, negative contribution, low partner sale rate, search terms, and placements.
4. **Partner economics:** lead count, gross sale value, refunds, net value, sale rate, and value per lead by partner.
5. **Lead explorer:** lead ID, event timestamp, platform, attribution method, campaign, partner, sale value, refund, vertical. Do not expose raw IP; use hash only when operationally necessary.
6. **Data quality:** unattributed rate, click-ID coverage, webhook freshness, spend freshness, duplicate events prevented, and currency-rate freshness.

## Controls

Date, vertical, platform, partner, campaign, device, attribution method, and reporting currency. Every chart must respect the date/vertical/platform controls.

## Performance budget

- Dashboard target: under 5 seconds at current volume.
- Query only partition-pruned views; avoid cross-source blending in Looker Studio.
- Pre-aggregate daily campaign/partner tables if p95 exceeds 4 seconds.
- Extract data only as a measured fallback; keep lead explorer direct to BigQuery.
