礦業毛利率代理(Margin Proxy)使用簡化公式:
gross_margin_proxy = (metal_price - unit_cost) / metal_price
其中:
- metal_price:金屬現貨價或期貨近月價
- unit_cost:AISC (All-In Sustaining Cost)、現金成本(C1)或全成本
此指標不等同會計報表的毛利率,但能快速捕捉價格-成本關係的邊際變化。
| 口徑 |
包含項目 |
適用場景 |
| Cash Cost (C1) |
現場採掘 + 加工 + 場內行政 |
現金流壓力測試 |
| AISC |
C1 + 維持資本開支 + 勘探 + 行政 |
行業標準(WGC 定義) |
| All-In Cost (AIC) |
AISC + 成長資本開支 |
完整經濟成本 |
建議優先使用 AISC,因其可比性最佳且資料可得性高。
| 方法 |
公式 |
直覺 |
| equal_weight |
Σ margin_i / N |
簡單平均,每家公司等權 |
| production_weighted |
Σ (margin_i × prod_i) / Σ prod_i |
產量加權,反映「產業毛利」 |
| marketcap_weighted |
Σ (margin_i × mcap_i) / Σ mcap_i |
市值加權,反映「股權曝險」 |
建議使用 production_weighted 以更準確反映產業整體毛利結構。
- 金屬價格:日頻或月均價
- 礦業成本:季度(多數公司僅在季報揭露 AISC)
- 對齊方式:
- 將成本 forward-fill 至季度內各期
- 或使用同季均價(更乾淨)
本 Skill 建議使用 季度頻率 作為基準,避免過度平滑。
本 skill 使用公開數據:
- 金價:LBMA Gold Price / COMEX 近月期貨
- 銀價:LBMA Silver Price / COMEX 近月期貨
- AISC:公司 IR 投資人簡報 / 季報 MD&A / 新聞稿
- 產量:同上,單位 oz / GEO / AgEq oz
腳本位於 scripts/ 目錄,可直接執行。
- 數據整合:抓取金屬價格序列與礦業成本/產量數據
- 計算毛利率代理:單一公司層級 + 籃子聚合
- 歷史分位數:判斷當前水位在歷史區間的位置
- 驅動拆解:區分價格驅動 vs 成本驅動
- 訊號生成:極端高/低檔區間標記
輸出:毛利率時序、歷史分位、驅動拆解、交易/研究連結。
最快的方式:執行預設情境分析
cd skills/compute-precious-miner-gross-margin
pip install pandas numpy requests yfinance beautifulsoup4 lxml # 首次使用
python scripts/margin_calculator.py --quick --metal gold
輸出範例:
{
"skill": "compute_precious_miner_margin_proxy",
"metal": "gold",
"frequency": "quarterly",
"cost_metric": "AISC",
"basket": {
"miners": ["NEM", "GOLD", "AEM"],
"aggregation": "production_weighted"
},
"latest": {
"date": "2025-Q4",
"metal_price_usd_oz": 2650.0,
"unit_cost_proxy_usd_oz": 1320.0,
"gross_margin_proxy": 0.502,
"history_percentile": 0.78,
"regime_label": "high_margin"
}
}
完整情境分析:
python scripts/margin_calculator.py \
--metal silver \
--miners CDE,HL,AG \
--start-date 2015-01-01 \
--frequency quarterly \
--cost-metric AISC \
--aggregation production_weighted \
--output result.json
- 快速計算 - 使用預設參數計算主要礦業籃子的毛利率代理
- 完整分析 - 自訂參數進行情境分析(可選擇金屬、礦業、成本口徑)
- 數據研究 - 了解如何獲取 AISC / 成本數據(爬蟲設計)
- 訊號生成 - 將毛利率轉為交易/研究訊號
- 方法論學習 - 了解計算邏輯與數據來源
請選擇或直接提供分析參數。
路由後,閱讀對應文件並執行。
方法論: references/methodology.md
- 毛利率代理值定義
- 成本口徑層次解析
- 聚合方法與直覺
- 歷史分位數計算
資料來源: references/data-sources.md
- 金銀價格數據來源
- AISC / 現金成本數據來源
- 產量數據來源
- 爬蟲設計指引
輸入參數: references/input-schema.md
| Script |
Command |
Purpose |
| margin_calculator.py |
--quick --metal gold |
快速計算黃金礦業 |
| margin_calculator.py |
--quick --metal silver |
快速計算白銀礦業 |
| margin_calculator.py |
--miners NEM,GOLD --freq Q |
自訂礦業與頻率 |
| margin_calculator.py |
--decompose |
驅動拆解分析 |
|
|
|
核心參數
| 參數 |
類型 |
預設值 |
說明 |
| metal |
string |
gold |
目標金屬(gold/silver) |
| miners |
array |
預設籃子 |
礦業代號清單 |
| start_date |
string |
10 年前 |
計算起始日(YYYY-MM-DD) |
| end_date |
string |
today |
計算結束日 |
| frequency |
string |
quarterly |
頻率(daily/weekly/monthly/quarterly) |
| cost_metric |
string |
AISC |
成本口徑 |
| aggregation |
string |
production_weighted |
聚合方式 |
進階參數
| 參數 |
類型 |
預設值 |
說明 |
| price_series |
string |
spot |
價格口徑 |
| fx_mode |
string |
none |
匯率處理 |
| outlier_rule |
string |
winsorize_1_99 |
離群處理 |
| history_window_years |
int |
20 |
歷史分位數視窗 |
完整參數定義見 references/input-schema.md。
完整輸出結構見 templates/output-json.md。
1---2name: compute-precious-miner-gross-margin3description: 以公開金屬價格 + 礦業成本指標(AISC/All-in cost/現金成本)計算「黃金/白銀礦業毛利率代理值」,並判斷當前是否處於歷史高/低檔區間。4---5
6<essential_principles>
7
8<principle name="margin_proxy_definition">
9**毛利率代理值定義**
10
11礦業毛利率代理(Margin Proxy)使用簡化公式:
12
13```
14gross_margin_proxy = (metal_price - unit_cost) / metal_price
15```
16
17其中:
18- **metal_price**:金屬現貨價或期貨近月價
19- **unit_cost**:AISC (All-In Sustaining Cost)、現金成本(C1)或全成本
20
21此指標**不等同會計報表的毛利率**,但能快速捕捉價格-成本關係的邊際變化。
22</principle>
23
24<principle name="cost_metric_hierarchy">
25**成本指標口徑層次**
26
27| 口徑 | 包含項目 | 適用場景 |
28|-------------------|---------------------------------|----------------------|
29| Cash Cost (C1) | 現場採掘 + 加工 + 場內行政 | 現金流壓力測試 |
30| AISC | C1 + 維持資本開支 + 勘探 + 行政 | 行業標準(WGC 定義) |
31| All-In Cost (AIC) | AISC + 成長資本開支 | 完整經濟成本 |
32
33建議優先使用 **AISC**,因其可比性最佳且資料可得性高。
34</principle>
35
36<principle name="aggregation_logic">
37**籃子聚合邏輯**
38
39| 方法 | 公式 | 直覺 |
40|---------------------|----------------------------------|----------------------------|
41| equal_weight | Σ margin_i / N | 簡單平均,每家公司等權 |
42| production_weighted | Σ (margin_i × prod_i) / Σ prod_i | 產量加權,反映「產業毛利」 |
43| marketcap_weighted | Σ (margin_i × mcap_i) / Σ mcap_i | 市值加權,反映「股權曝險」 |
44
45建議使用 **production_weighted** 以更準確反映產業整體毛利結構。
46</principle>
47
48<principle name="data_frequency_alignment">
49**數據頻率對齊**
50
51- **金屬價格**:日頻或月均價
52- **礦業成本**:季度(多數公司僅在季報揭露 AISC)
53- **對齊方式**:
54 - 將成本 forward-fill 至季度內各期
55 - 或使用同季均價(更乾淨)
56
57本 Skill 建議使用 **季度頻率** 作為基準,避免過度平滑。
58</principle>
59
60<principle name="data_sources">
61**資料取得方式**
62
63本 skill 使用**公開數據**:
64- **金價**:LBMA Gold Price / COMEX 近月期貨
65- **銀價**:LBMA Silver Price / COMEX 近月期貨
66- **AISC**:公司 IR 投資人簡報 / 季報 MD&A / 新聞稿
67- **產量**:同上,單位 oz / GEO / AgEq oz
68
69腳本位於 `scripts/` 目錄,可直接執行。
70</principle>
71
72</essential_principles>
73
74<objective>
75實作「貴金屬礦業毛利率代理值」計算模型:
76
771. **數據整合**:抓取金屬價格序列與礦業成本/產量數據
782. **計算毛利率代理**:單一公司層級 + 籃子聚合
793. **歷史分位數**:判斷當前水位在歷史區間的位置
804. **驅動拆解**:區分價格驅動 vs 成本驅動
815. **訊號生成**:極端高/低檔區間標記
82
83輸出:毛利率時序、歷史分位、驅動拆解、交易/研究連結。
84</objective>
85
86<quick_start>
87
88**最快的方式:執行預設情境分析**
89
90```bash
91cd skills/compute-precious-miner-gross-margin
92pip install pandas numpy requests yfinance beautifulsoup4 lxml # 首次使用
93python scripts/margin_calculator.py --quick --metal gold
94```
95
96輸出範例:
97```json
98{
99 "skill": "compute_precious_miner_margin_proxy",
100 "metal": "gold",
101 "frequency": "quarterly",
102 "cost_metric": "AISC",
103 "basket": {
104 "miners": ["NEM", "GOLD", "AEM"],
105 "aggregation": "production_weighted"
106 },
107 "latest": {
108 "date": "2025-Q4",
109 "metal_price_usd_oz": 2650.0,
110 "unit_cost_proxy_usd_oz": 1320.0,
111 "gross_margin_proxy": 0.502,
112 "history_percentile": 0.78,
113 "regime_label": "high_margin"
114 }
115}
116```
117
118**完整情境分析**:
119```bash
120python scripts/margin_calculator.py \
121 --metal silver \
122 --miners CDE,HL,AG \
123 --start-date 2015-01-01 \
124 --frequency quarterly \
125 --cost-metric AISC \
126 --aggregation production_weighted \
127 --output result.json
128```
129
130</quick_start>
131
132<intake>
133需要進行什麼操作?
134
1351. **快速計算** - 使用預設參數計算主要礦業籃子的毛利率代理
1362. **完整分析** - 自訂參數進行情境分析(可選擇金屬、礦業、成本口徑)
1373. **數據研究** - 了解如何獲取 AISC / 成本數據(爬蟲設計)
1384. **訊號生成** - 將毛利率轉為交易/研究訊號
1395. **方法論學習** - 了解計算邏輯與數據來源
140
141**請選擇或直接提供分析參數。**
142</intake>
143
144<routing>
145| Response | Action |
146|-----------------------------|----------------------------------------------------|
147| 1, "快速", "quick", "計算" | 執行 `python scripts/margin_calculator.py --quick` |
148| 2, "完整", "full", "分析" | 閱讀 `workflows/analyze.md` 並執行 |
149| 3, "數據", "data", "爬蟲" | 閱讀 `workflows/data-research.md` |
150| 4, "訊號", "signal", "交易" | 閱讀 `workflows/signal-generation.md` 並執行 |
151| 5, "學習", "方法論", "why" | 閱讀 `references/methodology.md` |
152| 提供參數 (如礦業清單) | 閱讀 `workflows/analyze.md` 並使用參數執行 |
153
154**路由後,閱讀對應文件並執行。**
155</routing>
156
157<directory_structure>
158```
159compute-precious-miner-gross-margin/
160├── SKILL.md # 本文件(路由器)
161├── skill.yaml # 前端展示元數據
162├── manifest.json # 技能元數據
163├── workflows/
164│ ├── analyze.md # 完整情境分析工作流
165│ ├── data-research.md # 數據源研究與爬蟲設計
166│ └── signal-generation.md # 訊號生成工作流
167├── references/
168│ ├── data-sources.md # 數據來源與獲取方式
169│ ├── methodology.md # 方法論與計算邏輯
170│ └── input-schema.md # 完整輸入參數定義
171├── templates/
172│ ├── output-json.md # JSON 輸出模板
173│ └── output-markdown.md # Markdown 報告模板
174├── scripts/
175│ └── margin_calculator.py # 主計算腳本
176└── examples/
177 └── sample-output.json # 範例輸出
178```
179</directory_structure>
180
181<reference_index>
182
183**方法論**: references/methodology.md
184- 毛利率代理值定義
185- 成本口徑層次解析
186- 聚合方法與直覺
187- 歷史分位數計算
188
189**資料來源**: references/data-sources.md
190- 金銀價格數據來源
191- AISC / 現金成本數據來源
192- 產量數據來源
193- 爬蟲設計指引
194
195**輸入參數**: references/input-schema.md
196- 完整參數定義
197- 預設值與建議範圍
198- 預設礦業籃子
199
200</reference_index>
201
202<workflows_index>
203| Workflow | Purpose | 使用時機 |
204|----------------------|--------------|---------------------------|
205| analyze.md | 完整情境分析 | 需要自訂參數計算毛利率 |
206| data-research.md | 數據源研究 | 了解如何獲取成本數據 |
207| signal-generation.md | 訊號生成 | 將毛利率轉為交易/研究訊號 |
208</workflows_index>
209
210<templates_index>
211| Template | Purpose |
212|--------------------|-------------------|
213| output-json.md | JSON 輸出結構定義 |
214| output-markdown.md | Markdown 報告模板 |
215</templates_index>
216
217<scripts_index>
218| Script | Command | Purpose |
219|----------------------|------------------------------|------------------|
220| margin_calculator.py | `--quick --metal gold` | 快速計算黃金礦業 |
221| margin_calculator.py | `--quick --metal silver` | 快速計算白銀礦業 |
222| margin_calculator.py | `--miners NEM,GOLD --freq Q` | 自訂礦業與頻率 |
223| margin_calculator.py | `--decompose` | 驅動拆解分析 |
224</scripts_index>
225
226<input_schema_summary>
227
228**核心參數**
229
230| 參數 | 類型 | 預設值 | 說明 |
231|-------------|--------|---------------------|----------------------------------------|
232| metal | string | gold | 目標金屬(gold/silver) |
233| miners | array | 預設籃子 | 礦業代號清單 |
234| start_date | string | 10 年前 | 計算起始日(YYYY-MM-DD) |
235| end_date | string | today | 計算結束日 |
236| frequency | string | quarterly | 頻率(daily/weekly/monthly/quarterly) |
237| cost_metric | string | AISC | 成本口徑 |
238| aggregation | string | production_weighted | 聚合方式 |
239
240**進階參數**
241
242| 參數 | 類型 | 預設值 | 說明 |
243|----------------------|--------|----------------|----------------|
244| price_series | string | spot | 價格口徑 |
245| fx_mode | string | none | 匯率處理 |
246| outlier_rule | string | winsorize_1_99 | 離群處理 |
247| history_window_years | int | 20 | 歷史分位數視窗 |
248
249完整參數定義見 `references/input-schema.md`。
250
251</input_schema_summary>
252
253<output_schema_summary>
254```json
255{
256 "skill": "compute_precious_miner_margin_proxy",
257 "metal": "silver",
258 "frequency": "quarterly",
259 "cost_metric": "AISC",
260 "basket": {
261 "miners": ["CDE", "HL", "AG"],
262 "aggregation": "production_weighted"
263 },
264 "latest": {
265 "date": "2025-Q4",
266 "metal_price_usd_oz": 31.50,
267 "unit_cost_proxy_usd_oz": 6.30,
268 "gross_margin_proxy": 0.80,
269 "history_percentile": 0.94,
270 "regime_label": "extreme_high_margin"
271 },
272 "decomposition": {
273 "last_3m_price_change_pct": 0.12,
274 "last_3m_cost_change_pct": -0.03,
275 "driver": "mostly_price_up"
276 },
277 "notes": [
278 "gross_margin_proxy 使用 (price - AISC)/price 作為近似;不等同會計報表的毛利率口徑。",
279 "若成本為季度資料,已以季度內 forward-fill/同季均價對齊。"
280 ],
281 "recommended_next_checks": [
282 "用同一套 margin proxy 對照 SIL/SILJ 或個股的 3/6/12 個月前瞻報酬(事件研究)",
283 "檢查是否出現資本開支/併購升溫、或成本再通膨(柴油/工資/試劑)導致毛利回落"
284 ]
285}
286```
287
288完整輸出結構見 `templates/output-json.md`。
289</output_schema_summary>
290
291<success_criteria>
292執行成功時應產出:
293
294- [ ] 毛利率代理值時序數據
295- [ ] 各礦業的單位成本與毛利率
296- [ ] 籃子聚合毛利率
297- [ ] 歷史分位數與區間標記(extreme_high/high/neutral/low/extreme_low)
298- [ ] 驅動拆解(價格驅動 vs 成本驅動)
299- [ ] 結果輸出為指定格式(JSON 或 Markdown)
300- [ ] 後續研究建議
301</success_criteria>