• #NVIDIA
  • #EPS予測
  • #実装進捗
  • #Vue
未分類

NVIDIA EPS予測分析 - 四半期QoQオーバーライド機能

概要

アナリスト予測が保守的すぎるという仮説を検証するため、四半期ごとのQoQ(前四半期比)成長率を個別調整できる機能を実装中である。

機能要件

  1. アナリスト予測期間(4Q'26〜3Q'28): 四半期ごとにQoQ成長率を個別編集可能(デフォルト = アナリスト予測値)
  2. アナリスト予測がない期間(4Q'28以降): 「年間売上成長率」パラメータから計算される一律QoQを使用
  3. 編集可能テーブルUI: アナリスト予測QoQと修正版QoQを並べて表示

実装状況

✅ 完了

1. Composable (useNvidiaForecast.ts)

ファイル: apps/web/app/components/financial-quiz/nvidia-eps-forecast/useNvidiaForecast.ts

  • QuarterlyQoQOverride インターフェース追加(line 41-45)
    export interface QuarterlyQoQOverride {
      label: string
      analystQoQ: number  // アナリスト予測のQoQ成長率 (%)
      modifiedQoQ: number // ユーザー修正後のQoQ成長率 (%)
    }
    
  • quarterlyQoQOverrides ref 追加(line 59)
    const quarterlyQoQOverrides = ref<QuarterlyQoQOverride[]>([])
    
  • calculateAnalystQoQRates() 関数追加(line 92-117)
    • アナリスト予測のEPSからQoQ成長率を計算
    • 直近実績EPSを起点に各四半期のQoQを算出
  • initializeQoQOverrides() 関数追加(line 120-127)
    • 初期化時にアナリスト予測QoQで自動設定
  • updateQoQOverride() 関数追加(line 130-138)
    • 配列を新規作成してreactivityをトリガー(修正済み)
  • resetQoQOverrides() 関数追加(line 141-143)
    • アナリスト予測値にリセット
  • quarterlyForecastData computed 更新(line 190-201)
    • アナリスト予測期間は quarterlyQoQOverrides を参照
    • オーバーライドがなければ targetQoQGrowth にフォールバック

2. Vue ページ (nvidia-eps-forecast.vue)

ファイル: apps/web/app/pages/financial-quiz/nvidia-eps-forecast.vue

  • 編集可能テーブルUI追加(line 80-117)
    • 四半期ラベル、アナリスト予測QoQ(読取専用)、修正版QoQ(編集可能)の3列
    • リセットボタン付き
    • 注釈テキスト表示
  • CSSスタイル追加
    • .qoq-override-section, .qoq-override-header, .qoq-override-table
  • Script section更新(line 1333-1335)
    • quarterlyQoQOverrides, updateQoQOverride, resetQoQOverrides をインポート

❌ 未完了(バグ)

問題: チャートが編集値を反映しない

症状: テーブルで値を編集しても、チャートは一律11%(targetQoQGrowth)で表示される

原因: Vueページ内にローカルの quarterlyForecastData computed が存在(line 1493-1593)

// ❌ この定義がComposableからインポートした値をシャドウしている
const quarterlyForecastData = computed((): QuarterlyForecastItem[] => {
  // ...
  const modifiedQoQGrowth = targetQoQGrowth.value / 100 // ← quarterlyQoQOverridesを使っていない
  // ...
})

このローカル computed は quarterlyQoQOverrides を参照せず、一律の targetQoQGrowth を使用している。


次のステップ(修正方法)

方法1: ローカルcomputedを削除してComposableを使用(推奨)

  1. nvidia-eps-forecast.vue のローカル quarterlyForecastData computed(line 1493-1593)を削除
  2. Composableからインポートした composableQuarterlyDataquarterlyForecastData として使用
  3. テンプレートとスクリプト内の参照を確認

方法2: ローカルcomputedを修正

  1. ローカル quarterlyForecastData computed 内で quarterlyQoQOverrides を参照するよう修正
  2. アナリスト予測期間のループ(line 1539-1544)を更新:
// 修正案
for (let i = recentActuals.length; i < result.length; i++) {
  const label = result[i].label
  const override = quarterlyQoQOverrides.value.find(o => o.label === label)
  const qoqRate = override ? override.modifiedQoQ / 100 : modifiedQoQGrowth

  prevModifiedEps = prevModifiedEps * (1 + qoqRate)
  prevModifiedRevenue = prevModifiedRevenue * (1 + qoqRate)
  result[i].modifiedEps = prevModifiedEps
  result[i].modifiedRevenue = prevModifiedRevenue
}

ファイル一覧

ファイル状態備考
useNvidiaForecast.ts✅ 完了Composable実装済み
nvidia-eps-forecast.vue⚠️ 部分完了ローカルcomputedの修正が必要
types.ts✅ 変更なし既存の型定義で対応可能

テスト手順

修正後、以下を確認:

  1. ページ読み込み時、テーブルにアナリスト予測QoQが表示される
  2. テーブルの値を編集すると、四半期EPSチャートの「修正版」バーが更新される
  3. リセットボタンでアナリスト予測値に戻る
  4. 「年間売上成長率」スライダー変更で、アナリスト予測がない期間(4Q'28以降)のみ影響を受ける