未分類
NVIDIA EPS予測分析 - 四半期QoQオーバーライド機能
概要
アナリスト予測が保守的すぎるという仮説を検証するため、四半期ごとのQoQ(前四半期比)成長率を個別調整できる機能を実装中である。
機能要件
- アナリスト予測期間(4Q'26〜3Q'28): 四半期ごとにQoQ成長率を個別編集可能(デフォルト = アナリスト予測値)
- アナリスト予測がない期間(4Q'28以降): 「年間売上成長率」パラメータから計算される一律QoQを使用
- 編集可能テーブル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成長率 (%) } -
quarterlyQoQOverridesref 追加(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)- アナリスト予測値にリセット
-
quarterlyForecastDatacomputed 更新(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を使用(推奨)
nvidia-eps-forecast.vueのローカルquarterlyForecastDatacomputed(line 1493-1593)を削除- Composableからインポートした
composableQuarterlyDataをquarterlyForecastDataとして使用 - テンプレートとスクリプト内の参照を確認
方法2: ローカルcomputedを修正
- ローカル
quarterlyForecastDatacomputed 内でquarterlyQoQOverridesを参照するよう修正 - アナリスト予測期間のループ(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 | ✅ 変更なし | 既存の型定義で対応可能 |
テスト手順
修正後、以下を確認:
- ページ読み込み時、テーブルにアナリスト予測QoQが表示される
- テーブルの値を編集すると、四半期EPSチャートの「修正版」バーが更新される
- リセットボタンでアナリスト予測値に戻る
- 「年間売上成長率」スライダー変更で、アナリスト予測がない期間(4Q'28以降)のみ影響を受ける