[{"data":1,"prerenderedAt":591},["ShallowReactive",2],{"content-/micron-q3-fy26-beat-monitoring-coverage":3,"all-pages-for-dir":589,"og-image-/micron-q3-fy26-beat-monitoring-coverage":590},{"id":4,"title":5,"body":6,"category":567,"description":568,"extension":569,"meta":570,"navigation":339,"ogImage":571,"path":572,"project_name":573,"published":574,"publishedAt":575,"seo":576,"stem":577,"tags":578,"todo":571,"unpublished":574,"updatedAt":571,"__hash__":588},"pages/2026-06/2026-06-25/micron-q3-fy26-beat-monitoring-coverage.md","Micron Q3 FY26 決算をbeat-monitoringとearnings-dynamicsに手作業で反映した記録",{"type":7,"value":8,"toc":555},"minimark",[9,13,34,39,49,86,89,93,108,114,118,130,149,152,173,180,184,195,206,212,216,248,271,419,422,428,432,445,448,464,471,475,478,485,488,500,504,507,514,528,535,538,548,551],[10,11,5],"h1",{"id":12},"micron-q3-fy26-決算をbeat-monitoringとearnings-dynamicsに手作業で反映した記録",[14,15,16,17,21,22,25,26,29,30,33],"p",{},"2026年6月24日（米国時間）にMicronがFY26 Q3決算を発表した。翌朝の",[18,19,20],"code",{},"/make-diary","から流れで",[18,23,24],{},"/check-earnings","に入ったところで、Chrome DevTools MCPが繋がらずKoyfinのStep 0がスキップになった。コンセンサスが当日取れない状態で、",[18,27,28],{},"/beat-monitoring/MU","のチャートにQ3実績$41.5Bを手で流し込み、",[18,31,32],{},"/earnings-dynamics/MU","のQ4 FY26ボタンが出ないバグを潰し、ついでに以前から気になっていたバー並び順とdivider lineの違和感を一気に直した。最後にIRサマリーカードを新規ページとして切り出し、Micron公式IRのPrepared Remarks PDFまで貼り直した。",[35,36,38],"h2",{"id":37},"koyfin-step-0が落ちた状態でのmu手動更新","Koyfin Step 0が落ちた状態でのMU手動更新",[14,40,41,42,44,45,48],{},"朝の",[18,43,24],{},"はSEC EDGARでMUのQ3 FY26決算を検知したが、Chrome DevTools MCPが",[18,46,47],{},"mcp__chrome-devtools__*","を一切ロードしてくれず、Koyfinスナップショット取得（Step 0）がスキップ。SECの8-Kとプレスリリースから実績数字を手で拾い直した。",[50,51,52,63,66,69],"ul",{},[53,54,55,56,62],"li",{},"Revenue: **",[18,57,61],{"className":58},[59,60],"language-math","math-inline","41.5B** vs コンセンサス ","35.84B（+16%）、会社ガイド $33.5B（+24%）",[53,64,65],{},"粗利率: 84.9%",[53,67,68],{},"Non-GAAP EPS: $25.11",[53,70,71,72,80,81,85],{},"Q4 FY26 ガイダンス: 売上 ",[73,74,75,79],"strong",{},[18,76,78],{"className":77},[59,60],"50B ± ","1B","、粗利率 約86%、EPS ",[18,82,84],{"className":83},[59,60],"31 ± ","1",[14,87,88],{},"このQ3実績行をMU.jsonに上書きし、Q4 FY26を予測行として追加した。",[35,90,92],{"id":91},"q3予想4739bをユーザー指示で手で上書き","Q3予想$47.39Bをユーザー指示で手で上書き",[14,94,95,96,99,100,103,104,107],{},"Koyfinが落ちているのでFY27 Q1（= Q4 FY26のガイド対象）のコンセンサスが取れない。ユーザーから「とりあえず47.39を入れといて」と指示が来て、Q4 FY26行のガイダンス欄（= ガイド対象 Q1 FY27）のコンセンサスを",[18,97,98],{},"n/a"," → ",[18,101,102],{},"$47.39B","に書き換えた。EPSは前日Koyfinから",[18,105,106],{},"$27.63","が取れていたのでそちらを採用。",[14,109,110,113],{},[18,111,112],{},"triple-beat-guidance-target.md","ルールに沿って、ガイドチャート側はX軸が「ガイド対象Q」になっていることを確認しながら触った。",[35,115,117],{"id":116},"earnings-dynamicsmuのq4ボタンが出ないバグ","earnings-dynamics/MUのQ4ボタンが出ないバグ",[14,119,120,122,123,126,127,129],{},[18,121,32],{},"を開いたら、Q4 FY26のボタンが出ていない。最初は",[18,124,125],{},"reported","が無いせいだと当たりをつけて、MU.tsのQ3 FY26に手で",[18,128,125],{},"を追加した。それでもQ4ボタンが出ない。",[14,131,132,133,136,137,140,141,144,145,148],{},"原因を追ったら、",[18,134,135],{},"buildFocusQuarters","の中でestimateの直近スナップショットが「Q4 FY26のwindow内」に存在しないと、その四半期はfocusQuartersから外される仕様だった。最新のestimateが",[18,138,139],{},"2026-06-23","まで、Q4 FY26の",[18,142,143],{},"windowStart","は",[18,146,147],{},"2026-06-29","以降。間に入っているestimateが無いから、Q4 FY26がフィルタで弾かれていた。",[14,150,151],{},"対処は2つを並行で。",[153,154,155,162],"ol",{},[53,156,157,158,161],{},"Q3 FY26の",[18,159,160],{},"reportDate","を実発表日（2026-06-24）に更新",[53,163,164,165,168,169,172],{},"Q4 FY26の",[18,166,167],{},"estimates","に",[18,170,171],{},"2026-06-25","のダミースナップショット（前日値と同値）を追加",[14,174,175,176,179],{},"これでwindow判定が通り、Q4 FY26ボタンが出るようになった。コミット",[18,177,178],{},"0df4babd","。",[35,181,183],{"id":182},"バー並び順を予想ガイダンス実績に変更","バー並び順を「予想→ガイダンス→実績」に変更",[14,185,186,187,190,191,194],{},"EPSチャートを見たユーザーから「通常左が予想、右が実績だよね？ガイダンスが左に来てるのおかしい」と指摘。",[18,188,189],{},"EarningsChart.vue","（実体は",[18,192,193],{},"BeatExpectationsChart.vue","）の中で、3本パターン・2本パターン両方のバー順序を組み替えた。",[50,196,197,200],{},[53,198,199],{},"旧: ガイダンス → 予想 → 実績",[53,201,202,203],{},"新: ",[73,204,205],{},"アナリスト予想（左・グレー）→ 会社ガイダンス（中/右・ピンク）→ 実績（右・ダーク）",[14,207,208,209,179],{},"凡例も同じ順序に揃えた。コミット",[18,210,211],{},"5351f2c5",[35,213,215],{"id":214},"divider-lineを最後の実績qの右端に変更","Divider lineを「最後の実績Qの右端」に変更",[14,217,218,219,222,223,226,227,229,230,232,233,236,237,240,241,244,245,247],{},"「実績 ← | → 予想」の縦の区切り線が、EPSには出ているのにRevenueには出ないという報告が来た。",[18,220,221],{},"dividerX","のロジックを読んだら、",[18,224,225],{},"findIndex","で「最初に",[18,228,125],{},"が無いQ」を探していて、Revenueの先頭3つ（Q3 FY25 / Q4 FY25 / Q1 FY26）に",[18,231,125],{},"が無いと",[18,234,235],{},"index 0","が返って",[18,238,239],{},"firstFutureIdx \u003C= 0","で",[18,242,243],{},"null","を返す形になっていた。EPSは全Qに",[18,246,125],{},"があるので問題が顕在化していなかった。",[14,249,250,251,253,254,257,258,264,265,267,268,179],{},"直し方は逆方向に。",[18,252,225],{},"をやめて、",[18,255,256],{},"forEach","で「",[73,259,260,261,263],{},"最後に",[18,262,125],{},"を持っているQ","」のインデックスを拾い、その右端をdivider Xにした。これで銘柄ごとの",[18,266,125],{},"充足状況に依存せずに線が引ける。コミット",[18,269,270],{},"a69c9792",[272,273,278],"pre",{"className":274,"code":275,"language":276,"meta":277,"style":277},"language-ts shiki shiki-themes vitesse-light vitesse-light","// 旧: 「最初の予想Q」を探す → reported歯抜けで死ぬ\nconst firstFutureIdx = series.findIndex(s => !s.reported)\n\n// 新: 「最後の実績Q」を探す → 歯抜けでも死なない\nlet lastReportedIdx = -1\nseries.forEach((s, i) => { if (s.reported) lastReportedIdx = i })\n","ts","",[18,279,280,289,334,341,347,365],{"__ignoreMap":277},[281,282,285],"span",{"class":283,"line":284},"line",1,[281,286,288],{"class":287},"sxvE3","// 旧: 「最初の予想Q」を探す → reported歯抜けで死ぬ\n",[281,290,292,296,300,304,307,310,313,316,319,322,325,327,329,331],{"class":283,"line":291},2,[281,293,295],{"class":294},"stQ0i","const ",[281,297,299],{"class":298},"s4oTP","firstFutureIdx",[281,301,303],{"class":302},"shFtX"," =",[281,305,306],{"class":298}," series",[281,308,309],{"class":302},".",[281,311,225],{"class":312},"senZ8",[281,314,315],{"class":302},"(",[281,317,318],{"class":298},"s",[281,320,321],{"class":302}," =>",[281,323,324],{"class":294}," !",[281,326,318],{"class":298},[281,328,309],{"class":302},[281,330,125],{"class":298},[281,332,333],{"class":302},")\n",[281,335,337],{"class":283,"line":336},3,[281,338,340],{"emptyLinePlaceholder":339},true,"\n",[281,342,344],{"class":283,"line":343},4,[281,345,346],{"class":287},"// 新: 「最後の実績Q」を探す → 歯抜けでも死なない\n",[281,348,350,353,356,358,361],{"class":283,"line":349},5,[281,351,352],{"class":294},"let ",[281,354,355],{"class":298},"lastReportedIdx",[281,357,303],{"class":302},[281,359,360],{"class":294}," -",[281,362,364],{"class":363},"sM54T","1\n",[281,366,368,371,373,375,378,380,383,386,389,391,394,398,401,403,405,407,409,412,414,416],{"class":283,"line":367},6,[281,369,370],{"class":298},"series",[281,372,309],{"class":302},[281,374,256],{"class":312},[281,376,377],{"class":302},"((",[281,379,318],{"class":298},[281,381,382],{"class":302},",",[281,384,385],{"class":298}," i",[281,387,388],{"class":302},")",[281,390,321],{"class":302},[281,392,393],{"class":302}," {",[281,395,397],{"class":396},"sHkkW"," if",[281,399,400],{"class":302}," (",[281,402,318],{"class":298},[281,404,309],{"class":302},[281,406,125],{"class":298},[281,408,388],{"class":302},[281,410,411],{"class":298}," lastReportedIdx",[281,413,303],{"class":302},[281,415,385],{"class":298},[281,417,418],{"class":302}," })\n",[35,420,421],{"id":421},"アナリスト予想と将来予想を統合",[14,423,424,425,179],{},"凡例とバーで「アナリスト予想（グレー）」と「将来予想（薄いグレー）」が別カテゴリになっていたが、Q-by-Q時点では同じ意味のメトリクスなのでまとめてしまった。凡例から「将来予想」を消し、バーは全部「アナリスト予想」に寄せた。コミット",[18,426,427],{},"690cebc9",[35,429,431],{"id":430},"micronfy26q3summarycardvue-新規作成-ページ分離","MicronFy26Q3SummaryCard.vue 新規作成 → ページ分離",[14,433,434,436,437,440,441,444],{},[18,435,28],{},"の末尾にQ3 FY26のIRサマリーカードを置きたいというリクエスト。",[18,438,439],{},"MicronFy26Q3SummaryCard.vue","を新規作成して、",[18,442,443],{},"[ticker].vue","の末尾にMU専用の差し込みを入れた。",[14,446,447],{},"途中で「カード1個にカンファレンスコール全部詰めると重すぎるね」となり、方針変更。",[50,449,450,456,461],{},[53,451,452,455],{},[18,453,454],{},"/beat-monitoring/MU/fy2026-Q3","に詳細ページを切り出し",[53,457,458,460],{},[18,459,28],{},"からはそこへのリンクだけ残す",[53,462,463],{},"カード本体はSVG 5点（SCA構造図、需要側の階段、HBMロードマップ等）+ Prepared Remarks引用 + CFO発言詳細という構成",[14,465,466,467,470],{},"Codex CLIにレビューさせたら、SVGはみ出しと",[18,468,469],{},"navigateTo","名前衝突を含めて3件の致命的指摘が返ってきたので全部潰した。",[35,472,474],{"id":473},"ソースをthe-transcriptからmicron公式irのprepared-remarks-pdfに差し替え","ソースをThe TranscriptからMicron公式IRのPrepared Remarks PDFに差し替え",[14,476,477],{},"初版のカンファレンスコール引用は、The Transcript（@TheTranscript_）のTwitter抜粋から取っていた。ユーザーから「NVIDIAの時に同じ人が原文使ってたよね？The TranscriptのTwitter抜粋は厳密には原文じゃない」と指摘。",[14,479,480,481,484],{},"NVIDIAの過去記事を確認したらMotley Foolが原文ソースだった。Micron Q3 FY26はMotley Foolにまだ無く（決算翌日のタイムラグ）、Micron公式IRサイトに ",[73,482,483],{},"\"Fiscal Q3 2026 Earnings Call Prepared Remarks\" PDF","（11ページ）があったのでこれを正とした。",[14,486,487],{},"curlがWindows環境で詰まったのでPowerShellのInvoke-WebRequestでPDFを直接落として、5トピックのquoteを公式原文に置き換え。同時にファクトエラーが2つ判明した。",[50,489,490,497],{},[53,491,492,493,496],{},"「Open Floor / Nemo Flow」（Twitter抜粋）→ 正しくは「",[73,494,495],{},"OpenClaw / NemoClaw","」",[53,498,499],{},"売上数字を$41.5B（公式表記）に統一",[35,501,503],{"id":502},"sca5年契約-17件のファクト確認と16件表記訂正","SCA「5年契約 1→7件」のファクト確認と16件表記訂正",[14,505,506],{},"ユーザーから「カード内SVGに『16件』って書いてるけど、Gene Munsterのツイートでは『1→7件』って言ってるよ。どっちが正しい？」と指摘。",[14,508,509,510,513],{},"x-searchでファクトを引き直したら ",[73,511,512],{},"両方とも正しい"," ことが分かった。",[50,515,516,522],{},[53,517,518,521],{},[73,519,520],{},"16件",": 全SCA契約の総数（5年契約 + 3年契約の合計、CFO Mark Murphyの発言ベース）",[53,523,524,527],{},[73,525,526],{},"1→7件",": 5年契約だけに絞った前期→今期の増分（Gene Munsterのツイート、Q&Aセクションからの引用と思われる）",[14,529,530,531,534],{},"「最も過小評価されているデータポイント」がこの ",[73,532,533],{},"5年契約だけで7倍"," という構造だったので、SVG #1（SCA全体像）を「5年契約 / 3年契約」の内訳が見える構造に作り直し、需要側の階段SVG（基本車1× / L2+ 5× / ヒューマノイド 50×）も高さを厳密比例で書き直した。ソースリストにMunsterツイートを追加。",[35,536,537],{"id":537},"振り返り",[14,539,540,541,544,545,547],{},"Koyfin取得が落ちた状態でも、SEC 8-K + x-searchの突き合わせで実績数字は手で詰められる、というワークフローを今回証明できた。一方でearnings-dynamicsの",[18,542,543],{},"focusQuarters","フィルタは、決算翌日にestimate snapshotが存在しないと該当Qが見えなくなる、という落とし穴があった。",[18,546,20],{}," Step 10.5に「reportDate更新 + estimatesダミー追加」を組み込んだので、次回MU決算の朝はもう少しスムーズに通るはず。",[14,549,550],{},"カードコンポーネントのソース差し替えは、これからも「The TranscriptのTwitter抜粋 → 公式Prepared Remarks PDF」を標準パターンにしたい。Micron / NVIDIA / SK Hynixあたりは公式IRに必ずPDFが上がる。",[552,553,554],"style",{},"html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":277,"searchDepth":291,"depth":291,"links":556},[557,558,559,560,561,562,563,564,565,566],{"id":37,"depth":291,"text":38},{"id":91,"depth":291,"text":92},{"id":116,"depth":291,"text":117},{"id":182,"depth":291,"text":183},{"id":214,"depth":291,"text":215},{"id":421,"depth":291,"text":421},{"id":430,"depth":291,"text":431},{"id":473,"depth":291,"text":474},{"id":502,"depth":291,"text":503},{"id":537,"depth":291,"text":537},"dev","Micron Technology（MU）のFY26 Q3決算発表日に、Koyfin Step 0がChrome DevTools不調でスキップされた状態から、beat-monitoringとearnings-dynamicsの両ページに実績$41.5B vs コンセンサス$35.84BとQ4ガイダンス$50Bを手で流し込んだ作業ログ。Q4 FY26ボタンが出ないバグの原因がfocusQuartersフィルタだった件、バー並び順を予想→ガイダンス→実績に整えた件、divider lineを最後の実績Qの右端に変えた件、IRサマリーカード新規作成、SCA 5年契約1→7件のファクト確認まで。","md",{},null,"/micron-q3-fy26-beat-monitoring-coverage","mdx-playground",false,"2026-06-25T00:00:00.000Z",{"title":5,"description":568},"2026-06/2026-06-25/micron-q3-fy26-beat-monitoring-coverage",[579,580,581,582,583,584,585,586,543,587],"Micron","MU","beat-monitoring","earnings-dynamics","決算","Vue","Nuxt","BeatExpectationsChart","SCA","oumWVtDLCDUBkCFt93KT3sfkPUsYYzWhKkJL3GCz69M",[],"https://log.eurekapu.com/og/blog/micron-q3-fy26-beat-monitoring-coverage.png?v=2026-06-25T00%3A00%3A00.000Z&title=Micron%20Q3%20FY26%20%E6%B1%BA%E7%AE%97%E3%82%92beat-monitoring%E3%81%A8earnings-dynamics%E3%81%AB%E6%89%8B%E4%BD%9C%E6%A5%AD%E3%81%A7%E5%8F%8D%E6%98%A0%E3%81%97%E3%81%9F%E8%A8%98%E9%8C%B2&author=Kei%20Komatsu&sig=2faa239b0ff14fe6",1782445066367]