build_data.py now also computes each buyer's total for the preceding
3-day window under identical rules (exclusions, attribution), exposed as
prev_total plus meta.prev_range. index.html renders it as the first
panel, with green/red deltas and a total row; the panel stays hidden if
no prior period exists.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Package now renders as pkg_GEO, where GEO is the region with the highest
total spend for that package. The new Adpingid column shows the
top-spending Adping within that region, so label and id stay consistent.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
build_data.py now emits active_ids (Adpingids with spend in the window)
and owned_ids (Adpingids assigned to the buyer, exclusions removed).
active_ids sums to the 覆盖 Adpingid 数 card.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- 各投手本周期内投放花费: draw value labels at each bar end via a small
inline Chart.js plugin (no extra CDN dependency); right padding added
so labels stay inside the panel.
- Prefix all spend figures with $: summary card, both chart axes and
tooltips, buyer subtotals, and package detail tables.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>