單一或多個通路
各通路分開呈現異常、可核對證據、待確認原因與下一步。
CASE 2 / 通路費用
從管理問題、分析規格與 Python 測試開始,建立一個能重複使用的單一 Project。


每期都要看的費用、收入、預算、YOY 與費用率,應由固定函式用相同口徑計算;看到異常後,才值得追問活動、跨期入帳、退貨或通路結構。本案採用單一 Project、兩階段工作:Python 負責選項式分析與 Pivot,AI 負責把已驗證的結果寫成不同讀者需要的報告。
先選擇這次要支持的決策:要找預算落差、觀察 YOY、確認費用集中、追查資料品質,或準備通路溝通。每個分析至少要寫清楚四件事:
| 欄位 | 要回答的問題 |
|---|---|
| 比較對象 | 實際對預算、今年對去年,或通路對整體? |
| 指標與公式 | 金額、差異率、費用率、貢獻度或異常筆數? |
| 觸發門檻 | 什麼條件成立時,才需要進一步追查? |
| 人工補證 | 活動、合約、退貨、跨期入帳或分類原因由誰確認? |
這一段不是直接叫 ChatGPT 寫一支分析程式。你會先用範本工作簿建立共同語言,再依序核准資料契約、分析選單、輸出契約、控制文件與程式。每通過一層,才進入下一層。
在新對話同時上傳 channel_fees_training.xlsx 與 Case02_原生PivotTemplate.xlsx。先限制 ChatGPT 不做結論、不寫程式。
我已上傳通路費用練習工作簿與原生 PivotTable 範本。
請先讀取兩個檔案,建立「資料結構盤點」:列出每張工作表的用途、表頭列、必要欄位、日期與金額型態、公式、外部連結、合併儲存格、可作為主鍵的欄位,以及目前看不懂或需要我確認的地方。
請另外說明原生 PivotTable 範本的來源資料欄位、列、欄、值與篩選器。這一輪不要計算分析結果、不要猜管理原因、不要寫 Python。
檢查點:ChatGPT 應辨認彙總表、今年與去年明細、金額、過帳日期、通路與分類欄位;不應把工作表名稱或欄位意義自行改寫成新的事實。
請根據剛才的資料結構訪談我,最多提出六個會改變分析設計的問題。至少涵蓋:報告使用者、分析期間、今年與去年如何對齊、預算口徑、通路選擇、差異門檻,以及哪些原因必須由人工補證。
每題說明不同答案會影響哪個指標、函式或報告。先不要設計檔名或寫程式。
若你不知道某個口徑,可以請 ChatGPT 提出選項;但要選定暫行做法,並把未確認事項留在人工確認清單。
請把已確認的資料結構與管理口徑整理成資料契約。每個必要欄位要記錄來源工作表、原始欄名、資料型態、單位、期間、空值處理、可否轉換,以及輸出中如何回指證據。
另請定義 COMPLETE、PARTIAL、STOPPED:缺哪些欄位必須停止;哪些缺漏仍可完成部分分析;零分母、重複文件號碼、日期跨期、分類改名與公式錯誤如何處理。
只產生契約提案,不建立程式。最後標示 DATA-CONTRACT-GATE。
檢查完再回覆 DATA-CONTRACT-GATE:通過。沒有這一關,後續 Python 很可能讀錯列或悄悄補值。
依核准的資料契約,將管理問題設計成 A00–A11 分析選單。每項都要列出:使用者要回答的問題、固定或探索性質、必要欄位、公式、參數、輸出欄位、證據位置、觸發門檻、停止條件與至少兩個反例。
A00 必須先檢查工作簿健康;A09 要產生可篩選整理表;A10 要產生交叉彙總與原生 PivotTable 所需來源;A11 要產生圖表資料。先不要寫程式。
逐項確認分析名称、公式與範圍後,回覆 ANALYSIS-SPEC-GATE:通過。固定選單不是越多越好,而是每一期都能用相同口徑重跑。
請依核准的分析選單,設計兩階段輸出契約。
第一階段是分析結果包,必須涵蓋資料品質、A00–A11 結果、Pivot Source、Pivot Spec、摘要、待確認事項、探索觸發器、假說登錄、執行紀錄、交接與 MANIFEST。
第二階段只能讀取已驗證的分析結果,產生業務版、主管版、證據對照、人工確認清單、版本交接與報告 ZIP。業務版可選單一或多個通路,但多通路必須分段;主管版需涵蓋收入、費用率、預算使用率、差異貢獻、集中度、異常筆數與資料品質。
請先提出檔名、欄位、狀態與打包規則,不寫完整內容。最後標示 OUTPUT-CONTRACT-GATE。
另開新對話,只上傳核准的資料契約、分析規格與輸出契約。
請依核准文件建立單一 ChatGPT Project 的控制層:Project Instructions、固定案件控制表、SKILL.md、管理指標參考資料與 analysis registry。
Instructions 要規定兩階段順序、檔案讀取、狀態、失敗處理、輸出與人工邊界;Skill 要規定何時呼叫分析程式、不得重算報告數字、不得把假說寫成原因;registry 要讓 A00–A11 的函式、參數、必要欄位與輸出可以被查核。
先檢查三者是否一致,再列出 CONTROL-GATE;本輪先不要打包 ZIP。
CONTROL-GATE 通過。請依 registry 建立分析程式與報告程式。
程式必須用固定函式執行 A00–A11,產生 Excel、UTF-8 BOM CSV、Pivot_Source.xlsx、Pivot_Spec.json、圖表資料與兩種結果 ZIP。另建立可在 Windows Excel 產生或重新整理原生 PivotTable 的受控方法;不得把一般彙總表稱為原生 PivotTable。
請用範本工作簿執行正常案例,並建立缺欄位、空資料、零分母、重複資料、分類改名、跨期月份與極端值測試。失敗時先修正,不要封裝 Sources。
建立一個新對話,只上傳剛完成的固定文件與練習工作簿,從 A00 跑到報告包。完成後再下載本頁的兩份範例結果比較檔案種類、欄位與數字口徑;範例結果不要在建置前上傳,避免 ChatGPT 只模仿答案。
請執行端到端檢查:先跑 A00,再跑 A01–A11,建立分析結果包;接著只使用已驗證結果建立業務版與主管版報告包。
請逐項證明:必要檔案存在且非空、CSV 有 UTF-8 BOM、Excel 工作表可開啟、原生 PivotTable 可重新整理、每個報告數字能回到證據、未知原因仍標示待確認、ZIP 有 MANIFEST,而且重新執行可得到相同口徑。全部通過後才建立 Project Sources ZIP。
| 完成訊號 | 不合格訊號 |
|---|---|
| A00–A11 與 registry、程式、輸出契約一致 | 頁面有十二個選項,但程式或 registry 少一項 |
| 分析結果與報告分兩階段 | AI 在寫報告時重新解讀原始 Excel |
| 範例工作簿、反例與重跑均通過 | 只有「程式可執行」的文字宣告 |
| 原生 PivotTable 能在 Excel 重新整理 | 只有 Python 交叉彙總表 |
Project Sources 不是把一段長提示詞壓縮起來,也不是把聊天紀錄全部打包。它是一組分工清楚的固定檔案:README 負責帶路,Instructions 控制整體順序,Skill 記錄專業方法,registry 連接分析選項與程式,契約與範本固定輸出,tests 證明整包真的能運作。
上傳練習工作簿、PivotTable 範本,以及前一段核准的資料契約、A00–A11 規格與輸出契約。不要先上傳範例答案。
我要把已核准的 Case 2 規格製作成一個 ChatGPT Project Sources ZIP。請先提出檔案藍圖,不要立即寫檔。
藍圖必須包含 README.md、00_Project_Instructions.md、00_案件控制表.md、SKILL.md、兩份輸出契約、analysis/registry.json、分析與報告程式、references、templates、tests,以及原生 PivotTable 範本。
請用表格說明每個檔案的責任、它讀取哪些檔案、輸出給誰、不得做什麼,以及它和其他檔案如何保持一致。最後列出建立順序與驗收方式。
先檢查:README、Instructions 與 Skill 不得重複扮演同一個角色;A00–A11 必須能從 registry 連到程式與輸出契約。
| 批次 | 建立內容 | 這一批通過的條件 |
|---|---|---|
| 控制層 | README、Instructions、Skill、案件控制表、Sources 建立指南 | 入口、執行順序、停止條件與人工責任一致 |
| 介面層 | 兩份輸出契約、registry、管理指標參考 | A00–A11、欄位、狀態與證據位置沒有漏接 |
| 執行層 | 分析程式、報告程式、Pivot 工具、templates | 程式只依核准介面工作,不自行補值或改口徑 |
| 驗證層 | registry、端到端多通路與 Pivot 結構 tests | 三項測試都能從新解壓的資料夾重現 |
請建立第一批「控制層」實體檔案,提供每個檔案的下載連結,不要只把內容貼在聊天視窗。
README 寫給第一次解壓的使用者;Project Instructions 控制整個 Project;SKILL.md 說明通路費用分析方法與邊界;案件控制表固定角色與人工 Gate。建立後請做交叉檢查,列出任何不一致,等我確認後再進下一批。
後三批沿用同一做法:每次只建立一批、提供實體檔案、做交叉檢查,確認後才繼續。若 ChatGPT 只回傳程式碼區塊,請明確要求「寫入檔案並提供下載」,不要自行複製到不同位置後直接打包。
case02_channel_fees/
├─ README.md
├─ SOURCES_PACKAGE_BUILD_GUIDE.md
├─ 00_Project_Instructions.md
├─ 00_案件控制表.md
├─ SKILL.md
├─ ANALYSIS_OUTPUT_CONTRACT.md
├─ REPORT_OUTPUT_CONTRACT.md
├─ PIVOT_TEMPLATE_README.md
├─ analysis/ registry、分析程式、報告程式、Pivot 工具
├─ references/ 管理指標定義
├─ templates/ Pivot、業務版與主管版範本
├─ examples/ 原生 PivotTable 範本
└─ tests/ registry、端到端多通路與 Pivot 結構測試
ZIP 第一層只放一個 case02_channel_fees 資料夾。每期 Excel、分析結果、報告結果、聊天紀錄與課堂解答都不屬於 Sources。
現在不要直接宣告完成。請先在新的暫存資料夾組裝 case02_channel_fees,逐項檢查必要檔案非空、JSON 可解析、A00–A11 在 registry/程式/契約中一一對應、測試可從該資料夾執行、PivotTable 範本可開啟。
再檢查 ZIP 不含巢狀 ZIP、__pycache__、.pyc、~$ 暫存檔、每期資料或執行結果。Markdown、JSON、Python 使用 UTF-8;CSV 若提供給 Excel 使用,必須是 UTF-8 BOM。
只有全部通過,才建立 case02_channel_fees_project_sources.zip,並同時提供:ZIP 下載連結、檔案清單、測試結果、未執行項目與已知限制。
下載 ZIP,建立下方驗證資料夾。Sources 與每期輸入必須分開;測試會從同一個驗證資料夾找到練習工作簿,但不會把工作簿包進固定 Sources。
case02_validation/
├─ 03_Project_Sources/
│ └─ case02_channel_fees/ ← Sources ZIP 解壓位置
└─ 04_練習輸入/
└─ channel_fees_training.xlsx
cd 03_Project_Sources/case02_channel_fees
python -X utf8 -m pytest -q tests
先閱讀 README,再執行 A00。能在這個乾淨環境找到 Instructions、Skill、registry、程式、範本與輸入資料,才算真正完成。
00_Project_Instructions.md 貼入 Project Instructions,其餘固定檔案加入 Sources。請先執行 A00–A11。分析期間使用工作簿中的本期;通路選擇全部;差異率門檻使用 10%。完成後列出固定分析結果、被觸發的探索問題、資料缺口,以及可下載的個別檔案與 ZIP。各通路分開呈現異常、可核對證據、待確認原因與下一步。
收入、費用率、預算、YOY、差異貢獻、集中度與資料品質。
程式結果是觀察;活動或合約造成差異仍需補證。
會計認列、分類與管理行動仍由權責人確認。
想新增選項時,先確認現有 A00–A11 是否能透過參數、排序或篩選回答。真的需要新增函式,再依序補上: