{"note":"scheduled","recent_runs":[{"id":120,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260428_090002.json","run_time":"2026-04-28T09:00:02.048108+00:00","status":"completed"},{"id":119,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260427_210016.json","run_time":"2026-04-27T21:00:16.089277+00:00","status":"completed"},{"id":118,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260427_090017.json","run_time":"2026-04-27T09:00:17.597220+00:00","status":"completed"},{"id":117,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260426_210010.json","run_time":"2026-04-26T21:00:10.781955+00:00","status":"completed"},{"id":116,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260426_090016.json","run_time":"2026-04-26T09:00:16.191358+00:00","status":"completed"},{"id":115,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260425_210000.json","run_time":"2026-04-25T21:00:00.963660+00:00","status":"completed"},{"id":114,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260425_090010.json","run_time":"2026-04-25T09:00:10.193796+00:00","status":"completed"},{"id":113,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260424_210016.json","run_time":"2026-04-24T21:00:16.053509+00:00","status":"completed"},{"id":112,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260424_090036.json","run_time":"2026-04-24T09:00:36.936091+00:00","status":"completed"},{"id":111,"note":"scheduled","report_path":"/root/projects/stock-insight-automation/data/reports/2026/04/stock_insights_20260423_210030.json","run_time":"2026-04-23T21:00:30.481997+00:00","status":"completed"}],"recommendations":[{"rationale":"Price above 20-day average; Short-term trend stronger than long-term; 20-day momentum is positive; Latest daily change is positive","score":3.5,"ticker":"NVDA"},{"rationale":"Price above 20-day average; Short-term trend stronger than long-term; 20-day momentum is positive; Latest daily change is positive","score":3.5,"ticker":"GOOGL"},{"rationale":"Price above 20-day average; Short-term trend stronger than long-term; 20-day momentum is positive; Latest daily change is positive","score":3.5,"ticker":"META"},{"rationale":"Price above 20-day average; Short-term trend stronger than long-term; 20-day momentum is positive; Latest daily change is positive","score":3.5,"ticker":"QQQ"},{"rationale":"Price above 20-day average; Short-term trend stronger than long-term; 20-day momentum is positive; Latest daily change is positive","score":3.5,"ticker":"MSFT"}],"run_id":120,"run_time_utc":"2026-04-28T09:00:02.048108+00:00","snapshot":[{"change_pct":-1.2727854490168646,"close":267.6099853515625,"high":268.3599853515625,"low":265.07000732421875,"momentum20":8.506661822724592,"momentum50":4.6250631905246475,"open":266.0899963378906,"previous_close":271.05999755859375,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive"],"score":3.0,"sma20":262.33899841308596,"sma50":260.26299926757815,"ticker":"AAPL","volume":41407600.0},{"change_pct":-1.0871605831113018,"close":261.1199951171875,"high":264.1499938964844,"low":260.3399963378906,"momentum20":29.94277137732082,"momentum50":31.35469789032017,"open":263.4599914550781,"previous_close":263.989990234375,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive"],"score":3.0,"sma20":236.04049987792968,"sma50":219.8713995361328,"ticker":"AMZN","volume":44844200.0},{"change_pct":1.7247394154111468,"close":350.3399963378906,"high":353.17999267578125,"low":342.7300109863281,"momentum20":28.09506264639512,"momentum50":14.59505264262242,"open":345.9800109863281,"previous_close":344.3999938964844,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":321.2209991455078,"sma50":310.3859991455078,"ticker":"GOOGL","volume":28530600.0},{"change_pct":0.5318231285283532,"close":678.6199951171875,"high":682.5,"low":670.8400268554688,"momentum20":26.518510932459428,"momentum50":6.072490801366759,"open":671.0,"previous_close":675.030029296875,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":632.1115020751953,"sma50":630.4333984375,"ticker":"META","volume":12784300.0},{"change_pct":0.04710381266337922,"close":424.82000732421875,"high":427.1099853515625,"low":417.07000732421875,"momentum20":18.347453041262575,"momentum50":5.855676161446599,"open":422.3800048828125,"previous_close":424.6199951171875,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":395.37450103759767,"sma50":394.5165997314453,"ticker":"MSFT","volume":30817600.0},{"change_pct":4.0044155023784205,"close":216.61000061035156,"high":216.8300018310547,"low":207.3800048828125,"momentum20":31.14367198139125,"momentum50":18.489143648133542,"open":209.64999389648438,"previous_close":208.27000427246094,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":190.8375,"sma50":185.61859954833983,"ticker":"NVDA","volume":185608200.0},{"change_pct":0.052716693282437,"close":664.22998046875,"high":664.4299926757812,"low":660.6900024414062,"momentum20":18.97792247831496,"momentum50":10.351873891499341,"open":663.4000244140625,"previous_close":663.8800048828125,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":620.3829986572266,"sma50":607.6911975097656,"ticker":"QQQ","volume":32598400.0},{"change_pct":0.1722806488702033,"close":715.1699829101562,"high":715.6300048828125,"low":712.2999877929688,"momentum20":13.16518443344128,"momentum50":4.902087702259816,"open":713.1699829101562,"previous_close":713.9400024414062,"rationale":["Price above 20-day average","Short-term trend stronger than long-term","20-day momentum is positive","Latest daily change is positive"],"score":3.5,"sma20":685.0389984130859,"sma50":677.6719995117187,"ticker":"SPY","volume":33060400.0},{"change_pct":0.6298234684157249,"close":378.6700134277344,"high":380.7799987792969,"low":364.0199890136719,"momentum20":6.583543888989829,"momentum50":-9.287559598247608,"open":372.0899963378906,"previous_close":376.29998779296875,"rationale":["Price above 20-day average","20-day momentum is positive","Latest daily change is positive"],"score":2.5,"sma20":369.96900329589846,"sma50":386.31120056152344,"ticker":"TSLA","volume":66583400.0}],"summary":{"advancing_tickers":7,"average_daily_change_pct":0.534,"declining_tickers":2,"tracked_tickers":9},"tickers":["AAPL","AMZN","GOOGL","META","MSFT","NVDA","QQQ","SPY","TSLA"]}
