[{"data":1,"prerenderedAt":1185},["ShallowReactive",2],{"content-/waterfall-chart-bug-investigation":3,"all-pages-for-dir":1164,"related-/waterfall-chart-bug-investigation":1165,"og-image-/waterfall-chart-bug-investigation":1184},{"id":4,"title":5,"body":6,"category":1149,"concepts":1149,"description":1150,"extension":1151,"meta":1152,"navigation":425,"ogImage":1149,"path":1153,"project_name":1149,"published":1154,"publishedAt":1155,"seo":1156,"source":1149,"stem":1157,"tags":1158,"todo":1149,"unpublished":1154,"updatedAt":1155,"__hash__":1163},"pages/2025-12/2025-12-20/waterfall-chart-bug-investigation.md","ウォーターフォールチャート表示バグ調査レポート",{"type":7,"value":8,"toc":1129},"minimark",[9,12,16,24,28,31,61,64,68,74,339,345,353,356,360,370,507,515,519,533,540,594,603,606,664,667,671,677,909,914,977,981,984,998,1001,1004,1012,1033,1040,1043,1057,1060,1065,1071,1077,1083,1086,1089,1094,1116,1119,1125],[10,11,5],"h1",{"id":5},[13,14,15],"h2",{"id":15},"問題の概要",[17,18,19,23],"p",{},[20,21,22],"code",{},"/financial-quiz/proportional-animation"," ページのウォーターフォールチャートで、費用項目の計算が視覚的に合わないように見える問題が発生。",[25,26,27],"h3",{"id":27},"報告された症状",[17,29,30],{},"Linde plc (LIN) 2015年データで確認：",[32,33,34,42,49],"ul",{},[35,36,37,38],"li",{},"Gross Profit (4,816) - SG&A (1,152) - R&D (93) = ",[39,40,41],"strong",{},"3,571",[35,43,44,45,48],{},"しかし Operating Income は ",[39,46,47],{},"2,462"," と表示",[35,50,51,52,55,56],{},"差額: ",[39,53,54],{},"1,109"," が説明されていない\n",[57,58],"img",{"alt":59,"src":60},"alt text","/2025-12/2025-12-20/image.png",[13,62,63],{"id":63},"調査結果",[25,65,67],{"id":66},"_1-データの整合性問題なし","1. データの整合性（問題なし）",[17,69,70,73],{},[20,71,72],{},"financial-data.ts"," の LIN 2015年データを確認：",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-typescript shiki shiki-themes vitesse-light vitesse-light","\"plDetailed\": {\n  \"revenue\": 10776,\n  \"costOfRevenue\": 5960,\n  \"grossProfit\": 4816,\n  \"sgaExpenses\": 1152,\n  \"rdExpenses\": 93,\n  \"daExpenses\": 0,\n  \"otherOperatingExpenses\": 1109,  // ← これが表示されていない！\n  \"operatingIncome\": 2462,\n  \"nonOperatingIncome\": 0,\n  \"nonOperatingExpenses\": 259,\n  \"preTaxIncome\": 2203,\n  \"taxes\": 656,\n  \"netIncome\": 1547\n}\n","typescript","",[20,82,83,106,127,144,161,178,195,212,234,251,267,284,301,318,333],{"__ignoreMap":80},[84,85,88,92,96,98,102],"span",{"class":86,"line":87},"line",1,[84,89,91],{"class":90},"sMJiu","\"",[84,93,95],{"class":94},"sdGka","plDetailed",[84,97,91],{"class":90},[84,99,101],{"class":100},"sG7-3",":",[84,103,105],{"class":104},"shFtX"," {\n",[84,107,109,112,115,117,120,124],{"class":86,"line":108},2,[84,110,111],{"class":90},"  \"",[84,113,114],{"class":94},"revenue",[84,116,91],{"class":90},[84,118,119],{"class":104},": ",[84,121,123],{"class":122},"sM54T","10776",[84,125,126],{"class":104},",\n",[84,128,130,132,135,137,139,142],{"class":86,"line":129},3,[84,131,111],{"class":90},[84,133,134],{"class":94},"costOfRevenue",[84,136,91],{"class":90},[84,138,119],{"class":104},[84,140,141],{"class":122},"5960",[84,143,126],{"class":104},[84,145,147,149,152,154,156,159],{"class":86,"line":146},4,[84,148,111],{"class":90},[84,150,151],{"class":94},"grossProfit",[84,153,91],{"class":90},[84,155,119],{"class":104},[84,157,158],{"class":122},"4816",[84,160,126],{"class":104},[84,162,164,166,169,171,173,176],{"class":86,"line":163},5,[84,165,111],{"class":90},[84,167,168],{"class":94},"sgaExpenses",[84,170,91],{"class":90},[84,172,119],{"class":104},[84,174,175],{"class":122},"1152",[84,177,126],{"class":104},[84,179,181,183,186,188,190,193],{"class":86,"line":180},6,[84,182,111],{"class":90},[84,184,185],{"class":94},"rdExpenses",[84,187,91],{"class":90},[84,189,119],{"class":104},[84,191,192],{"class":122},"93",[84,194,126],{"class":104},[84,196,198,200,203,205,207,210],{"class":86,"line":197},7,[84,199,111],{"class":90},[84,201,202],{"class":94},"daExpenses",[84,204,91],{"class":90},[84,206,119],{"class":104},[84,208,209],{"class":122},"0",[84,211,126],{"class":104},[84,213,215,217,220,222,224,227,230],{"class":86,"line":214},8,[84,216,111],{"class":90},[84,218,219],{"class":94},"otherOperatingExpenses",[84,221,91],{"class":90},[84,223,119],{"class":104},[84,225,226],{"class":122},"1109",[84,228,229],{"class":104},",  ",[84,231,233],{"class":232},"sxvE3","// ← これが表示されていない！\n",[84,235,237,239,242,244,246,249],{"class":86,"line":236},9,[84,238,111],{"class":90},[84,240,241],{"class":94},"operatingIncome",[84,243,91],{"class":90},[84,245,119],{"class":104},[84,247,248],{"class":122},"2462",[84,250,126],{"class":104},[84,252,254,256,259,261,263,265],{"class":86,"line":253},10,[84,255,111],{"class":90},[84,257,258],{"class":94},"nonOperatingIncome",[84,260,91],{"class":90},[84,262,119],{"class":104},[84,264,209],{"class":122},[84,266,126],{"class":104},[84,268,270,272,275,277,279,282],{"class":86,"line":269},11,[84,271,111],{"class":90},[84,273,274],{"class":94},"nonOperatingExpenses",[84,276,91],{"class":90},[84,278,119],{"class":104},[84,280,281],{"class":122},"259",[84,283,126],{"class":104},[84,285,287,289,292,294,296,299],{"class":86,"line":286},12,[84,288,111],{"class":90},[84,290,291],{"class":94},"preTaxIncome",[84,293,91],{"class":90},[84,295,119],{"class":104},[84,297,298],{"class":122},"2203",[84,300,126],{"class":104},[84,302,304,306,309,311,313,316],{"class":86,"line":303},13,[84,305,111],{"class":90},[84,307,308],{"class":94},"taxes",[84,310,91],{"class":90},[84,312,119],{"class":104},[84,314,315],{"class":122},"656",[84,317,126],{"class":104},[84,319,321,323,326,328,330],{"class":86,"line":320},14,[84,322,111],{"class":90},[84,324,325],{"class":94},"netIncome",[84,327,91],{"class":90},[84,329,119],{"class":104},[84,331,332],{"class":122},"1547\n",[84,334,336],{"class":86,"line":335},15,[84,337,338],{"class":104},"}\n",[17,340,341,344],{},[39,342,343],{},"検証計算","：",[75,346,351],{"className":347,"code":349,"language":350},[348],"language-text","4816 - 1152 - 93 - 0 - 1109 = 2462 ✓\n","text",[20,352,349],{"__ignoreMap":80},[17,354,355],{},"データ自体は完全に整合している。",[25,357,359],{"id":358},"_2-uiコンポーネントのバグ根本原因","2. UIコンポーネントのバグ（根本原因）",[17,361,362,365,366,369],{},[20,363,364],{},"app/components/financial-quiz/PLWaterfallChart.vue"," の ",[20,367,368],{},"calculateWaterfallPositions"," 関数を確認：",[75,371,373],{"className":77,"code":372,"language":79,"meta":80,"style":80},"// 処理されている項目\n// 4. SG&A（販売費及び一般管理費）\nif (d.sgaExpenses > 0) { ... }\n\n// 5. R&D（研究開発費）\nif (d.rdExpenses > 0) { ... }\n\n// 6. D&A（減価償却費）\nif (d.daExpenses > 0) { ... }\n\n// ⚠️ otherOperatingExpenses の処理がない！\n\n// 7. Operating Income (結果表示)\n",[20,374,375,380,385,421,427,432,456,460,465,489,493,498,502],{"__ignoreMap":80},[84,376,377],{"class":86,"line":87},[84,378,379],{"class":232},"// 処理されている項目\n",[84,381,382],{"class":86,"line":108},[84,383,384],{"class":232},"// 4. SG&A（販売費及び一般管理費）\n",[84,386,387,391,394,398,401,403,406,409,412,415,418],{"class":86,"line":129},[84,388,390],{"class":389},"sHkkW","if",[84,392,393],{"class":104}," (",[84,395,397],{"class":396},"s4oTP","d",[84,399,400],{"class":104},".",[84,402,168],{"class":396},[84,404,405],{"class":104}," >",[84,407,408],{"class":122}," 0",[84,410,411],{"class":104},")",[84,413,414],{"class":104}," {",[84,416,417],{"class":104}," ...",[84,419,420],{"class":104}," }\n",[84,422,423],{"class":86,"line":146},[84,424,426],{"emptyLinePlaceholder":425},true,"\n",[84,428,429],{"class":86,"line":163},[84,430,431],{"class":232},"// 5. R&D（研究開発費）\n",[84,433,434,436,438,440,442,444,446,448,450,452,454],{"class":86,"line":180},[84,435,390],{"class":389},[84,437,393],{"class":104},[84,439,397],{"class":396},[84,441,400],{"class":104},[84,443,185],{"class":396},[84,445,405],{"class":104},[84,447,408],{"class":122},[84,449,411],{"class":104},[84,451,414],{"class":104},[84,453,417],{"class":104},[84,455,420],{"class":104},[84,457,458],{"class":86,"line":197},[84,459,426],{"emptyLinePlaceholder":425},[84,461,462],{"class":86,"line":214},[84,463,464],{"class":232},"// 6. D&A（減価償却費）\n",[84,466,467,469,471,473,475,477,479,481,483,485,487],{"class":86,"line":236},[84,468,390],{"class":389},[84,470,393],{"class":104},[84,472,397],{"class":396},[84,474,400],{"class":104},[84,476,202],{"class":396},[84,478,405],{"class":104},[84,480,408],{"class":122},[84,482,411],{"class":104},[84,484,414],{"class":104},[84,486,417],{"class":104},[84,488,420],{"class":104},[84,490,491],{"class":86,"line":253},[84,492,426],{"emptyLinePlaceholder":425},[84,494,495],{"class":86,"line":269},[84,496,497],{"class":232},"// ⚠️ otherOperatingExpenses の処理がない！\n",[84,499,500],{"class":86,"line":286},[84,501,426],{"emptyLinePlaceholder":425},[84,503,504],{"class":86,"line":303},[84,505,506],{"class":232},"// 7. Operating Income (結果表示)\n",[17,508,509,514],{},[39,510,511,513],{},[20,512,219],{}," を処理するコードが存在しない","のが根本原因。",[25,516,518],{"id":517},"_3-テストコードの限界","3. テストコードの限界",[17,520,521,524,525,528,529,532],{},[20,522,523],{},"tests/waterfall-integrity.test.ts"," のテストは ",[39,526,527],{},"データの整合性のみ"," を検証しており、",[39,530,531],{},"UIコンポーネントの表示ロジック"," はテストしていない。",[17,534,535,536,539],{},"さらにテスト内の ",[20,537,538],{},"buildPLDetailedData"," 関数では、以下のようになっている：",[75,541,543],{"className":77,"code":542,"language":79,"meta":80,"style":80},"return {\n  // ...\n  rdExpenses: 0,           // ← 固定値\n  otherOperatingExpenses: 0,  // ← 固定値\n  // ...\n}\n",[20,544,545,552,557,573,586,590],{"__ignoreMap":80},[84,546,547,550],{"class":86,"line":87},[84,548,549],{"class":389},"return",[84,551,105],{"class":104},[84,553,554],{"class":86,"line":108},[84,555,556],{"class":232},"  // ...\n",[84,558,559,563,565,567,570],{"class":86,"line":129},[84,560,562],{"class":561},"sz8Xr","  rdExpenses",[84,564,119],{"class":104},[84,566,209],{"class":122},[84,568,569],{"class":104},",           ",[84,571,572],{"class":232},"// ← 固定値\n",[84,574,575,578,580,582,584],{"class":86,"line":146},[84,576,577],{"class":561},"  otherOperatingExpenses",[84,579,119],{"class":104},[84,581,209],{"class":122},[84,583,229],{"class":104},[84,585,572],{"class":232},[84,587,588],{"class":86,"line":163},[84,589,556],{"class":232},[84,591,592],{"class":86,"line":180},[84,593,338],{"class":104},[17,595,596,597,599,600,602],{},"実際のデータでは ",[20,598,185],{}," や ",[20,601,219],{}," が 0 以外の値を持つケースがありますが、テストではこれらを考慮していません。",[13,604,605],{"id":605},"問題の分類",[607,608,609,625],"table",{},[610,611,612],"thead",{},[613,614,615,619,622],"tr",{},[616,617,618],"th",{},"項目",[616,620,621],{},"状態",[616,623,624],{},"説明",[626,627,628,640,651],"tbody",{},[613,629,630,634,637],{},[631,632,633],"td",{},"データ整合性",[631,635,636],{},"✅ 正常",[631,638,639],{},"SQLite → TypeScript の変換は正しい",[613,641,642,645,648],{},[631,643,644],{},"テストコード",[631,646,647],{},"⚠️ 不十分",[631,649,650],{},"データの整合性のみ検証、UIロジックは対象外",[613,652,653,656,659],{},[631,654,655],{},"UIコンポーネント",[631,657,658],{},"❌ バグ",[631,660,661,663],{},[20,662,219],{}," の表示処理が欠落",[13,665,666],{"id":666},"修正方針",[25,668,670],{"id":669},"_1-plwaterfallchartvue-の修正","1. PLWaterfallChart.vue の修正",[17,672,673,674,676],{},"D&A の後に ",[20,675,219],{}," を追加：",[75,678,680],{"className":77,"code":679,"language":79,"meta":80,"style":80},"// 6. D&A（減価償却費）\nif (d.daExpenses > 0) {\n  // ... 既存コード\n}\n\n// 7. Other Operating Expenses（その他営業費用）← 追加\nif (d.otherOperatingExpenses > 0) {\n  positions.push({\n    id: 'other',\n    label: 'Other',\n    value: d.otherOperatingExpenses,\n    startValue: currentLevel,\n    endValue: currentLevel - d.otherOperatingExpenses,\n    type: 'expense',\n    isLoss: false\n  })\n  currentLevel = currentLevel - d.otherOperatingExpenses\n}\n\n// 8. Operating Income (結果表示 - DB確定値)\n",[20,681,682,686,706,711,715,719,724,744,758,775,791,806,818,840,856,866,872,893,898,903],{"__ignoreMap":80},[84,683,684],{"class":86,"line":87},[84,685,464],{"class":232},[84,687,688,690,692,694,696,698,700,702,704],{"class":86,"line":108},[84,689,390],{"class":389},[84,691,393],{"class":104},[84,693,397],{"class":396},[84,695,400],{"class":104},[84,697,202],{"class":396},[84,699,405],{"class":104},[84,701,408],{"class":122},[84,703,411],{"class":104},[84,705,105],{"class":104},[84,707,708],{"class":86,"line":129},[84,709,710],{"class":232},"  // ... 既存コード\n",[84,712,713],{"class":86,"line":146},[84,714,338],{"class":104},[84,716,717],{"class":86,"line":163},[84,718,426],{"emptyLinePlaceholder":425},[84,720,721],{"class":86,"line":180},[84,722,723],{"class":232},"// 7. Other Operating Expenses（その他営業費用）← 追加\n",[84,725,726,728,730,732,734,736,738,740,742],{"class":86,"line":197},[84,727,390],{"class":389},[84,729,393],{"class":104},[84,731,397],{"class":396},[84,733,400],{"class":104},[84,735,219],{"class":396},[84,737,405],{"class":104},[84,739,408],{"class":122},[84,741,411],{"class":104},[84,743,105],{"class":104},[84,745,746,749,751,755],{"class":86,"line":214},[84,747,748],{"class":396},"  positions",[84,750,400],{"class":104},[84,752,754],{"class":753},"senZ8","push",[84,756,757],{"class":104},"({\n",[84,759,760,763,765,768,771,773],{"class":86,"line":236},[84,761,762],{"class":561},"    id",[84,764,119],{"class":104},[84,766,767],{"class":90},"'",[84,769,770],{"class":94},"other",[84,772,767],{"class":90},[84,774,126],{"class":104},[84,776,777,780,782,784,787,789],{"class":86,"line":253},[84,778,779],{"class":561},"    label",[84,781,119],{"class":104},[84,783,767],{"class":90},[84,785,786],{"class":94},"Other",[84,788,767],{"class":90},[84,790,126],{"class":104},[84,792,793,796,798,800,802,804],{"class":86,"line":269},[84,794,795],{"class":561},"    value",[84,797,119],{"class":104},[84,799,397],{"class":396},[84,801,400],{"class":104},[84,803,219],{"class":396},[84,805,126],{"class":104},[84,807,808,811,813,816],{"class":86,"line":286},[84,809,810],{"class":561},"    startValue",[84,812,119],{"class":104},[84,814,815],{"class":396},"currentLevel",[84,817,126],{"class":104},[84,819,820,823,825,827,831,834,836,838],{"class":86,"line":303},[84,821,822],{"class":561},"    endValue",[84,824,119],{"class":104},[84,826,815],{"class":396},[84,828,830],{"class":829},"stQ0i"," -",[84,832,833],{"class":396}," d",[84,835,400],{"class":104},[84,837,219],{"class":396},[84,839,126],{"class":104},[84,841,842,845,847,849,852,854],{"class":86,"line":320},[84,843,844],{"class":561},"    type",[84,846,119],{"class":104},[84,848,767],{"class":90},[84,850,851],{"class":94},"expense",[84,853,767],{"class":90},[84,855,126],{"class":104},[84,857,858,861,863],{"class":86,"line":335},[84,859,860],{"class":561},"    isLoss",[84,862,119],{"class":104},[84,864,865],{"class":389},"false\n",[84,867,869],{"class":86,"line":868},16,[84,870,871],{"class":104},"  })\n",[84,873,875,878,881,884,886,888,890],{"class":86,"line":874},17,[84,876,877],{"class":396},"  currentLevel",[84,879,880],{"class":104}," =",[84,882,883],{"class":396}," currentLevel",[84,885,830],{"class":829},[84,887,833],{"class":396},[84,889,400],{"class":104},[84,891,892],{"class":396},"otherOperatingExpenses\n",[84,894,896],{"class":86,"line":895},18,[84,897,338],{"class":104},[84,899,901],{"class":86,"line":900},19,[84,902,426],{"emptyLinePlaceholder":425},[84,904,906],{"class":86,"line":905},20,[84,907,908],{"class":232},"// 8. Operating Income (結果表示 - DB確定値)\n",[17,910,911,912,676],{},"また、色定義に ",[20,913,770],{},[75,915,917],{"className":77,"code":916,"language":79,"meta":80,"style":80},"const COLORS: Record\u003Cstring, string> = {\n  // ... 既存\n  other: '#42A5F5',  // Other Operating Expenses（青系）\n}\n",[20,918,919,949,954,973],{"__ignoreMap":80},[84,920,921,924,927,929,933,936,939,942,944,947],{"class":86,"line":87},[84,922,923],{"class":829},"const ",[84,925,926],{"class":396},"COLORS",[84,928,119],{"class":104},[84,930,932],{"class":931},"sSkh3","Record",[84,934,935],{"class":104},"\u003C",[84,937,938],{"class":931},"string",[84,940,941],{"class":104},", ",[84,943,938],{"class":931},[84,945,946],{"class":104},"> =",[84,948,105],{"class":104},[84,950,951],{"class":86,"line":108},[84,952,953],{"class":232},"  // ... 既存\n",[84,955,956,959,961,963,966,968,970],{"class":86,"line":129},[84,957,958],{"class":561},"  other",[84,960,119],{"class":104},[84,962,767],{"class":90},[84,964,965],{"class":94},"#42A5F5",[84,967,767],{"class":90},[84,969,229],{"class":104},[84,971,972],{"class":232},"// Other Operating Expenses（青系）\n",[84,974,975],{"class":86,"line":146},[84,976,338],{"class":104},[25,978,980],{"id":979},"_2-テストコードの拡張オプション","2. テストコードの拡張（オプション）",[17,982,983],{},"UIコンポーネントのテストを追加し、すべての費用項目が表示されることを検証：",[32,985,986,992],{},[35,987,988,991],{},[20,989,990],{},"otherOperatingExpenses > 0"," の場合に \"Other\" バーが存在すること",[35,993,994,995,997],{},"各バーの ",[20,996,815],{}," が正しく遷移すること",[13,999,1000],{"id":1000},"修正完了",[25,1002,1003],{"id":1003},"実施した修正",[1005,1006,1008,1009,411],"h4",{"id":1007},"_1-uiコンポーネントの修正-plwaterfallchartvue","1. UIコンポーネントの修正 (",[20,1010,1011],{},"PLWaterfallChart.vue",[32,1013,1014,1019,1026],{},[35,1015,1016,1018],{},[20,1017,219],{}," の処理を追加（正の値は費用、負の値は収益として表示）",[35,1020,1021,1022,1025],{},"色定義に ",[20,1023,1024],{},"other: '#42A5F5'"," を追加",[35,1027,1028,1029,1032],{},"収益の場合は赤系の色 ",[20,1030,1031],{},"#EF5350"," を使用",[1005,1034,1036,1037,411],{"id":1035},"_2-テストコードの拡張-waterfall-integritytestts","2. テストコードの拡張 (",[20,1038,1039],{},"waterfall-integrity.test.ts",[17,1041,1042],{},"新しいテストセクション「UIコンポーネント表示ロジック検証」を追加：",[32,1044,1045,1051,1054],{},[35,1046,1047,1050],{},[20,1048,1049],{},"simulateUICurrentLevel()"," 関数でUIのcurrentLevel遷移をシミュレート",[35,1052,1053],{},"各中間ポイント（Gross Profit, Operating Income, Pre-Tax Income, Net Income）でDB値と比較",[35,1055,1056],{},"1622期間すべてで整合性を検証",[25,1058,1059],{"id":1059},"修正後の検証結果",[17,1061,1062,101],{},[39,1063,1064],{},"テスト結果",[75,1066,1069],{"className":1067,"code":1068,"language":350},[348],"=== UI表示整合性サマリー ===\n合計: 1622期間\n成功: 1622期間\n失敗: 0期間\n",[20,1070,1068],{"__ignoreMap":80},[17,1072,1073,1076],{},[39,1074,1075],{},"ブラウザ表示確認"," (LIN 2015年):",[75,1078,1081],{"className":1079,"code":1080,"language":350},[348],"Gross Profit (4,816) - SG&A (1,152) - R&D (93) - Other (1,109) = 2,462 ✓\n",[20,1082,1080],{"__ignoreMap":80},[17,1084,1085],{},"\"Other: 1,109\" が正しく表示されるようになった。",[13,1087,1088],{"id":1088},"結論",[17,1090,1091,344],{},[39,1092,1093],{},"テストが通ったのにUIで計算が合わなかった理由",[1095,1096,1097,1104,1110],"ol",{},[35,1098,1099,1100,1103],{},"テストは ",[39,1101,1102],{},"データの数学的整合性"," を検証（これは正常）",[35,1105,1106,1107,1109],{},"しかし ",[39,1108,531],{}," はテスト対象外だった",[35,1111,1112,1113,1115],{},"UIコンポーネントに ",[20,1114,219],{}," の処理が欠落していた",[17,1117,1118],{},"テストとUIは別のレイヤーであり、今回のバグはUIレイヤーにのみ存在していた。",[17,1120,1121,1124],{},[39,1122,1123],{},"今後の対策",": UIコンポーネントの表示ロジックもテストに含めることで、同様のバグを早期に検出できるようにした。",[1126,1127,1128],"style",{},"html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sM54T, html code.shiki .sM54T{--shiki-default:#2F798A;--shiki-dark:#2F798A}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);}html pre.shiki code .sHkkW, html code.shiki .sHkkW{--shiki-default:#1E754F;--shiki-dark:#1E754F}html pre.shiki code .s4oTP, html code.shiki .s4oTP{--shiki-default:#B07D48;--shiki-dark:#B07D48}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .senZ8, html code.shiki .senZ8{--shiki-default:#59873A;--shiki-dark:#59873A}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}",{"title":80,"searchDepth":108,"depth":108,"links":1130},[1131,1134,1139,1140,1144,1148],{"id":15,"depth":108,"text":15,"children":1132},[1133],{"id":27,"depth":129,"text":27},{"id":63,"depth":108,"text":63,"children":1135},[1136,1137,1138],{"id":66,"depth":129,"text":67},{"id":358,"depth":129,"text":359},{"id":517,"depth":129,"text":518},{"id":605,"depth":108,"text":605},{"id":666,"depth":108,"text":666,"children":1141},[1142,1143],{"id":669,"depth":129,"text":670},{"id":979,"depth":129,"text":980},{"id":1000,"depth":108,"text":1000,"children":1145},[1146,1147],{"id":1003,"depth":129,"text":1003},{"id":1059,"depth":129,"text":1059},{"id":1088,"depth":108,"text":1088},null,"PLWaterfallChart.vueでotherOperatingExpensesが表示されない問題の調査結果","md",{},"/waterfall-chart-bug-investigation",false,"2025-12-20T00:00:00.000Z",{"title":5,"description":1150},"2025-12/2025-12-20/waterfall-chart-bug-investigation",[1159,1160,1161,1162],"バグ調査","Vue","ウォーターフォールチャート","financial-quiz","iqk-At435cNVrddFpWTgBsl4PFwFfJgySnLs76uoqZA",[],[1166,1170,1174,1178,1181],{"title":1167,"path":1168,"publishedAt":1169},"Nuxt 4で人生計画シミュレーターのUIを実装する","/life-plan-simulator-ui","2026-01-17T00:00:00.000Z",{"title":1171,"path":1172,"publishedAt":1173},"貸借対照表の幅拡張実装計画","/bs-width-expansion-plan","2025-12-19T00:00:00.000Z",{"title":1175,"path":1176,"publishedAt":1177},"NVIDIA EPS予測 Phase 8: 計算詳細テーブル追加","/nvidia-eps-forecast-phase8-calculation-table","2025-12-18T00:00:00.000Z",{"title":1179,"path":1180,"publishedAt":1177},"NVIDIA EPS予測 Phase 9: チャート・タブ連動機能","/nvidia-eps-forecast-phase9-chart-tab-sync",{"title":1182,"path":1183,"publishedAt":1177},"NVIDIA EPS予測ページ リファクタリング計画","/nvidia-eps-forecast-refactoring-plan","https://log.eurekapu.com/og/blog/waterfall-chart-bug-investigation.png?v=2025-12-20T00%3A00%3A00.000Z&title=%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%88%E8%A1%A8%E7%A4%BA%E3%83%90%E3%82%B0%E8%AA%BF%E6%9F%BB%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88&author=Kei%20Komatsu&sig=e18459c7e1d8a807",1785654980611]