
【MDツール開発 Vol.14】画面が全グレーに。500→20の大暴落から学んだ「待つ」勇気
こんにちは、ノックスリョウです!
・ 今は薬剤師。アパレル業界に飛び込み、MD(マーチャンダイザー)×クリエイターとして奮闘中。
・ ファッション市場の「次のトレンド」をいち早く掴むための分析ツールを、コード経験ほぼゼロからAIと一緒に開発しています。
・ このシリーズは、その泥臭い開発過程をリアルタイムで公開する「プロセスエコノミー」型の連載です。
前回は「全部光って意味がない」問題を、
Jaccard係数とコロニー化で突破しました。
検索機能も付いて、グラフは「見る」から「使う」ツールへと進化し始めた。
……はずだった。
今回は、その地図を「もっと賢く」しようとして、逆に何も映らなくなった話です。
前回、「全部光って意味がない」巨大毛玉グラフをJaccard係数で解きほぐした話はこちら!
【現在地】グラフの形は整った。でも「今の熱量」が息をしていない
✅ ニュース記事の自動収集(スクレイピング)
✅ 単語の抽出と頻度カウント
✅ 仕分けアプリ(スカウト型UI)の完成
✅ グレーリスト+3層構造の設計
✅ Tinder風→エクセル型への転換
✅ 裏方と表舞台の接続
✅ ノードに推移グラフを仕込む
✅ グラフのUI強化(フォーカス・コロニー化・検索)
🔄 ← 今ここ:データ構造の進化(Dual-Layer戦略)
【壁】データ不足の限界。「今週どこが盛り上がっているか」が見えない
前回、Jaccard係数を導入してノード同士の「浅いつながり」を断ち切り、
意味のある塊(コロニー)を生み出すことに成功しました。
でも、しばらく眺めていると、ある違和感に気づく。
「……このグラフ、動いてなくない?」
コロニーの形はきれいになった。
「デニム」の隣には「パンツ」がいて、「GU」の近くには「コラボ」がある。
構造としては正しい。
でも——「今週、どこが盛り上がってるの?」が分からない。
単語同士の関係は見える。でも、今この瞬間、どのキーワードに注目が集まっているのかが見えない。
しかもデータの参照期間がたった7日分しかなかったので、
そもそも「コロニー」を作るための母数が足りていなかった。
Geminiに相談したら、こう言われた。
「データ量が圧倒的に足りない」
……うん、知ってた。薄々気づいてた。
でもさ、7日分しかデータがないのに「30日分使え」って言われても、ないもんはない。
ここで、Geminiが出してきた提案が面白かった。
【実装】過去30日の構造に、直近7日の熱を塗る「Dual-Layer戦略」
Geminiの提案は、こうだった。
「構造(地図)と、熱量(今の流行り)を、別々のデータで描け」
具体的にはこう。
・ 地図を作る(ノードの配置と線のつながり)→ 過去30日分のデータを使う
・ 色を塗る(ノードの色と大きさ)→ 直近7日分のデータを使う
これ、Bloomberg端末とか高度な金融分析ツールでも使われてる設計らしい。
「文脈」と「変化」を同時に捉えるための王道のアプローチ、
名前は「Dual-Layer Strategy(地図と熱量の分離)」。
なるほど、と思いました。
7日分のデータで地図を作ろうとするから、ぐちゃっとした毛玉になる。
でも30日分を使えば、「デニム」と「パンツ」の関係は安定的に描ける。
その安定した地図の上に、「今週はここが赤い(話題)」「ここはグレー(沈静化)」
という熱量だけを直近7日で上塗りする。
地図は動かない。でも色は毎週変わる。
「見慣れた業界地図の中で、トレンドの移動が可視化できる」
これがDual-Layerの肝だったんです。
仕様書を書いて、実装を指示。
画面を開く——
コロニー感は、たしかに以前よりも出ている。

……でも、赤いノードが一個も出てこない。
「え?」
全部グレー。画面が、全部グレーなんですよ。
さっきまで500あった数値が、20。
トレンド表示のはずなのに、どこにも「熱い」場所がない。
改良したはずなのに、画面が前より地味になってる——というか、死んでいる。
エラーが出て止まるほうがまだマシなんですよ。
エラーなら原因を調べられる。でも「動いてるけど何も映らない」って、
何を直せばいいのかすら分からない。
静かな絶望。
Dual-Layerで賢くなるはずだった画面が、全グレーに沈んでいる。
これ、意味あったのか……?って、正直思いましたよね。
【絶望と原因】500→20の大暴落。薬剤師時代に見た「薬の切り替え」と同じ罠
Geminiに泣きついたら、原因はあっさり判明しました。
「集計ルールの変更による計算バグ」。
何が起きていたかというと——
これまでのプログラムは、「過去数ヶ月分の合算値」を履歴として保存していた。
たとえば「デニム」の履歴数値は500(3ヶ月分の合計)。
今回「直近7日分だけ」に変更したので、今日の数値は20。
プログラムは単純に数字を比べる。
「昨日まで500だったのに、今日20? 大暴落じゃん!」
結果、本当に人気がある単語でも「オワコン」扱いされて、全部グレーに沈んだ。
これ、薬剤師時代の経験とまったく同じ構造なんですよ。
処方される薬が同じ系統の別の薬に切り替わったとき、
患者さんに「数字がすごく小さいんだけど、こんな弱い薬で大丈夫なの?」って聞かれたことがある。
でも実際は、有効成分が違えば用量の基準も変わる。
数字が小さくなったからって、薬が弱くなったわけじゃない。
今回の「全部グレー問題」もまったく同じ。
集計ルール(有効成分)が変わったのに、履歴データ(前の薬の用量)と数字だけで比較してしまっていた。
対策はシンプルでした。
word_history.csvを削除して、履歴をリセットする。
今日のデータを新しい「基準点(1日目)」にして、
明日以降の増減で正しくトレンドを判定できるようにする。
リセット後、画面を確認——
大きな変化はまだない。
でもそれは当然で、「1日目」のデータしかないから。
明日、明後日とデータが積み重なれば、
赤く燃えるノードが現れてくるはず。
今は、静かに待つフェーズ。

「数字が消えた」とき、あなたはバグを疑いますか?それとも待ちますか?

今回の開発で一番怖かったのは、
「改良の効果が見えない」瞬間の判断でした。
画面が全部グレーになったとき、2つの可能性がある。
・ 実装が壊れている(バグ)
・ 正しく動いているが、まだデータが足りない(仕込み中)
どっちか分からない。
で、人間って——特に僕みたいな非エンジニアは——
「変化が見えない=失敗」って思いがちなんですよね。
でも今回は違った。
Geminiの分析で「バグ」の部分は修正できた。
そして「データ蓄積を待つ必要がある」という事実も分かった。
これはまさに、薬剤師時代に何度も立ち会ったあの場面と同じです。
処方が変わった直後、患者さんは不安になる。
「数字が小さくなった=悪くなった」と思ってしまう。
でも実際には、ルールが変わっただけで、効果は同じか、むしろ改善されている。
大事なのは、ルール変更直後の数字をそのまま信じないこと。
そして、新しいルールでデータが積み上がるのを「待てる」こと。
今回の「全部グレー問題」は、古い集計ルールの履歴データが残っていたから起きた。
リセットして、正しい条件を整えた。あとは、待つだけ。
この「待つ」ができるかどうかが、
開発を続けられるかどうかの分岐点なのかもしれません。
【次回予告と「余白」】
Dual-Layer戦略の実装と、履歴リセットが完了しました。
現状の機能チェックリストはこちら。
✅ 情報収集:自動スクレイピング&ブラックリストによるノイズ除去
✅ 構造化:Jaccard係数による「意味のコロニー(地図)」形成
✅ 視認性:Dual-Layer構造(30日の地図 × 7日の熱量)
✅ UI体験:キーワード検索、ズーム、フォーカス(ハイライト)機能
✅ 分析:推移グラフ(スパークライン)によるトレンド寿命の判定
ただ…やってしまった…
この後2回分のログデータが消えてしまうという事件が起きました。
ログ作成日から結構時間がたっているのでどの部分をやっていたかも不明というねw
なので
次回は少しタイムスリップして、その先の話に飛びます!
さいごに、
皆さんに聞いてみたいことがあります。
ルールの変更によって、一時的に数値がガクッと下がったこと——つまり「一見するとバグに見える現象」に直面したとき、あなたはどう判断しますか?
すぐに元に戻す?
それとも、新しいルールでデータが揃うまで待つ?
マネジメントでも分析でも、この「待つか戻すか」の判断は、実はけっこう頻繁に訪れるんじゃないかと思っています。
ここまでお読みいただき、ありがとうございます!
それでは、また!
【後注】
面白かったら、Vol.1~10まで概要で一気読みできます!
記事本編よりもまとまっていてもはやこれだけで十分!
この記事はマガジンにまとめています。