Micron Q3 FY26 決算をbeat-monitoringとearnings-dynamicsに手作業で反映した記録
2026年6月24日(米国時間)にMicronがFY26 Q3決算を発表した。翌朝の/make-diaryから流れで/check-earningsに入ったところで、Chrome DevTools MCPが繋がらずKoyfinのStep 0がスキップになった。コンセンサスが当日取れない状態で、/beat-monitoring/MUのチャートにQ3実績$41.5Bを手で流し込み、/earnings-dynamics/MUのQ4 FY26ボタンが出ないバグを潰し、ついでに以前から気になっていたバー並び順とdivider lineの違和感を一気に直した。最後にIRサマリーカードを新規ページとして切り出し、Micron公式IRのPrepared Remarks PDFまで貼り直した。
Koyfin Step 0が落ちた状態でのMU手動更新
朝の/check-earningsはSEC EDGARでMUのQ3 FY26決算を検知したが、Chrome DevTools MCPがmcp__chrome-devtools__*を一切ロードしてくれず、Koyfinスナップショット取得(Step 0)がスキップ。SECの8-Kとプレスリリースから実績数字を手で拾い直した。
- Revenue: **
41.5B** vs コンセンサス35.84B(+16%)、会社ガイド $33.5B(+24%) - 粗利率: 84.9%
- Non-GAAP EPS: $25.11
- Q4 FY26 ガイダンス: 売上
50B ±1B、粗利率 約86%、EPS31 ±1
このQ3実績行をMU.jsonに上書きし、Q4 FY26を予測行として追加した。
Q3予想$47.39Bをユーザー指示で手で上書き
Koyfinが落ちているのでFY27 Q1(= Q4 FY26のガイド対象)のコンセンサスが取れない。ユーザーから「とりあえず47.39を入れといて」と指示が来て、Q4 FY26行のガイダンス欄(= ガイド対象 Q1 FY27)のコンセンサスをn/a → $47.39Bに書き換えた。EPSは前日Koyfinから$27.63が取れていたのでそちらを採用。
triple-beat-guidance-target.mdルールに沿って、ガイドチャート側はX軸が「ガイド対象Q」になっていることを確認しながら触った。
earnings-dynamics/MUのQ4ボタンが出ないバグ
/earnings-dynamics/MUを開いたら、Q4 FY26のボタンが出ていない。最初はreportedが無いせいだと当たりをつけて、MU.tsのQ3 FY26に手でreportedを追加した。それでもQ4ボタンが出ない。
原因を追ったら、buildFocusQuartersの中でestimateの直近スナップショットが「Q4 FY26のwindow内」に存在しないと、その四半期はfocusQuartersから外される仕様だった。最新のestimateが2026-06-23まで、Q4 FY26のwindowStartは2026-06-29以降。間に入っているestimateが無いから、Q4 FY26がフィルタで弾かれていた。
対処は2つを並行で。
- Q3 FY26の
reportDateを実発表日(2026-06-24)に更新 - Q4 FY26の
estimatesに2026-06-25のダミースナップショット(前日値と同値)を追加
これでwindow判定が通り、Q4 FY26ボタンが出るようになった。コミット0df4babd。
バー並び順を「予想→ガイダンス→実績」に変更
EPSチャートを見たユーザーから「通常左が予想、右が実績だよね?ガイダンスが左に来てるのおかしい」と指摘。EarningsChart.vue(実体はBeatExpectationsChart.vue)の中で、3本パターン・2本パターン両方のバー順序を組み替えた。
- 旧: ガイダンス → 予想 → 実績
- 新: アナリスト予想(左・グレー)→ 会社ガイダンス(中/右・ピンク)→ 実績(右・ダーク)
凡例も同じ順序に揃えた。コミット5351f2c5。
Divider lineを「最後の実績Qの右端」に変更
「実績 ← | → 予想」の縦の区切り線が、EPSには出ているのにRevenueには出ないという報告が来た。dividerXのロジックを読んだら、findIndexで「最初にreportedが無いQ」を探していて、Revenueの先頭3つ(Q3 FY25 / Q4 FY25 / Q1 FY26)にreportedが無いとindex 0が返ってfirstFutureIdx <= 0でnullを返す形になっていた。EPSは全Qにreportedがあるので問題が顕在化していなかった。
直し方は逆方向に。findIndexをやめて、forEachで「最後にreportedを持っているQ」のインデックスを拾い、その右端をdivider Xにした。これで銘柄ごとのreported充足状況に依存せずに線が引ける。コミットa69c9792。
// 旧: 「最初の予想Q」を探す → reported歯抜けで死ぬ
const firstFutureIdx = series.findIndex(s => !s.reported)
// 新: 「最後の実績Q」を探す → 歯抜けでも死なない
let lastReportedIdx = -1
series.forEach((s, i) => { if (s.reported) lastReportedIdx = i })
アナリスト予想と将来予想を統合
凡例とバーで「アナリスト予想(グレー)」と「将来予想(薄いグレー)」が別カテゴリになっていたが、Q-by-Q時点では同じ意味のメトリクスなのでまとめてしまった。凡例から「将来予想」を消し、バーは全部「アナリスト予想」に寄せた。コミット690cebc9。
MicronFy26Q3SummaryCard.vue 新規作成 → ページ分離
/beat-monitoring/MUの末尾にQ3 FY26のIRサマリーカードを置きたいというリクエスト。MicronFy26Q3SummaryCard.vueを新規作成して、[ticker].vueの末尾にMU専用の差し込みを入れた。
途中で「カード1個にカンファレンスコール全部詰めると重すぎるね」となり、方針変更。
/beat-monitoring/MU/fy2026-Q3に詳細ページを切り出し/beat-monitoring/MUからはそこへのリンクだけ残す- カード本体はSVG 5点(SCA構造図、需要側の階段、HBMロードマップ等)+ Prepared Remarks引用 + CFO発言詳細という構成
Codex CLIにレビューさせたら、SVGはみ出しとnavigateTo名前衝突を含めて3件の致命的指摘が返ってきたので全部潰した。
ソースをThe TranscriptからMicron公式IRのPrepared Remarks PDFに差し替え
初版のカンファレンスコール引用は、The Transcript(@TheTranscript_)のTwitter抜粋から取っていた。ユーザーから「NVIDIAの時に同じ人が原文使ってたよね?The TranscriptのTwitter抜粋は厳密には原文じゃない」と指摘。
NVIDIAの過去記事を確認したらMotley Foolが原文ソースだった。Micron Q3 FY26はMotley Foolにまだ無く(決算翌日のタイムラグ)、Micron公式IRサイトに "Fiscal Q3 2026 Earnings Call Prepared Remarks" PDF(11ページ)があったのでこれを正とした。
curlがWindows環境で詰まったのでPowerShellのInvoke-WebRequestでPDFを直接落として、5トピックのquoteを公式原文に置き換え。同時にファクトエラーが2つ判明した。
- 「Open Floor / Nemo Flow」(Twitter抜粋)→ 正しくは「OpenClaw / NemoClaw」
- 売上数字を$41.5B(公式表記)に統一
SCA「5年契約 1→7件」のファクト確認と16件表記訂正
ユーザーから「カード内SVGに『16件』って書いてるけど、Gene Munsterのツイートでは『1→7件』って言ってるよ。どっちが正しい?」と指摘。
x-searchでファクトを引き直したら 両方とも正しい ことが分かった。
- 16件: 全SCA契約の総数(5年契約 + 3年契約の合計、CFO Mark Murphyの発言ベース)
- 1→7件: 5年契約だけに絞った前期→今期の増分(Gene Munsterのツイート、Q&Aセクションからの引用と思われる)
「最も過小評価されているデータポイント」がこの 5年契約だけで7倍 という構造だったので、SVG #1(SCA全体像)を「5年契約 / 3年契約」の内訳が見える構造に作り直し、需要側の階段SVG(基本車1× / L2+ 5× / ヒューマノイド 50×)も高さを厳密比例で書き直した。ソースリストにMunsterツイートを追加。
振り返り
Koyfin取得が落ちた状態でも、SEC 8-K + x-searchの突き合わせで実績数字は手で詰められる、というワークフローを今回証明できた。一方でearnings-dynamicsのfocusQuartersフィルタは、決算翌日にestimate snapshotが存在しないと該当Qが見えなくなる、という落とし穴があった。/make-diary Step 10.5に「reportDate更新 + estimatesダミー追加」を組み込んだので、次回MU決算の朝はもう少しスムーズに通るはず。
カードコンポーネントのソース差し替えは、これからも「The TranscriptのTwitter抜粋 → 公式Prepared Remarks PDF」を標準パターンにしたい。Micron / NVIDIA / SK Hynixあたりは公式IRに必ずPDFが上がる。