Commit Graph
45 Commits
Author SHA1 Message Date
FANGKKandClaude Opus 5 12b2ca531d Update data from Excel - 10/16-10/18
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-20 10:20:13 +08:00
FANGKKandClaude Opus 5 f23056bfb6 Refresh roster: 10 Adpingids added, none unattributed
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-19 11:35:13 +08:00
FANGKKandClaude Opus 5 911142df21 Update data from Excel - 10/15-10/17
赵国庆 starts spending, so the report now covers six buyers. The refreshed
export also backfills his 10/14 rows, which the previous file lacked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-19 11:21:33 +08:00
FANGKKandClaude Opus 5 9c6ffc0096 Update data from Excel - 10/12-10/14
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-15 15:18:46 +08:00
FANGKKandClaude Opus 5 a55d10f886 Update roster: all unattributed Adpingids now claimed
32 Adpingids added, 1 removed, no reassignments. Introduces a sixth
buyer, 赵国庆 (9 ids), who has no spend anywhere in the data yet and so
does not appear in the report.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-15 11:43:37 +08:00
FANGKKandClaude Opus 5 4cd23edf3f Update data from Excel - 10/11-10/13
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-15 10:53:51 +08:00
FANGKKandClaude Opus 5 4e5033ab78 Refresh roster straight from DingTalk export
Pulled 武汉自投投放下单_AM&Media Buy.xlsx and the 2610 consumption
workbook out of DingTalk via the browser pane. The roster adds 48
Adpingids and now officially carries every id that roster_extra.json was
covering, so nothing falls back to that file any more and no spend is
left unattributed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-10 15:33:38 +08:00
FANGKKandClaude Opus 5 f82266e49b Attribute 12895313/13085659/12808718 to 谭超/周梓君/万科
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-10 15:25:38 +08:00
FANGKKandClaude Opus 5 630208ecf5 Update data from Excel - 10/7-10/9
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-10 15:19:44 +08:00
FANGKKandClaude Opus 5 699501427b Update data from Excel - 10/6-10/8
2609 (8/31-10/7) fully supersedes 2026Week39平台消耗.xlsx, which is
removed; 2610 adds 10/8 and wins the overlapping October days.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-09 11:30:34 +08:00
FANGKKandClaude Opus 5 cc383fb823 Update data 9/25-9/27; detect data sources by content
The consumption export keeps changing filename (每日数据 -> Week39...),
which broke the glob each time. build_data.py now treats any workbook
containing a 平台消耗统计 sheet as a data source and orders them by the
latest date they contain, so the fresher file wins on overlapping days.

2026Week39平台消耗.xlsx covers 8/31-9/27 and fully supersedes the 2609
file, which is removed; 2608 stays for the earlier August dates.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 21:36:39 +05:30
FANGKKandClaude Opus 5 6fbf972b7a Update roster from 2026Week39平台消耗.xlsx
Despite the filename, that workbook is the 投手 roster (no Date or 花费
columns), and is a strict superset of the previous one: 30 Adpingids
added, none removed or reassigned. Spend is unchanged because no new
consumption data arrived; only the 负责 counts move.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-28 21:27:57 +05:30
FANGKKandClaude Opus 5 560e95d338 Attribute Adpingid 12398053 to 詹涵粤
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 13:57:09 +08:00
FANGKKandClaude Opus 5 e71d640b7f Update data from Excel - 9/15-9/17
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 12:15:22 +08:00
FANGKKandClaude Opus 5 c95bcbb7e3 Update data from Excel - 9/14-9/16
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 14:36:31 +08:00
FANGKKandClaude Opus 5 d0a9cec70d Consolidate roster to roster.xlsx and refresh attribution
Every roster the user sends arrives under a different filename, which
forced a code change each time. The roster now lives at a fixed
roster.xlsx; the three superseded copies are removed (git history keeps
them, and each was a strict subset of this one).

This roster claims all 14 previously unattributed Adpingids, so the
report has no unattributed spend. It also moves 5617321 from 周梓君 to
詹涵粤; that id has never spent, so only the 负责 counts shift.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:49:00 +08:00
FANGKKandClaude Opus 5 3c21689b8f Update data from Excel - 9/13-9/15
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 17:43:19 +08:00
FANGKKandClaude Opus 5 95657cfa92 Update data from Excel - 9/12-9/14
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 12:45:15 +08:00
FANGKKandClaude Opus 5 de25c7d4cd Update data 9/11-9/13; switch roster to 投手List.xlsx
投手List.xlsx is a strict superset of the previous roster (19 added,
none removed or reassigned) and claims every previously unmatched
Adpingid, so the report has no unattributed spend.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 13:32:14 +08:00
FANGKKandClaude Opus 5 62e44d7401 Update data from Excel - 9/8-9/10
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 12:24:25 +08:00
FANGKKandClaude Opus 5 c7b0296024 Update data from Excel - 9/7-9/9
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 12:40:49 +08:00
FANGKKandClaude Opus 5 bcc1415c0d Update data from Excel - 9/6-9/8
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 14:49:28 +08:00
FANGKKandClaude Opus 5 af88474c3e Update data from Excel - 9/5-9/7
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 11:11:42 +08:00
FANGKKandClaude Opus 5 88084ce5ff Add period-over-period trend table at top of report
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>
2026-09-07 23:42:03 +08:00
FANGKKandClaude Opus 5 b33cfcf6cb Update data from Excel - 9/4-9/6
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-07 23:36:36 +08:00
FANGKKandClaude Opus 5 442aaacc8a Switch roster to 武汉自投投放下单_AM&Media Buy.xlsx
New roster is a strict superset of 投手.xlsx (14 added, none removed, no
reassignments). build_data.py now picks the roster by an explicit
precedence list, so the old 投手.xlsx stays as a fallback.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 15:33:15 +08:00
FANGKKandClaude Opus 5 1746ce0c7f Update data from Excel - 9/1-9/3
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 15:30:01 +08:00
FANGKKandClaude Opus 5 2413c1b428 Exclude cn.com.vtmarkets and 91555309; attribute 11892329 to 黄政
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 17:45:14 +08:00
FANGKKandClaude Opus 5 163a6e321b Update data from Excel - 8/31-9/2
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-03 17:40:16 +08:00
FANGKKandClaude Opus 5 5a6c0ed95b Update data from Excel - 8/30-9/1
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 11:27:43 +08:00
FANGKKandClaude Opus 5 a62c542145 Attribute Adpingids 11729820 and 11729830 to 黄政
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 13:38:36 +08:00
FANGKKandClaude Opus 5 b36405b1ba Attribute Adpingid 11729927 to 黄政 via roster supplement
New roster_extra.json fills in Adpingids missing from 投手.xlsx. It only
applies when the roster has no entry for that id, so a future roster
always wins.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 13:36:47 +08:00
FANGKKandClaude Opus 5 55888a6aa4 Use standalone 投手.xlsx as the roster source
Monthly data files no longer carry a 投手 sheet, so build_data.py now
prefers a standalone 投手.xlsx and falls back to the newest embedded
sheet. This roster is content-identical to the 2608 embedded one, so
data.json is unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 13:34:01 +08:00
FANGKKandClaude Opus 5 e6061d1286 Support monthly source rollover; update data - 8/29-8/31
The 2609 file carries only 8/31 and has no 投手 sheet, so build_data.py
now globs every *每日数据-武汉萌奇熊.xlsx, merges 平台消耗统计 per date
(newer filename wins for a repeated date), and takes the roster from the
newest file that still has a 投手 sheet. Future month rollovers need no
code change.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-01 13:29:22 +08:00
FANGKKandClaude Opus 5 e6ec3e1d22 Change data source label to 萌奇熊日报
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 18:53:26 +08:00
FANGKKandClaude Opus 5 d3e2fa9f4a Exclude Adpingid 91554851
Adping-level only; com.vuclip.viu stays out of the package exclusion list
per request, so its other Adpingids remain in the report.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 15:45:38 +08:00
FANGKKandClaude Opus 5 0b774fd071 Update data from Excel - 8/28-8/30
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 15:42:25 +08:00
FANGKKandClaude Opus 5 ef86d383f8 Add permanent Adpingid-level exclusions
exclude.json gains an "adpings" map (18 ids, value = package for
reference) alongside the existing package list. build_data.py drops those
Adpingids from both the 投手 ownership counts and the spend rows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 10:43:53 +08:00
FANGKKandClaude Opus 5 b917f9bccf Update data from Excel - 8/25-8/27
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 11:52:03 +08:00
FANGKKandClaude Opus 5 fcf9a5c01b Add Geo suffix and Adpingid column to 投手明细
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>
2026-08-27 14:39:38 +08:00
FANGKKandClaude Opus 5 06f701699e Show Adpingid counts per buyer in 投手明细
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>
2026-08-27 14:31:45 +08:00
FANGKKandClaude Opus 5 d980690ff2 Add spend labels on bars and $ currency symbols
- 各投手本周期内投放花费: 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>
2026-08-27 14:23:36 +08:00
FANGKKandClaude Opus 5 a39846af35 Update data from Excel - 8/24-8/26
Refresh xlsx source and regenerate data.json via build_data.py.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-27 11:45:01 +08:00
FANGKKandClaude Opus 5 8d3716b726 Exclude specified packages from report
Add exclude.json (12 package names, permanent) and build_data.py so the
report is reproducible. Exclusion is exact-match on package name, applied
both to 平台消耗统计 rows and to Adpingids whose 投手 pkg is excluded.
Exact match avoids false positives (e.g. in.swiggy.android vs "igg").

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 19:06:30 +08:00
FANGKKandClaude Opus 5 ccc7a1aa7a Update data from Excel - 8/23-8/25
Refresh xlsx source and regenerate data.json from
平台消耗统计 (Date/Adpingid/花费) x 投手 (Adpingid/Media Buyer).
@某某 merged with 某某; Adpingid without a buyer excluded.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 18:59:19 +08:00