[{"data":1,"prerenderedAt":396},["ShallowReactive",2],{"content-/memory-makers-stats-release-schedule":3,"all-pages-for-dir":374,"related-/memory-makers-stats-release-schedule":375,"og-image-/memory-makers-stats-release-schedule":395},{"id":4,"title":5,"body":6,"category":356,"concepts":357,"description":358,"extension":359,"meta":360,"navigation":361,"ogImage":357,"path":362,"project_name":363,"published":364,"publishedAt":365,"seo":366,"stem":367,"tags":368,"todo":357,"unpublished":364,"updatedAt":357,"__hash__":373},"pages/2026-07/2026-07-18/memory-makers-stats-release-schedule.md","半導体関連統計の公表スケジュールをSSOT化してカードに「次回更新」を出す",{"type":7,"value":8,"toc":348},"minimark",[9,13,17,20,25,28,32,35,38,42,45,164,167,294,297,304,307,310,313,316,319,322,325,328,341,344],[10,11,5],"h1",{"id":12},"半導体関連統計の公表スケジュールをssot化してカードに次回更新を出す",[14,15,16],"p",{},"朝、韓国と台湾の統計は全部揃っているのか、単価の細かいデータまで入っているのかが気になって、/update-korea-chip-exports の状況チェックを回させた。揃っているに違いない、と思っていた。結果は未了3件。いちばん大きいのは SIA 世界半導体売上の2026年5月分で、7月6日に公表済みなのに未反映だった。",[14,18,19],{},"穴埋め自体はすぐ終わった。その直後に発した一つの質問が、残りの時間を公表スケジュールの UI 整備に変えた。",[21,22,24],"h2",{"id":23},"発端は全部揃ってるの点検","発端は「全部揃ってる？」の点検",[14,26,27],{},"統計 SSOT（exportStats.ts）に対して各系列の最新月を突き合わせさせたところ、未了は3件。SIA の5月分追記、20日速報6月分の絶対値 backfill、品目別旬報の day10 取得だった。単価まわりは正確な値を取るため、KDI 経由で関税庁の公式 PDF をダウンロードして抽出させた。関連テスト129件のパスと dev 環境の描画まで確認して、ここまでは定例作業の範囲だった。",[21,29,31],{"id":30},"_6月分はまだと自分で聞いてしまった","「6月分はまだ？」と自分で聞いてしまった",[14,33,34],{},"追記が終わった画面を見て、半導体売上の6月分はまだないのか、いつ更新されるのかと聞いた。答えには自分でたどり着いた。7月6日に5月分が追加された。ということは、6月分は8月だ。SIA は毎月初旬に前々月分を発表する、約2ヶ月ラグの統計だった。",[14,36,37],{},"この発表サイクル自体は exportStats.ts の notes に文書化してあった。それでも自分は「まだ？」と聞いた。ページに行って notes を開かないと見えない情報は、ないのと同じ扱いを受ける。ページに行く前、カードコンポーネントの時点で「次の更新はいつか」が分かるようにしたい。ついでに、全統計の公表タイミングを一覧する専用ページを1枚分けることにした。",[21,39,41],{"id":40},"スケジュールを-ssot-に切り出す","スケジュールを SSOT に切り出す",[14,43,44],{},"statsReleaseSchedule.ts を新設させた。各統計に、対象期間と公表タイミング、表示用の言葉を持たせる。",[46,47,52],"pre",{"className":48,"code":49,"language":50,"meta":51,"style":51},"language-typescript shiki shiki-themes vitesse-light vitesse-light","export interface StatSchedule {\n  periodFrom: number            // 対象期間: データ月の periodFrom 日〜\n  periodTo: number | null       // periodTo 日（null = 月末）\n  publishMonthOffset: number    // 公表: データ月 + Nヶ月の\n  publishDay: number            // publishDay 日頃\n  publishLabel: string          // 「当月11日頃」「翌々月上旬」など\n  // ...\n}\n","typescript","",[53,54,55,76,93,112,125,138,152,158],"code",{"__ignoreMap":51},[56,57,60,64,68,72],"span",{"class":58,"line":59},"line",1,[56,61,63],{"class":62},"sHkkW","export",[56,65,67],{"class":66},"stQ0i"," interface",[56,69,71],{"class":70},"sSkh3"," StatSchedule",[56,73,75],{"class":74},"shFtX"," {\n",[56,77,79,83,86,89],{"class":58,"line":78},2,[56,80,82],{"class":81},"s4oTP","  periodFrom",[56,84,85],{"class":74},": ",[56,87,88],{"class":70},"number",[56,90,92],{"class":91},"sxvE3","            // 対象期間: データ月の periodFrom 日〜\n",[56,94,96,99,101,103,106,109],{"class":58,"line":95},3,[56,97,98],{"class":81},"  periodTo",[56,100,85],{"class":74},[56,102,88],{"class":70},[56,104,105],{"class":74}," | ",[56,107,108],{"class":66},"null",[56,110,111],{"class":91},"       // periodTo 日（null = 月末）\n",[56,113,115,118,120,122],{"class":58,"line":114},4,[56,116,117],{"class":81},"  publishMonthOffset",[56,119,85],{"class":74},[56,121,88],{"class":70},[56,123,124],{"class":91},"    // 公表: データ月 + Nヶ月の\n",[56,126,128,131,133,135],{"class":58,"line":127},5,[56,129,130],{"class":81},"  publishDay",[56,132,85],{"class":74},[56,134,88],{"class":70},[56,136,137],{"class":91},"            // publishDay 日頃\n",[56,139,141,144,146,149],{"class":58,"line":140},6,[56,142,143],{"class":81},"  publishLabel",[56,145,85],{"class":74},[56,147,148],{"class":70},"string",[56,150,151],{"class":91},"          // 「当月11日頃」「翌々月上旬」など\n",[56,153,155],{"class":58,"line":154},7,[56,156,157],{"class":91},"  // ...\n",[56,159,161],{"class":58,"line":160},8,[56,162,163],{"class":74},"}\n",[14,165,166],{},"行順は公表ラグの短い順で、旬報、月次、2ヶ月ラグ統計の10本が並ぶ。こうして並べると、同じ半導体まわりの統計でも公表は当月内から翌々月まで3段階に散らばっていて、SIA だけが例外的に遅いわけではないと分かる。",[168,169,170,186],"table",{},[171,172,173],"thead",{},[174,175,176,180,183],"tr",{},[177,178,179],"th",{},"統計",[177,181,182],{},"対象期間",[177,184,185],{},"公表タイミング",[187,188,189,201,212,223,233,244,254,264,274,284],"tbody",{},[174,190,191,195,198],{},[192,193,194],"td",{},"韓国 旬報 半導体合計（1〜10日）",[192,196,197],{},"当月1〜10日",[192,199,200],{},"当月11日頃",[174,202,203,206,209],{},[192,204,205],{},"韓国 品目別 旬報 上旬",[192,207,208],{},"当月1〜11日",[192,210,211],{},"当月12日頃",[174,213,214,217,220],{},[192,215,216],{},"韓国 旬報 半導体合計（1〜20日）",[192,218,219],{},"当月1〜20日",[192,221,222],{},"当月21日頃",[174,224,225,228,230],{},[192,226,227],{},"韓国 品目別 旬報 中旬",[192,229,219],{},[192,231,232],{},"当月22日頃",[174,234,235,238,241],{},[192,236,237],{},"韓国 半導体月次輸出（確報）",[192,239,240],{},"月全体",[192,242,243],{},"翌月1日",[174,245,246,249,251],{},[192,247,248],{},"韓国 DRAM/NAND輸出単価（月初PDF速報）",[192,250,240],{},[192,252,253],{},"翌月1日頃",[174,255,256,259,261],{},[192,257,258],{},"台湾 総輸出",[192,260,240],{},[192,262,263],{},"翌月7〜9日頃",[174,265,266,269,271],{},[192,267,268],{},"韓国 品目別 確報（KCS）",[192,270,240],{},[192,272,273],{},"翌月15日頃",[174,275,276,279,281],{},[192,277,278],{},"世界半導体売上（SIA/WSTS）",[192,280,240],{},[192,282,283],{},"翌々月初旬",[174,285,286,289,291],{},[192,287,288],{},"日本 機械受注「電子計算機等」",[192,290,240],{},[192,292,293],{},"翌々月中旬",[14,295,296],{},"決めたのは「最新反映月をスケジュール側に手で書かない」こと。実データ（exportStats.ts ほか）から動的に導出させるので、統計を追記した瞬間に「次回更新」表示も追従する。スケジュール表が古びて嘘をつく事故を、運用ではなく構造で塞いだ。",[14,298,299,300,303],{},"この SSOT から、新設ページ ",[53,301,302],{},"/memory-makers/release-schedule","（統計の更新スケジュール）と、各統計カードの「次回更新」行の両方を描画させる。カード側は実データの最新反映月から次のデータ月を割り出し、その公表予定を表示する。ページを開かなくても、カードを一瞥すれば「次は8月上旬」と読める状態になった。各統計ページの関連ページセクションにも、スケジュールページへのカードを相互に追加させた。ユニットテスト18件を書かせて、dev 環境での描画確認まで済ませた。",[21,305,306],{"id":306},"トップの導線も2箇所直した",[14,308,309],{},"ページを作っても、カードが出てこなければ入口がない。/memory-makers ハブの親要素にスケジュールのカードが入っていないのに気づいて、「統計の更新スケジュール」カードを追加させた。配置は関連の深い「輸出・市場統計」の隣で、intro の文末にも一覧への一文を足した。",[14,311,312],{},"サイトトップも見た。投資セクションに親ハブの「半導体サプライチェーン動向」が出ておらず、その配下にあるはずの輸出/市場統計などの子カード4枚が直接並んでいた。親子が逆だ。子カード4枚を親カード1枚に置き換えさせて、導線を親からハブ、ハブから各セクションへ整理した。トップのカードを検査する既存テスト69件もパスした。",[21,314,315],{"id":315},"実日付カレンダー案を捨てる",[14,317,318],{},"最初に出てきたスケジュールページは、ガントチャートだった。縦軸に全統計、横軸に今月から2ヶ月先までの実カレンダー。対象期間バー、公表日マーカー、反映済みステータス、今日ラインまで付いている。情報としては全部正しい。",[14,320,321],{},"出来上がった画面を見て、違う、と返した。6月、7月と具体的な日付が並ぶが、知りたいのはそこではない。締め日に対して公表が翌月なのか翌々月なのか。その関係さえ分かれば何も問題なく、具体的な日付を入れる必要は全くなかった。",[14,323,324],{},"作り替えさせた。横軸は対象月（M月）、翌月（M+1）、翌々月（M+2）の相対3バンド固定。各統計1行は、グレーの対象期間バーと青◆の公表マーカー1個だけ。ラベルも「当月11日頃」「翌月1日」「翌々月中旬」という相対表現のみで、具体的な月日は排除した。今日ラインや反映済みステータスは削除した（反映状況は下の一覧表の担当）。日付への依存が消えたので ClientOnly も外せて、SSOT からカレンダー座標系の関数も削除できた。図は薄くなって、答えは速くなった。",[21,326,327],{"id":327},"学び",[329,330,331,335,338],"ul",{},[332,333,334],"li",{},"公表サイクルは notes に文書化してあっても、自分が「6月分はまだ？」と聞いた。文書は読みに行く手前（カード）に出して、初めて機能する",[332,336,337],{},"「いつ」の UI は実日付より関係で表せることがある。「翌月か翌々月か」に落とすと月が替わっても描き替えが要らず、日付依存が消えて ClientOnly も不要になった",[332,339,340],{},"最新反映月をスケジュール側に持たせず実データから導出させると、統計を追記するだけで「次回更新」が追従する。表の陳腐化を構造で防げた",[14,342,343],{},"次に「6月分はまだ？」と思ったときは、ページに行く前のカードが「8月上旬」と答えてくれるはずだ。",[345,346,347],"style",{},"html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .stQ0i, html code.shiki .stQ0i{--shiki-default:#AB5959;--shiki-dark:#AB5959}html pre.shiki code .sSkh3, html code.shiki .sSkh3{--shiki-default:#2E8F82;--shiki-dark:#2E8F82}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .sxvE3, html code.shiki .sxvE3{--shiki-default:#A0ADA0;--shiki-dark:#A0ADA0}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":51,"searchDepth":78,"depth":78,"links":349},[350,351,352,353,354,355],{"id":23,"depth":78,"text":24},{"id":30,"depth":78,"text":31},{"id":40,"depth":78,"text":41},{"id":306,"depth":78,"text":306},{"id":315,"depth":78,"text":315},{"id":327,"depth":78,"text":327},"dev",null,"「半導体の6月分はまだ？」という自分の疑問をきっかけに、観察中の全統計の締め日と公表日の関係をstatsReleaseSchedule.tsにSSOT化し、カードの「次回更新」表示と一覧ページを整備した。実日付カレンダー案を捨てて相対3バンド表現に落とすまでの記録。","md",{},true,"/memory-makers-stats-release-schedule","financial-data",false,"2026-07-18T00:00:00.000Z",{"title":5,"description":358},"2026-07/2026-07-18/memory-makers-stats-release-schedule",[369,179,370,371,372],"memory-makers","公表スケジュール","SSOT","UI設計","r_u5CGHl1PJqDAO9WcHOXkhFaUx8FGFjBSsGKAcEyh8",[],[376,379,383,387,391],{"title":377,"path":378,"publishedAt":365},"2026年7月18日の開発日記 - 1Password実機検証と画像パイプラインsol採用","/2026-07-18-diary",{"title":380,"path":381,"publishedAt":382},"「世界でAIを使っているのは800万人」は本当か — 公式発表の確認と10年後までのフェルミ推定","/ai-user-count-fermi-estimate","2026-07-15T00:00:00.000Z",{"title":384,"path":385,"publishedAt":386},"hyperscaler-capex ページを「営業CF・CapEx・FCF 三本並列」へ作り直し、合算積み上げ棒と点線位置まで詰める","/hyperscaler-capex-page-parallel-chart-refactor","2026-06-27T00:00:00.000Z",{"title":388,"path":389,"publishedAt":390},"hyperscaler-capex ページに営業CF セクション追加と Koyfin EAC 取り込みパイプラインの CY ラベルバグ修正","/hyperscaler-capex-ocf-section-and-koyfin-bug-fix","2026-06-26T00:00:00.000Z",{"title":392,"path":393,"publishedAt":394},"2026年6月24日の開発日記 - CXMTをmemory-makersに追加、Kindle蔵書438件判定完了、PDF専門書OCR並列取込","/2026-06-24-diary","2026-06-24T00:00:00.000Z","https://log.eurekapu.com/og/blog/memory-makers-stats-release-schedule.png?v=2026-07-18T00%3A00%3A00.000Z&title=%E5%8D%8A%E5%B0%8E%E4%BD%93%E9%96%A2%E9%80%A3%E7%B5%B1%E8%A8%88%E3%81%AE%E5%85%AC%E8%A1%A8%E3%82%B9%E3%82%B1%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92SSOT%E5%8C%96%E3%81%97%E3%81%A6%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E3%80%8C%E6%AC%A1%E5%9B%9E%E6%9B%B4%E6%96%B0%E3%80%8D%E3%82%92%E5%87%BA%E3%81%99&author=Kei%20Komatsu&sig=9812fa34e2efa2d3",1784424573576]