dividend-tracking について
ローカルの SQLite データベースから配当収入を追跡するワークフロー向けスキルです。取引データの同期後に月別の収入を集計し、当月データが未確定である可能性も考慮して分析します。
主な機能
- 01取引データを同期してから読み取り
- 02銘柄・月別の配当照会
- 03月間収入と目標の比較
- 04過去12か月の利回り評価
- 05月末データの遅延に関する注意
活用シーン
- 01取引同期後に受取配当を確認
- 02月間配当収入を目標と比較
- 03過去12か月の利回りで保有銘柄を評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aojdevstudio/ finance-guru --skill dividend-trackingインストール後、Claude Code で/dividend-trackingを入力して読み込まれたか確認します。
詳細
配当の追跡
目的
ローカル DB の transactions テーブルから受取配当の記録を読み込み(同期を先に行って更新)、目標に対する Layer 2 の収入を報告します。
family_office.db が正式な記録システムです。Dividends シートとその Apps Script による自動化は、2026-07-31 に廃止されました。
ステップ 0:更新(同期を先に行うことが必須)
配当記録は DB から取得します。収入が古い情報のままにならないよう、必ず最初に更新してください。共通の 同期を先に行う+DB 読み取り パターンに従ってください。
uv run python -m src.integrations.snaptrade.sync_transactions_db # writes transactions
uv run python -m src.integrations.snaptrade.sync_transactions_db --show # confirm freshness
完了条件:配当を読み取る前に、同期コマンドが成功を報告していること。
MAX(synced_at) が更新されることを条件にしないでください。 アクティビティの同期は dedupe_key によって冪等性を保ち、実際に書き込んだ行にのみタイムスタンプを付与します。そのため、新しいアクティビティが見つからない実行ではタイムスタンプは更新されません。2026-08-04 に確認済み:同期では 2690 fetched, 0 new, 2690 duplicates skipped と報告され、MAX(synced_at) は前回の実行時の値のままでした。これは正常な処理であり、テーブルが古いわけではありません。
コマンド独自の出力行を確認してください。
N newが 0 より大きく、タイムスタンプが更新された場合 → 新しいアクティビティが取り込まれています。0 new, N duplicates skipped→ すでに完了しており、タイムスタンプは正しく更新されていません。- コマンドがエラーになる、または何も報告しない場合 → 実際の失敗です。停止してください。
完全性はタイムスタンプではなく、重複排除キーによって保証されます。
月末時点の遅れ: 分配金の計上には数日かかるため、当月分が揃うのは翌月の3日または4日ごろです。2026-07-31 時点では、7月の月末時点の支払い件数は30件でしたが、月が実際に締まった時点では 42件で、約17%増加 していました。未確定の当月分を確定済みの前月と比較しないでください。また、月が締まる前に前月比での減少と判断しないでください。
配当の読み取り
sqlite3 family_office.db \
"SELECT date, symbol, amount, description FROM transactions WHERE type = 'DIVIDEND' ORDER BY date;"
各行には date、symbol、amount、description が含まれます。シンボルが null の配当は、アクティビティの同期中にすでにティッカーが特定されています(description から解析します。例:... ETF (SCHD)。これは、ポジションやオプションでのシンボルのフォールバックと同じ方式です)。そのため、symbol は信頼できます。
重複排除に外部の台帳は必要ありません。アクティビティの同期は dedupe_key によって冪等性を保つため、再実行しても二重計上されません。
月次分析
ティッカーと月ごとに集計します。
sqlite3 family_office.db \
"SELECT strftime('%Y-%m', date) AS month, symbol, ROUND(SUM(amount), 2) AS received
FROM transactions WHERE type = 'DIVIDEND'
GROUP BY month, symbol ORDER BY month DESC, received DESC;"
Layer 2 の目標に対する月次合計:
sqlite3 family_office.db \
"SELECT strftime('%Y-%m', date) AS month, ROUND(SUM(amount), 2) AS total
FROM transactions WHERE type = 'DIVIDEND' GROUP BY month ORDER BY month DESC LIMIT 12;"
評価基準
- 保有銘柄は月ごとの分配金の変化ではなく、直近12か月の利回りで評価してください。
- オプションベースのファンドでは、月次分配金の±5~15%の変動は正常です。リスクとして報告しないでください。
- 売却の判断材料となるのは、明確な警告サインのみです。 30%を超える持続的な減少、NAV の毀損、または戦略の変更が該当します。通常の変動は該当しません。
マージンのカバー率
配当収入とマージン金利の比率が、規模調整のトリガーを左右するカバー率です。margin-management スキルを参照してください。ここでしきい値を再計算しないでください。
CSV による代替手段
imports/Dividend_Positions_MMM-DD-YYYY.csv(Fidelity の配当ビューのエクスポート)は、ライブのアクティビティ同期を利用できない場合の手動照合用データとして引き続き利用できます。主な手順ではありません。
参照ファイル
- ユーザープロファイル:
user-profile.yaml - 同期を先に行うパターン:
.claude/skills/_shared/SyncFirstDbRead.md - インカム運用手段のフレームワーク:
fin-guru/data/modern-income-vehicles.md
教育目的のみです。投資助言ではありません。配当分配は保証されず、過去の利回りは将来の収入を予測するものではありません。また、オプションベースのインカムファンドには元本損失のリスクがあります。行動を起こす前に、資格を持つ金融および税務の専門家に相談してください。
スキルの種類:ドメイン(ワークフローのガイダンス) 適用方法:SUGGEST 優先度:高