{
  "page_id": "portfolio_index",
  "path": "portfolio/index.html",
  "title": "Portfolio",
  "page_type": "portfolio_operating_surface",
  "status": "active",
  "as_of": "2026-07-07",
  "generated_at": "2026-07-07T16:10:53-07:00",
  "last_plan_update": "2026-07-07",
  "description": "Open-book monitor, individual-position rule board, and entry-plan review for the reports portfolio section.",
  "boundaries": {
    "daily_account_statement_required": false,
    "uses_daily_account_pnl": false,
    "market_data_source": "local read-only report API chart routes and latest-price-date endpoint",
    "research_source": "linked knowledge pages",
    "private_values_in_public_files": false
  },
  "schwab_snapshot": {
    "status": "published_static_portfolio_snapshot_from_private_export",
    "as_of": "2026-07-08",
    "export_generated_at": "2026-07-08T16:10:57-07:00",
    "open_position_symbols": [
      "AEP",
      "AMKR",
      "AMZN",
      "BE",
      "ESE",
      "ETR",
      "FCEL",
      "GEV",
      "GOOGL",
      "ILMN",
      "MRVL",
      "OUST",
      "PWR",
      "ROK",
      "TER",
      "TLN",
      "TXN"
    ],
    "full_run_available": false,
    "run_note": "The public static copy includes account-card totals and heatmap inputs derived from the July 8 ignored Schwab export. It publishes account value, cash, cash percentage, invested value, market day P/L, market day return, 5-session P/L, 5-session return, 22-session P/L, 22-session return, ticker, weight_pct, day_return_pct, day_pnl, and day_pnl_contribution_pct. It omits account identifiers, quantities, market values, average prices, raw Schwab records, transactions, orders, and tokens.",
    "token_status": "auth_valid_smoke_capture_succeeded",
    "quality_flags": [
      "insufficient_risk_history"
    ],
    "risk_history": "insufficient_risk_history"
  },
  "open_book": [
    "AEP",
    "AMKR",
    "AMZN",
    "BE",
    "ESE",
    "ETR",
    "FCEL",
    "GEV",
    "GOOGL",
    "ILMN",
    "MRVL",
    "OUST",
    "PWR",
    "ROK",
    "TER",
    "TLN",
    "TXN"
  ],
  "allocation_heatmap": {
    "default_metric": "allocation",
    "metric_modes": [
      "allocation",
      "pnl"
    ],
    "default_mode": "individual",
    "toggle_modes": [
      "theme",
      "node",
      "individual"
    ],
    "drilldown": [
      "theme",
      "node",
      "security"
    ],
    "tile_size": "published static snapshot uses copied positions[].weight_pct for allocation and copied positions[].day_pnl for P/L tile area across theme, node, and individual views",
    "tile_color": "allocation mode uses copied same-day return; P/L mode uses copied day_pnl_contribution_pct",
    "public_fallback": "only used if portfolio/private/schwab_account_snapshot.js and portfolio/portfolio-heatmap-snapshot.js are both absent",
    "private_values_in_public_files": "account_cards_and_heatmap_fields_published",
    "public_snapshot": "portfolio/portfolio-heatmap-snapshot.js publishes account-card totals plus ticker, weight_pct, day_return_pct, day_pnl, and day_pnl_contribution_pct from the July 8 portfolio snapshot",
    "omitted_from_public_snapshot": [
      "account identifiers",
      "position quantities",
      "market values",
      "average prices",
      "raw Schwab accounts",
      "transactions",
      "orders",
      "tokens"
    ],
    "included_in_public_snapshot": [
      "account value",
      "cash",
      "cash percentage",
      "invested value",
      "market day P/L",
      "market day return",
      "5-session P/L",
      "5-session return",
      "22-session P/L",
      "22-session return",
      "ticker",
      "position weight percentage",
      "same-day return percentage",
      "daily P/L dollars",
      "daily P/L account-impact percentage"
    ]
  },
  "portfolio_node_map": [
    {
      "ticker": "AEP",
      "node": "Utilities And Grid Recovery",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/utilities-and-grid-recovery/index.html"
    },
    {
      "ticker": "AMKR",
      "node": "Semicap Packaging And Power Semis",
      "theme": "AI Capex Cycle",
      "route": "../themes/ai-capex-cycle/nodes/semicap-packaging-power-semis/index.html"
    },
    {
      "ticker": "AMZN",
      "node": "Hyperscaler And Cloud Capex Budgets",
      "theme": "AI Capex Cycle",
      "route": "../themes/ai-capex-cycle/nodes/hyperscaler-cloud-capex-budgets/index.html"
    },
    {
      "ticker": "BE",
      "node": "Cooling, Backup, And Power Quality",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/cooling-backup-and-power-quality/index.html"
    },
    {
      "ticker": "ESE",
      "node": "Electrical Equipment Bottlenecks",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html"
    },
    {
      "ticker": "ETR",
      "node": "Utilities And Grid Recovery",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/utilities-and-grid-recovery/index.html"
    },
    {
      "ticker": "FCEL",
      "node": "Cooling, Backup, And Power Quality",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/cooling-backup-and-power-quality/index.html"
    },
    {
      "ticker": "GEV",
      "node": "Electrical Equipment Bottlenecks",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html"
    },
    {
      "ticker": "GOOGL",
      "node": "Hyperscaler And Cloud Capex Budgets",
      "theme": "AI Capex Cycle",
      "route": "../themes/ai-capex-cycle/nodes/hyperscaler-cloud-capex-budgets/index.html"
    },
    {
      "ticker": "ILMN",
      "node": "AI-Ready Biology Data And Omics",
      "theme": "AI-Enabled Biology And Scientific Discovery",
      "route": "../themes/ai-enabled-biology-and-scientific-discovery/nodes/ai-ready-biology-data-and-omics/index.html"
    },
    {
      "ticker": "MRVL",
      "node": "Accelerators And Custom Silicon",
      "theme": "AI Capex Cycle",
      "route": "../themes/ai-capex-cycle/nodes/accelerators-and-custom-silicon/index.html"
    },
    {
      "ticker": "OUST",
      "node": "Sensing And Perception Stack",
      "theme": "Physical AI Defense Autonomy",
      "route": "../themes/physical-ai-defense-autonomy/nodes/sensing-and-perception-stack/index.html"
    },
    {
      "ticker": "PWR",
      "node": "Grid Delivery Services",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/grid-delivery-services/index.html"
    },
    {
      "ticker": "ROK",
      "node": "Factory Automation And Robot OEM Proxies",
      "theme": "Robotics",
      "route": "../themes/robotics/nodes/factory-automation-and-robot-oem-proxies/index.html"
    },
    {
      "ticker": "TER",
      "node": "Factory Automation And Robot OEM Proxies",
      "theme": "Robotics",
      "route": "../themes/robotics/nodes/factory-automation-and-robot-oem-proxies/index.html"
    },
    {
      "ticker": "TLN",
      "node": "Merchant Power And Capacity Markets",
      "theme": "Power Scarcity And Grid Load",
      "route": "../themes/power-scarcity-and-grid-load/nodes/merchant-power-capacity-markets/index.html"
    },
    {
      "ticker": "TXN",
      "node": "Edge Compute And Robot Semiconductors",
      "theme": "Robotics",
      "route": "../themes/robotics/nodes/edge-compute-and-robot-semiconductors/index.html"
    }
  ],
  "individual_positions": [
    {
      "ticker": "ILMN",
      "theme": "AI-Enabled Biology And Scientific Discovery",
      "node": "AI-Ready Biology Data And Omics",
      "status": "Clear",
      "setup": "Open position: ILMN sequencing recovery starter",
      "add": "$189.46 reclaimed continuation; $196.66 high continuation",
      "trigger": "$171.56 20D review",
      "invalidation": "$150.29 terminal reset; Operating evidence fails",
      "evidence": "July 7 close was $191.76, -1.32%, still above the $189.46 reclaimed continuation line after an intraday high at $196.66."
    },
    {
      "ticker": "ROK",
      "theme": "Robotics",
      "node": "Factory Automation And Robot OEM Proxies",
      "status": "Review",
      "setup": "Open position: ROK factory automation reclaim",
      "add": "$468.31 20D hold; $486.47 reclaim; $497.36 confirmation",
      "trigger": "$439.70 review line",
      "invalidation": "$439.70 drop line; Operating evidence fails",
      "evidence": "July 7 close was $468.90, -2.89%, barely above the 20-day average near $468.31 and still below the $486.47 reclaim and $497.36 confirmation lines."
    },
    {
      "ticker": "TER",
      "theme": "Robotics",
      "node": "Factory Automation And Robot OEM Proxies",
      "status": "Review",
      "setup": "Open position: TER AI-test and robotics exposure",
      "add": "$412.18 20D reclaim; $472.37 add line; $487.91 stronger line",
      "trigger": "$349.76 100D review; $412.18 20D review",
      "invalidation": "$340.34 drop line; Operating evidence fails",
      "evidence": "July 7 close was $343.11, -9.59%, below the 20-day average near $412.18 and below the 100-day guide near $349.76; the intraday low undercut the old $340.34 drop line but the close finished above it."
    },
    {
      "ticker": "TXN",
      "theme": "Robotics",
      "node": "Edge Compute And Robot Semiconductors",
      "status": "Reduce validated",
      "setup": "Open trade: TXN common",
      "add": "$334.03 continuation",
      "trigger": "$298.52 reduce review; $300.62 20D review",
      "invalidation": "Reduce below $298.52; Operating evidence fails",
      "evidence": "July 7 close was $293.30, -3.36%, back below the old $298.52 reduce-review line and below the 20-day average near $300.62."
    },
    {
      "ticker": "AMZN",
      "theme": "AI Capex Cycle",
      "node": "Hyperscaler And Cloud Capex Budgets",
      "status": "Clear",
      "setup": "Open position: AMZN weekly 100 EMA hold rule",
      "add": "$252.53 daily high; $256.38 continuation close",
      "trigger": "$239.76 20D hold; $241.65 100D hold",
      "invalidation": "$216.89 weekly exit; Operating evidence fails",
      "evidence": "July 7 close was $245.98, +0.75%, above the daily 20-day average near $239.76, the daily 100-day guide near $241.65, and the weekly 100-week EMA near $216.89."
    },
    {
      "ticker": "GOOGL",
      "theme": "AI Capex Cycle",
      "node": "Hyperscaler And Cloud Capex Budgets",
      "status": "Clear",
      "setup": "Open position: GOOGL long-hold pullback plan",
      "add": "$358.18 20D hold; $376.00 continuation",
      "trigger": "$358.18 20D review; $345.63 100D review",
      "invalidation": "Operating evidence fails",
      "evidence": "July 7 close was $367.03, +0.16%, above the 20-day average near $358.18 and the 100-day guide near $345.63, and below the $376.00 high."
    },
    {
      "ticker": "AMKR",
      "theme": "AI Capex Cycle",
      "node": "Semicap Packaging And Power Semis",
      "status": "Review",
      "setup": "Open position: AMKR breakout repair",
      "add": "$79.87 20D reclaim; $83.30 reclaim; $96.68 stronger line",
      "trigger": "$65.58 100D review",
      "invalidation": "$64.32 terminal fail; Operating evidence fails",
      "evidence": "July 7 close was $65.33, -6.51%, below the 20-day average near $79.87 and just below the 100-day guide near $65.58; the intraday low made a new 20-day low at $61.90."
    },
    {
      "ticker": "MRVL",
      "theme": "AI Capex Cycle",
      "node": "Accelerators And Custom Silicon",
      "status": "Review",
      "setup": "Open position: MRVL long-hold pullback plan",
      "add": "$277.05 20D reclaim; $329.88 fresh add",
      "trigger": "$277.05 20D review; $187.29 100D review",
      "invalidation": "Operating evidence fails",
      "evidence": "July 7 close was $230.70, -7.45%, still below the 20-day average near $277.05 but above the 100-day guide near $187.29."
    },
    {
      "ticker": "OUST",
      "theme": "Physical AI Defense Autonomy",
      "node": "Sensing And Perception Stack",
      "status": "Review",
      "setup": "Open position: OUST LiDAR and perception repair",
      "add": "$45.51 20D reclaim; $51.50 reclaim; $63.79 follow-through",
      "trigger": "$45.51 20D review",
      "invalidation": "$35.30 drop line; Operating evidence fails",
      "evidence": "July 7 close was $44.06, -11.58%, below the 20-day average near $45.51 and below the $51.50 reclaim line."
    },
    {
      "ticker": "PWR",
      "theme": "Power Scarcity And Grid Load",
      "node": "Grid Delivery Services",
      "status": "Review",
      "setup": "Open trade: PWR common",
      "add": "$698.21 20D reclaim; $742.73 confirmation",
      "trigger": "$698.21 20D review; $641.43 100D review",
      "invalidation": "Exit/reduce below $641.43; Operating evidence fails",
      "evidence": "July 7 close was $656.79, -2.56%, still below the 20-day average near $698.21 and only above the 100-day EMA near $641.43 by $15.36."
    },
    {
      "ticker": "GEV",
      "theme": "Power Scarcity And Grid Load",
      "node": "Electrical Equipment Bottlenecks",
      "status": "Clear",
      "setup": "Open position: GEV equipment bottleneck continuation",
      "add": "$1,039.67 hold line; $1,195.94 20D high",
      "trigger": "$1,039.67 20D review; $956.70 100D review",
      "invalidation": "$856.01 drop line; $741.38 stop-limit exit; Operating evidence fails",
      "evidence": "July 7 close was $1,077.08, -6.51%, above the 20-day average near $1,039.67 and 100-day guide near $956.70, but below the current 20-day high near $1,195.94."
    },
    {
      "ticker": "ESE",
      "theme": "Power Scarcity And Grid Load",
      "node": "Electrical Equipment Bottlenecks",
      "status": "Clear",
      "setup": "Open position: ESE utility testing and monitoring",
      "add": "$362.15 1.1x-volume add",
      "trigger": "$332.53 20D review; $298.03 100D review",
      "invalidation": "$291.81 terminal reset; Operating evidence fails",
      "evidence": "July 7 close was $333.29, -2.70%, just above the 20-day average near $332.53 and above the 100-day guide near $298.03, but still below the $362.15 high."
    },
    {
      "ticker": "TLN",
      "theme": "Power Scarcity And Grid Load",
      "node": "Merchant Power And Capacity Markets",
      "status": "Review",
      "setup": "Open position: TLN merchant-power continuation",
      "add": "$386.73 20D reclaim; $449.84 no-chase high",
      "trigger": "$367.76 100D review; $386.73 20D review",
      "invalidation": "$329.13 terminal fail; Operating evidence fails",
      "evidence": "July 7 close was $366.66, -2.95%, below the 20-day average near $386.73 and slightly below the 100-day guide near $367.76."
    },
    {
      "ticker": "BE",
      "theme": "Power Scarcity And Grid Load",
      "node": "Cooling, Backup, And Power Quality",
      "status": "Review",
      "setup": "Open position: BE onsite AI power continuation",
      "add": "$284.19 20D reclaim; $351.28 breakout clear",
      "trigger": "$284.19 20D review",
      "invalidation": "$230.60 drop line; Operating evidence fails",
      "evidence": "July 7 close was $269.57, -8.64%, back below the 20-day average near $284.19 but still above the 100-day guide near $232.64 and the $230.60 drop line."
    },
    {
      "ticker": "FCEL",
      "theme": "Power Scarcity And Grid Load",
      "node": "Cooling, Backup, And Power Quality",
      "status": "Clear",
      "setup": "Open position: FCEL behind-the-meter power optionality",
      "add": "$22.90 reset hold; $37.88 no-chase spike high",
      "trigger": "$22.90 20D review",
      "invalidation": "$15.06 terminal reset; Operating evidence fails",
      "evidence": "July 7 close was $25.96, -12.68%, above the 20-day average near $22.90 and below the $37.88 spike high."
    },
    {
      "ticker": "ETR",
      "theme": "Power Scarcity And Grid Load",
      "node": "Utilities And Grid Recovery",
      "status": "Clear",
      "setup": "Open position: ETR utilities-and-grid-recovery pullback",
      "add": "$116.39-$116.93 confirmation",
      "trigger": "$112.74 20D review; $109.04 100D review",
      "invalidation": "$104.93 invalidation; Operating evidence fails",
      "evidence": "July 7 close was $115.19, +1.19%, above the 20-day area near $112.74 and 100-day guide near $109.04. The intraday high cleared $116.39, but the close did not clear the $116.39-$116.93 confirmation band."
    },
    {
      "ticker": "AEP",
      "theme": "Power Scarcity And Grid Load",
      "node": "Utilities And Grid Recovery",
      "status": "Clear",
      "setup": "Open position: AEP load-led regulated utility",
      "add": "$135.50-$136.91 band hold; $140.58 close trigger",
      "trigger": "$132.62 20D review",
      "invalidation": "$123.74 terminal reset; Operating evidence fails",
      "evidence": "July 7 close was $137.53, +1.14%, above the old $135.50-$136.91 add band, above the 20-day average near $132.62, and below the new $140.58 high."
    }
  ],
  "trade_plan_candidates": [],
  "trade_plan_candidates_note": "Near-term daily handoff candidates remain in daily and weekly candidate-review sections, not the portfolio operating surface.",
  "watch_list": [
    "ISRG stalk",
    "LINK reset",
    "ONDS reset",
    "RDW reset",
    "SATL reset",
    "POWL reset",
    "HUBB reset",
    "NOC armed"
  ],
  "child_routes": [
    {
      "page_id": "portfolio_autoresearch",
      "path": "portfolio/autoresearch/index.html",
      "title": "Autoplan Main Page",
      "description": "Clean-sheet thematic allocation tournament with 10 recommended portfolio allocations, source audit, scoring, node-selection record, and detailed portfolio pages."
    },
    {
      "page_id": "portfolio_power_delivery_electrical_equipment",
      "path": "portfolio/power-delivery-electrical-equipment/index.html",
      "title": "Power Delivery And Electrical Equipment Trade Plan",
      "description": "Dedicated 5%-20% sleeve plan for PWR, GEV, VRT, and POWL with allocation ladder, staged entries, API chart levels, and invalidation rules."
    }
  ],
  "target_watchlist": [
    {
      "ticker": "ISRG",
      "group": "Robotics, Automation, And Procedure Platforms",
      "plan_state": "Stalk",
      "route": "../themes/robotics/nodes/surgical-robotics-and-procedure-platforms/index.html",
      "trigger": "Reclaim $430.85 and hold the 20-day area near $411.42; confirm above $443.84 and the 100-day guide near $449.21.",
      "invalidation": "Drop below $397.52 or if procedure growth, placements, leases, China/OUS, or gross-margin evidence weakens.",
      "setup": "Target watch: ISRG surgical robotics repair",
      "no_trade": "Do not enter while price is below the old $430.85 reclaim or the 100-day guide.",
      "evidence": "ISRG closed $427.30 on July 7, below the old $430.85 trigger after an intraday high at $443.84, and still below the 100-day guide near $449.21. It remains above the 20-day average near $411.42.",
      "next_check": "Recheck after a close back above $430.85, above $443.84, above $449.21, below $411.42, or below $397.52.",
      "stale": "A new earnings release, procedure guide, position, or local OHLC refresh changes the setup lines."
    },
    {
      "ticker": "LINK",
      "group": "Sensing, Defense Autonomy, And Space ISR",
      "plan_state": "Reset",
      "route": "../themes/physical-ai-defense-autonomy/nodes/sensing-and-perception-stack/index.html",
      "trigger": "Reclaim the 20-day area near $4.35; next confirmation is a close above $5.30 with volume.",
      "invalidation": "Drop or rewrite below $3.66, or if repeat revenue, gross margin, cash, or customer-concentration evidence weakens.",
      "setup": "Target watch: LINK thin-float sensor repair",
      "no_trade": "Do not chase while price is below the 20-day area.",
      "evidence": "LINK closed $4.05 on July 7, below the 20-day average near $4.35 and below the $5.30 20-day high.",
      "next_check": "Review only after a reclaim above $4.35 or a close above $5.30 with better volume.",
      "stale": "New LINK filing, customer, cash, or OHLC data arrives."
    },
    {
      "ticker": "ONDS",
      "group": "Sensing, Defense Autonomy, And Space ISR",
      "plan_state": "Reset",
      "route": "../themes/physical-ai-defense-autonomy/nodes/defense-autonomy-and-isr-integrators/index.html",
      "trigger": "Reclaim $8.64-$8.92, then clear $10.84.",
      "invalidation": "Drop or rewrite if the $7.31 recent low fails, or if margin, cash flow, controls, or share-count evidence deteriorates.",
      "setup": "Target watch: ONDS defense-autonomy reset",
      "no_trade": "Below the 20-day area and below the old fail line; wait for repair before adding risk.",
      "evidence": "ONDS closed $7.35 on July 7, below the 20-day average near $8.64 and just above the $7.31 recent low.",
      "next_check": "Review after a close above $8.92, a close above $10.84, or a new order/backlog conversion update.",
      "stale": "New ONDS orders, revenue, share-count, controls, or OHLC data arrives."
    },
    {
      "ticker": "RDW",
      "group": "Sensing, Defense Autonomy, And Space ISR",
      "plan_state": "Reset",
      "route": "../themes/physical-ai-defense-autonomy/nodes/defense-autonomy-and-isr-integrators/index.html",
      "trigger": "Reclaim the 20-day area near $13.28 before extension; extension needs $19.57.",
      "invalidation": "Drop or rewrite if price loses $10.11 or if Space, Defense Tech, ICFR, ATM, or FCF evidence worsens.",
      "setup": "Target watch: RDW defense-space reset",
      "no_trade": "The repair line failed; wait for a reclaim before treating it as active.",
      "evidence": "RDW closed $10.21 on July 7, still below the 20-day average near $13.28 and just above the $10.11 low.",
      "next_check": "Review only after a reclaim of $13.28 or if price clears $19.57 with volume.",
      "stale": "New RDW backlog, Space/Defense Tech, control, share-count, or OHLC evidence arrives."
    },
    {
      "ticker": "SATL",
      "group": "Sensing, Defense Autonomy, And Space ISR",
      "plan_state": "Reset",
      "route": "../themes/physical-ai-defense-autonomy/nodes/sovereign-space-and-geospatial-isr/index.html",
      "trigger": "Reclaim $5.39 and the $5.84-$6.04 guide area; entry review needs $7.85.",
      "invalidation": "Drop or rewrite below $4.40, or if RPO, monitoring revenue, Merlin timing, cash flow, ATM, note, or warrant evidence worsens.",
      "setup": "Target watch: SATL failed-breakout repair",
      "no_trade": "Wait for repair above the old drop line and the 20-day area.",
      "evidence": "SATL closed $4.82 on July 7, below the old $5.39 drop line, below the 20-day average near $5.84, and below the 100-day guide near $6.04.",
      "next_check": "Review after a close above $5.39 and $5.84, or after a new contract, launch, RPO, ATM, or cash-flow update.",
      "stale": "New SATL filing, contract, launch, financing, or OHLC data arrives."
    },
    {
      "ticker": "POWL",
      "group": "Power Delivery And Electrical Equipment",
      "plan_state": "Reset",
      "route": "../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html",
      "trigger": "Reclaim $243.35, the 100-day guide near $242.19, and the 20-day area near $282.78, then clear $316.99.",
      "invalidation": "Rewrite below $226.01, or if bookings, backlog, awards, margin, or cash evidence weakens.",
      "setup": "Target watch: POWL switchgear repair reset",
      "no_trade": "Do not enter until price reclaims the failed drop line, the 100-day guide, and the 20-day area.",
      "evidence": "POWL closed $234.05 on July 7, below the old $243.35 drop line, below the 100-day guide near $242.19, and below the 20-day average near $282.78.",
      "next_check": "Review after a reclaim above $243.35, $242.19, and $282.78, a close above $316.99, or a failed recovery below $226.01.",
      "stale": "New POWL bookings, backlog, award, margin, cash, or OHLC evidence arrives."
    },
    {
      "ticker": "HUBB",
      "group": "Power Delivery And Electrical Equipment",
      "plan_state": "Reset",
      "route": "../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html",
      "trigger": "Reclaim the 100-day guide near $493.61 and the 20-day average near $501.02; stronger line remains $547.33.",
      "invalidation": "Drop below $464.82 or if Utility Solutions, Electrical margin, acquisition, price/cost, or free-cash-flow evidence weakens.",
      "setup": "Target watch: HUBB utility and electrical platform reset",
      "no_trade": "Do not add while price is below the 100-day and 20-day guides.",
      "evidence": "HUBB closed $478.89 on July 7, below the 100-day guide near $493.61 and below the 20-day average near $501.02.",
      "next_check": "Review if $493.61 and $501.02 are reclaimed, if $464.82 fails, or if price clears $547.33.",
      "stale": "New HUBB Utility, Electrical, acquisition, price/cost, FCF, or OHLC evidence arrives."
    },
    {
      "ticker": "NOC",
      "group": "Funded Defense Prime",
      "plan_state": "Armed",
      "route": "../themes/physical-ai-defense-autonomy/nodes/funded-defense-prime-conversion/index.html",
      "trigger": "Hold the 20-day average near $529.80 before starter review; confirmation remains above $559.70.",
      "invalidation": "Drop below $493.84 or if awards, Space margin, EAC, B-21, working-capital, or FCF evidence weakens.",
      "setup": "Target watch: NOC range reclaim repair",
      "no_trade": "Do not enter if price gives back the 20-day reclaim before clearing the high.",
      "evidence": "NOC closed $549.04 on July 7, above the 20-day average near $529.80 and below the $559.70 confirmation line.",
      "next_check": "Armed while above $529.80; review again above $559.70 or below $493.84.",
      "stale": "New NOC awards, EAC, B-21, Space margin, FCF, or OHLC data arrives."
    }
  ],
  "maintenance_queue": [
    "Schwab smoke/export monitoring",
    "July 7 open-book repair reviews",
    "POWL and SATL failed old drop lines",
    "CRWV reconciliation"
  ],
  "knowledge_sources": [
    "../knowledge/wiki/lanes/security/aep.md",
    "../knowledge/wiki/lanes/security/amkr.md",
    "../knowledge/wiki/lanes/security/amzn.md",
    "../knowledge/wiki/lanes/security/be.md",
    "../knowledge/wiki/lanes/security/crwv.md",
    "../knowledge/wiki/lanes/security/ese.md",
    "../knowledge/wiki/lanes/security/etr.md",
    "../knowledge/wiki/lanes/security/fcel.md",
    "../knowledge/wiki/lanes/security/gev.md",
    "../knowledge/wiki/lanes/security/googl.md",
    "../knowledge/wiki/lanes/security/hubb.md",
    "../knowledge/wiki/lanes/security/ilmn.md",
    "../knowledge/wiki/lanes/security/isrg.md",
    "../knowledge/wiki/lanes/security/link.md",
    "../knowledge/wiki/lanes/security/mrvl.md",
    "../knowledge/wiki/lanes/security/noc.md",
    "../knowledge/wiki/lanes/security/onds.md",
    "../knowledge/wiki/lanes/security/oust.md",
    "../knowledge/wiki/lanes/security/powl.md",
    "../knowledge/wiki/lanes/security/pwr.md",
    "../knowledge/wiki/lanes/security/rdw.md",
    "../knowledge/wiki/lanes/security/rok.md",
    "../knowledge/wiki/lanes/security/satl.md",
    "../knowledge/wiki/lanes/security/ter.md",
    "../knowledge/wiki/lanes/security/tln.md",
    "../knowledge/wiki/lanes/security/txn.md",
    "../knowledge/wiki/portfolio.md"
  ],
  "report_sources": [
    "../assets/chart-level-rules.js",
    "../assets/security-page-routes.js",
    "../daily/index.html",
    "../daily/report.json",
    "../securities/fcel/index.html",
    "../securities/fcel/report.json",
    "../themes/ai-capex-cycle/nodes/accelerators-and-custom-silicon/report.json",
    "../themes/ai-capex-cycle/nodes/hyperscaler-cloud-capex-budgets/report.json",
    "../themes/ai-capex-cycle/nodes/semicap-packaging-power-semis/report.json",
    "../themes/ai-enabled-biology-and-scientific-discovery/nodes/ai-ready-biology-data-and-omics/report.json",
    "../themes/physical-ai-defense-autonomy/nodes/defense-autonomy-and-isr-integrators/report.json",
    "../themes/physical-ai-defense-autonomy/nodes/funded-defense-prime-conversion/report.json",
    "../themes/physical-ai-defense-autonomy/nodes/sensing-and-perception-stack/report.json",
    "../themes/physical-ai-defense-autonomy/nodes/sovereign-space-and-geospatial-isr/report.json",
    "../themes/power-scarcity-and-grid-load/nodes/cooling-backup-and-power-quality/report.json",
    "../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/report.json",
    "../themes/power-scarcity-and-grid-load/nodes/grid-delivery-services/report.json",
    "../themes/power-scarcity-and-grid-load/nodes/merchant-power-capacity-markets/report.json",
    "../themes/power-scarcity-and-grid-load/nodes/utilities-and-grid-recovery/report.json",
    "../themes/robotics/nodes/edge-compute-and-robot-semiconductors/report.json",
    "../themes/robotics/nodes/factory-automation-and-robot-oem-proxies/report.json",
    "../themes/robotics/nodes/surgical-robotics-and-procedure-platforms/report.json",
    "portfolio/power-delivery-electrical-equipment/index.html"
  ],
  "api_routes": [
    "/api/health",
    "/api/calendar/latest-price-date",
    "/api/reports/daily/all-universes?as_of=2026-07-07",
    "/api/securities/charts?tickers=...&frequency=daily&window=9m&as_of=2026-07-07",
    "/api/securities/charts?tickers=AMZN,ETR,ISRG&frequency=weekly&window=5y&as_of=2026-07-07",
    "/api/securities/{ticker}/chart?frequency=daily&window=9m&as_of=2026-07-07"
  ],
  "source_trail": {
    "schwab_status_command": "python -m schwab_snapshot status",
    "schwab_full_run_check": "python -m schwab_snapshot run",
    "schwab_smoke_command": "python -m schwab_snapshot run --smoke",
    "schwab_export_command": "python -m schwab_snapshot export",
    "schwab_export_status": "published static account and heatmap snapshot from July 8 ignored export; raw private export remains ignored",
    "latest_daily_report": "daily/report.json as_of 2026-07-06",
    "discovery_run": "20260707T230001Z",
    "discovery_log_directory": "/home/nick/projects/portfolio-manager/discovery/logs/universe-updates/20260707T230001Z",
    "chart_api_daily_batch": "/api/securities/charts?tickers=...&frequency=daily&window=9m&as_of=2026-07-07",
    "chart_api_weekly_batch": "/api/securities/charts?tickers=AMZN,ETR,ISRG&frequency=weekly&window=5y&as_of=2026-07-07",
    "chart_level_registry": "assets/chart-level-rules.js",
    "private_values_in_public_files": "account_cards_and_heatmap_fields_published",
    "public_heatmap_snapshot": "portfolio/portfolio-heatmap-snapshot.js"
  },
  "validation_notes": [
    "Target portfolio date came from the local report API latest-price-date route for 2026-07-07; static daily/report.json points to 2026-07-06 because this run precedes the July 7 daily refresh.",
    "Open-book account-card values, heatmap weights, daily P/L, and account-impact percentages come from the July 8 static portfolio snapshot; public route membership remains the 17-symbol open book.",
    "Full python -m schwab_snapshot run is still unavailable; python -m schwab_snapshot run --smoke succeeded and python -m schwab_snapshot export rebuilt the ignored private export.",
    "Individual Positions are grouped by parent theme and node sub-theme from portfolio_node_map.theme and portfolio_node_map.node.",
    "Daily trade candidates are intentionally omitted from the portfolio surface; they remain in the daily and weekly candidate-review sections.",
    "Portfolio HTML and report JSON contain no inline chart levels; registered horizontal lines remain centralized in assets/chart-level-rules.js.",
    "Public files do not include private account values, account numbers, account hashes, tokens, raw snapshots, or ledger rows.",
    "Main Target Watchlist excludes current open-book holdings; open-position add, warning/review, and invalidation rules live in Individual Positions.",
    "Main Target Watchlist uses the shared compact status-lane card face and API-backed 1D return pills."
  ],
  "notes": [
    "Schwab account export is dated 2026-07-07 and carries the insufficient-risk-history quality flag.",
    "The active book had 4 advancers, 13 decliners, a -4.44% equal-weight return, and a -2.95% median return on July 7.",
    "AMKR and TER made new 20-day lows; AMKR remains above its terminal fail line and TER closed above its old drop line after undercutting it intraday.",
    "TXN moved back below the old $298.52 reduce-review line and the 20-day average near $300.62.",
    "AEP, AMZN, ETR, GOOGL, and ILMN held key daily support; BE and OUST lost 20-day lines.",
    "NOC remains the only armed target-watch name; ISRG moved to stalk after giving back the old trigger; LINK, ONDS, RDW, SATL, POWL, and HUBB remain reset."
  ],
  "chart_level_rule_registry": {
    "runtime_source": "assets/chart-level-rules.js",
    "resolution": "Calculated and fixed rules from assets/chart-level-rules.js resolve in assets/report.js from chart API rows before guide lines are drawn.",
    "seeded_tickers": [
      "AEP",
      "AMKR",
      "AMZN",
      "BE",
      "ESE",
      "ETR",
      "FCEL",
      "GEV",
      "GOOGL",
      "ILMN",
      "MRVL",
      "OUST",
      "PWR",
      "ROK",
      "TER",
      "TLN",
      "TXN",
      "ISRG",
      "LINK",
      "ONDS",
      "RDW",
      "SATL",
      "POWL",
      "HUBB",
      "NOC"
    ],
    "scope": "Only tickers explicitly listed in assets/chart-level-rules.js receive horizontal trade or guide overlays. No inline chart levels are stored in portfolio HTML or report JSON.",
    "last_checked": "2026-07-07"
  },
  "revision": {
    "source_freshness": "2026-07-07",
    "discovery_run": "20260707T230001Z",
    "private_export_status": "smoke_capture_export_rebuilt",
    "public_private_boundary_checked": true
  },
  "freshness": {
    "price_data_as_of": "2026-07-07",
    "requested_date": "2026-07-07",
    "local_report_api": "required",
    "discovery_run_id": "20260707T230001Z",
    "discovery_log_directory": "/home/nick/projects/portfolio-manager/discovery/logs/universe-updates/20260707T230001Z",
    "latest_price_date": "2026-07-07",
    "latest_price_date_distinct_tickers": 5076,
    "report_api_source_table": "reports.daily_security_metrics"
  },
  "summary_metrics": {
    "all": {
      "count": 3299,
      "configured_count": 5271,
      "equal_weight_return": 0.6341,
      "median_return": -0.5183,
      "advancers": 1342,
      "decliners": 1928,
      "unchanged": 29,
      "new_high20": 474,
      "new_low20": 333,
      "new_high52": 139,
      "new_low52": 23,
      "new_high252": 139,
      "new_low252": 23,
      "median_volume_impulse": 0.7773,
      "chart_coverage": 3299
    },
    "research": {
      "count": 887,
      "configured_count": 1056,
      "equal_weight_return": -1.3408,
      "median_return": -0.6146,
      "advancers": 379,
      "decliners": 507,
      "unchanged": 1,
      "new_high20": 142,
      "new_low20": 119,
      "new_high52": 50,
      "new_low52": 6,
      "new_high252": 50,
      "new_low252": 6,
      "median_volume_impulse": 0.7992,
      "chart_coverage": 887
    },
    "thematic": {
      "count": 322,
      "configured_count": 373,
      "equal_weight_return": -2.7995,
      "median_return": -2.6383,
      "advancers": 92,
      "decliners": 230,
      "unchanged": 0,
      "new_high20": 37,
      "new_low20": 61,
      "new_high52": 13,
      "new_low52": 3,
      "new_high252": 13,
      "new_low252": 3,
      "median_volume_impulse": 0.836,
      "chart_coverage": 322
    },
    "active": {
      "count": 17,
      "configured_count": 17,
      "equal_weight_return": -4.4416,
      "median_return": -2.9461,
      "advancers": 4,
      "decliners": 13,
      "unchanged": 0,
      "new_high20": 0,
      "new_low20": 2,
      "new_high52": 0,
      "new_low52": 0,
      "new_high252": 0,
      "new_low252": 0,
      "median_volume_impulse": 0.791,
      "chart_coverage": 17
    }
  },
  "portfolio_snapshot_as_of": "2026-07-08"
}
