台股除權息行事曆:除息旺季節奏、配息頻率月份分布與 TWT48U_ALL 預告表解讀
存股族每年最常問的問題之一是「接下來哪幾個月要除息?」——但多數人習慣用「發現了才去查」的方式處理,而非從更高的視角理解台股除息的季節性結構。台股上市公司的除息並非隨機分布於十二個月,而是具備相當規律的集中模式:年配型上市公司大量集中在 6–8 月,季配型 ETF 則各有固定的配息月份組合,月配型 ETF 則全年均等分布。
理解這個時間結構,可以讓持有多檔不同配息頻率標的的投資人,在沒有具體個股除息公告的情況下,就預先掌握哪幾個月是高密度除息週期——並在 TWSE TWT48U_ALL 除權除息預告表上架後,以結構化方式快速核對近期實際日期。
本文的角度是行事曆節奏與配息頻率的月份結構,不重複另外兩篇相關文章的主題:個股的四個關鍵日期序列(董事會決議至現金入帳)見台股股利發放時間軸;除息的稅務機制與填息計算邏輯見台股除權息機制與散戶三大誤解。
① 為什麼除息旺季集中在 6–8 月?
台股上市公司的除息時間並非由法規直接規定「必須在幾月」,而是由股東會時程反推形成的結構性集中現象。
公司法規定,股東常會通常在每年 6 月底前召開(依公司法第 170 條,常會應於每會計年度終了後六個月內召開),而股東會必須通過股利分派案才能定案。因此,股東常會的集中季節(5–6 月)之後,緊接著就是除息日的集中季節(6–8 月):
年度財報確認(1–4 月)
↓
董事會決議股利(4–5 月)
↓
股東常會確認分派案(5–6 月底)
↓
除息交易日(通常 6–8 月)
↓
現金股利入帳(7–9 月)
這個結構決定了:台股個股年配型的除息旺季,通常從 6 月下旬起算,7 月達到高峰,8 月陸續收尾。部分召開股東會較晚的公司,除息日可能延至 9 月甚至 10 月,但比例明顯較低。
從 2026 年 5 月底取回的 TWT48U_ALL 除權除息預告表來看,除息日期(Date 欄位)分布如下:
| 民國月份 | 樣本中除息日落點 |
|---|---|
| 115 年 5 月(1150526–1150528) | 部分早鳥個股 |
| 115 年 6 月(1150601–1150629) | 最密集區段,多數上市個股 |
| 115 年 7 月(1150701–1150723) | 持續,部分大型公司 |
| 115 年 8 月(1150807) | 少數延後公司 |
這個資料快照(2026-05-27 取得)所呈現的分布,與歷年台股除息旺季的結構性規律一致。
② 年配 / 半年配 / 季配 / 月配:四種頻率的月份分布邏輯
不同配息頻率的標的,遵循完全不同的月份分布邏輯。理解各頻率的結構,才能準確判斷「哪個月是自己的高密度除息週期」。
年配型(一年一次)
上市個股中,年配型是最主流的配息頻率。如前節所述,年配型除息集中在 6–8 月,跟隨股東常會時程。這也是「除息旺季」這個詞的由來——對大多數散戶而言,旺季意味著手中年配型標的密集除息的窗口。
半年配型
部分公司採半年配,上半年度股利與下半年度股利各一次。根據 TWSE t187ap45_L 端點的實際資料,半年配的股利所屬期間標記為「下半年」,除息日通常落在 12 月至翌年 1–2 月(下半年度股利)以及 6–8 月(上半年度股利)。半年配形成雙峰分布:夏季一峰 + 冬季一峰。
季配型(高股息 ETF 的主流)
季配型主要集中在台股高股息 ETF。ETF 的除息月份由各基金公告的「配息月份」決定,與個股跟隨股東會的機制不同——ETF 是基金公司主動設計的配息時程,因此不同檔的 ETF 會錯開除息月份,目的是讓投資人可以在不同月份輪流收到配息。
季配 ETF 的月份分布邏輯:以「一年分四季」為架構,每季各有一個配息月份,四個月份剛好涵蓋十二個月中的四個點。常見的配息月份組合:
| 配息月份組合 | 分布週期特徵 |
|---|---|
| 第 1、4、7、10 月 | 每季首月配息,Q1/Q2/Q3/Q4 開頭收息 |
| 第 2、5、8、11 月 | 每季中月配息,Q1/Q2/Q3/Q4 中段收息 |
| 第 3、6、9、12 月 | 每季末月配息,Q1/Q2/Q3/Q4 末段收息 |
三種季配組合恰好覆蓋十二個月,當持有組合中包含三個不同季配月份的 ETF 時,理論上可在十二個月中每個月都有配息流入(前提是每檔都按計畫除息並順利填息)。這是部分存股族追求「月月領息」的配置邏輯基礎。
月配型(債券型 ETF 為主)
月配型 ETF(多見於債券型商品)每月固定配息,全年均等分布,沒有明顯旺季。月配型 ETF 的 Date 在 TWT48U_ALL 預告表中每月皆有記錄,且配息金額(CashDividend)通常較小,反映每月分攤的配息結構。
從 TWT48U_ALL 資料可以觀察到,部分月配 / 季配型 ETF 的除息日記錄會與年配個股的 6–8 月集中區段並列出現——這正是年配旺季與月 / 季配節奏同步進行的典型狀態。
③ TWT48U_ALL 除權除息預告表:欄位結構與解讀方式
TWSE TWT48U_ALL 端點提供近期的除權除息預告資訊,是提前掌握標的除息日期的官方資料來源。
Endpoint
GET https://openapi.twse.com.tw/v1/exchangeReport/TWT48U_ALL
無需 API key,直接取用。資料以 JSON 陣列形式回傳,每筆代表一個近期有除權或除息預告的標的。
欄位 Schema(對齊 2026-05-27 實際回傳)
| 欄位名稱 | 型別 | 說明 | 空值情境 |
|---|---|---|---|
Date | 字串 | 除息(或除權)交易日,7 位民國日期(YYYMMDD) | 有公告即有值 |
Code | 字串 | 標的代號(4 碼個股 / 5 碼 ETF / 含英文後綴的 ETF 或特別股如 00XXXB) | 不為空 |
Name | 字串 | 標的中文名稱 | 不為空 |
Exdividend | 字串 | 事件類型:息(除息)、權(除權)或 權息(同日除權且除息,仍帶現金股利) | 不為空 |
StockDividendRatio | 字串 | 股票股利比率(元/千股) | 多為空字串(現金除息不填此欄) |
CashDividend | 字串 | 現金股利金額(元),數值型字串 | 除權(無現金)或尚未公告時為空字串 |
SubscriptionRatio | 字串 | 現金增資比率 | 多為空字串 |
SubscriptionPricePerShare | 字串 | 現金增資認購價 | 可能為「尚未公告」或空字串 |
SharesOffered / SharesEmpOwner / SharesholderOwner | 字串 | 除權相關股數欄位 | 除息類型時全為空字串 |
StockHoldingRatio | 字串 | 庫藏股相關比率 | 多為空字串 |
日期欄位的民國格式問題
Date 欄位以民國年 3 位 + 月日 4 位的 7 位格式儲存,例如:
1150526= 民國 115 年 5 月 26 日 = 西元 2026-05-261150602= 民國 115 年 6 月 2 日 = 西元 2026-06-02
與 TWSE 其他端點的日期格式不一致(部分端點為 8 位西元格式)。若程式需要與其他端點的日期欄位比對,必須先統一轉換格式。轉換方式:
// TWT48U_ALL Date 欄位:民國 7 位 → 西元 8 位
function twt48uDateToAd(rocDateStr) {
// rocDateStr 格式:YYYMMDD,例如 "1150526"
if (!rocDateStr || rocDateStr.length !== 7) return null;
const rocYear = parseInt(rocDateStr.slice(0, 3), 10); // 115
const mmdd = rocDateStr.slice(3); // "0526"
return `${rocYear + 1911}${mmdd}`; // "20260526"
}
日期格式混亂在 TWSE 多端點整合時是常見的 silent failure 來源,詳見 TWSE OpenAPI 日期格式混亂全解析。
空值欄位的坑
TWT48U_ALL 的空值並不用 null 表示,而是空字串 ""。最容易踩到的情境:
CashDividend為空字串:除權類型(Exdividend: "權")的記錄不填CashDividend,值為"";若程式直接對這個欄位做數值計算(parseFloat("")→NaN),會導致 silent failure。CashDividend為空字串但Exdividend為「息」:部分除息記錄在預告階段現金股利金額尚未最終確認,CashDividend也為空字串。這代表「除息已確認,但金額尚未公告」,不代表零配息。SubscriptionPricePerShare為「尚未公告」字串:當現金增資認購價尚未定案時,此欄位會填入「尚未公告」這個文字值——非空字串也非數字。程式需對此欄位加文字值防呆,不可假設非空即數值。
// 安全取出現金股利金額
function safeCashDividend(record) {
const raw = record.CashDividend;
if (!raw || raw === '') return null; // 未公告或純除權類型
const val = parseFloat(raw);
return isNaN(val) ? null : val;
}
// 篩選含現金股利的事件:除息(息) 與 同日除權除息(權息),排除純除權(權)
// 注意:用 === '息' 會漏掉 '權息' 這類同時除權除息、仍有現金股利的標的
const cashDividendEvents = data.filter(r => r.Exdividend.includes('息'));
預告表是滾動近期資料,非全年歷史
TWT48U_ALL 只包含近期有除權息預告的記錄,並非全年完整行事曆。隨時間推移,新公告的標的會加入,已過日期的記錄會移出(或持續保留一段時間,視 TWSE 更新邏輯)。
這意味著:在除息旺季前(例如每年 4–5 月),預告表中能看到的記錄數量有限;進入 6 月後,記錄數量快速增加。不能以某個時間點的 TWT48U_ALL 快照作為全年完整行事曆使用;全年排程需要在整個旺季期間多次取回、累積合併。
④ 提前規劃:如何用預告表掌握配息節奏
月度掃描邏輯
若要追蹤持有組合中哪些標的接下來要除息,基本掃描邏輯如下:
// 取得近期除息預告,篩選特定代號清單
async function scanUpcomingExDividend(watchlist) {
const res = await fetch('https://openapi.twse.com.tw/v1/exchangeReport/TWT48U_ALL');
const data = await res.json();
// 含現金股利的事件:除息(息) 與 同日除權除息(權息),排除純除權(權)
const dividendEvents = data.filter(r => r.Exdividend.includes('息'));
// 篩選目標標的(watchlist 為代號字串陣列,如 ['XXXX', 'XXXXX'])
const matched = dividendEvents.filter(r => watchlist.includes(r.Code));
// 依除息日排序(民國 7 位字串直接排序有效,因格式統一)
matched.sort((a, b) => a.Date.localeCompare(b.Date));
return matched.map(r => ({
code: r.Code,
name: r.Name,
exDividendDate: twt48uDateToAd(r.Date), // 轉西元 8 位
cashDividend: safeCashDividend(r),
}));
}
旺季前的資料局限性
每年 3–5 月期間,TWT48U_ALL 的年配型個股記錄數量偏少,因多數公司尚未召開董事會定案。若在這個時段掃描,結果不完整是正常現象——意味著年配旺季的行事曆,通常需要等到 5 月股東常會密集期開始後,才能在預告表上看到大量記錄。
ETF 配息月份的結構性預測
對於季配或月配 ETF,不需等待 TWT48U_ALL 才能預測除息月份——基金公告的配息月份是固定結構,可以從基金公開說明書或 TWSE ETF 配息清單(https://www.twse.com.tw/zh/ETFortune/dividendList)提前查得。當持有多檔季配 ETF,且它們的配息月份分屬三個不同組合時,每個月都有某檔除息的機率極高。這種結構性預測不依賴預告表,但仍需在旺季前用 TWT48U_ALL 確認實際日期。
⑤ Edge Case:代號格式與多筆記錄
代號含後綴(特別股、債券 ETF)
TWT48U_ALL 的 Code 欄位不限 4 碼個股或 5 碼 ETF,也包含帶英文後綴的代號,例如非投等債 ETF 常見的 B 結尾、主動式 ETF 的 D 結尾(形如 00XXXB、00XXXD)。
若程式用完整字串比對 watchlist.includes(r.Code),後綴格式必須精確對應。若 watchlist 只存去掉後綴的數字碼,而預告表回傳的是帶後綴版本,就會 miss 到這筆記錄。建議 watchlist 中的代號直接從 TWT48U_ALL 實際回傳複製,避免手工輸入造成的格式不一致。
同時除權與除息:單一筆 權息 記錄
部分標的在同一天同時除權與除息時,TWT48U_ALL 並不拆成兩筆,而是以單一筆 Exdividend: "權息" 表示,且該筆仍帶有現金股利金額。程式若只用 Exdividend === '息' 篩選,會把這類「同時除權除息、實際仍有現金股利」的標的整筆漏掉——這正是欄位列舉值不完整造成的 silent failure,與 §③ 的篩選寫法相呼應。
⑥ See also
- 台股股利發放時間軸:董事會決議到現金入帳,四個關鍵日期分散在三個 TWSE 端點 — 本文說明行事曆節奏;個別標的的除息日、基準日、現金入帳日的日期序列邏輯見此篇
- 台股除權息機制與散戶三大誤解 — 最後買進日計算、填息機制與稅務邏輯
- TWSE OpenAPI 日期格式混亂全解析 — 民國 7 位與西元 8 位跨端點轉換的完整對照
- 台股 T+2 交割制度 — 最後買進日計算涉及的交割期與停止過戶關係
- TWSE OpenAPI Swagger:openapi.twse.com.tw —
TWT48U_ALL端點官方規格 - TWSE ETF 配息清單:twse.com.tw/zh/ETFortune/dividendList
- floviq 台股盤前情報自動推播工具:portaly.cc/floviq — 整合 TWSE 開放資料,於除息旺季前定期整理並推送提醒(純資料整理,不推股、不帶單)
想把 TWSE TWT48U_ALL 等公開資料自動整理、在除息旺季前主動推送提醒到自己的 Telegram?floviq 提供台股盤前情報的 n8n 自動推播工具,整合 TWSE 開放資料,每個交易日推送整理好的資訊——純資料整理,不推股、不帶單。詳見 portaly.cc/floviq。
※ 本文描述台股除權息行事曆的季節性結構、配息頻率月份分布規律,以及 TWSE TWT48U_ALL 除權除息預告表的欄位機制與解讀方式,屬機制說明,不構成投資建議,投資請自行評估風險。
資料來源:TWSE OpenAPI TWT48U_ALL 端點(openapi.twse.com.tw/v1/exchangeReport/TWT48U_ALL)、TWSE ETF 配息清單(twse.com.tw/zh/ETFortune/dividendList)、2026-05-27 實際 API 回傳快照
如果這篇對你有用: