# Portfolio

Status: `active`
Report route: `portfolio/index.html`
Markdown source: `portfolio/index.md`
Market date: `2026-07-07`
Last refresh: `2026-07-07 local report API chart checks; Schwab smoke capture and export rebuilt`

This page is the report-owned portfolio operating surface for open-book aggregation, individual position rules, and entry plans. It summarizes current account and price evidence, then routes durable company work to knowledge lanes. It does not store private account values, raw Schwab snapshots, account numbers, account hashes, tokens, or ledger CSV contents.

The static page works without the ignored private Schwab export. When `portfolio/private/schwab_account_snapshot.js` exists, the HTML renderer fills account value, cash, invested value, market-only P/L, rolling 5-session and 22-session P/L, and the combined portfolio heatmap from the local export. The current export is dated July 7 and is used only by the browser renderer; public files store symbol membership, routing, and rules, not private values.

## At A Glance

- Target portfolio date: `2026-07-07` from the local report API latest-price-date route. The latest static daily report is `2026-07-06` because this run precedes the July 7 daily report refresh. The upstream discovery run supplied for this refresh is `20260707T230001Z`.
- Schwab full `run` remains smoke-only. The supported `python -m schwab_snapshot run --smoke` succeeded, and `python -m schwab_snapshot export` rebuilt the ignored export for July 7 with only the insufficient-risk-history quality flag.
- Current public open-book membership is `AEP`, `AMKR`, `AMZN`, `BE`, `ESE`, `ETR`, `FCEL`, `GEV`, `GOOGL`, `ILMN`, `MRVL`, `OUST`, `PWR`, `ROK`, `TER`, `TLN`, `TXN`. No account value, cash, position size, or P/L is stored in this page.
- The July 7 active book had 4 advancers, 13 decliners, a -4.44% equal-weight return, and a -2.95% median return. AMKR and TER made new 20-day lows; TXN moved back below its reduce-review line.
- AEP, AMZN, ETR, GOOGL, and ILMN held key daily support. BE and OUST lost 20-day lines, PWR is close to its 100-day exit/reduce guide, and TLN closed just below its 100-day guide.

## Open Book

The open book is limited to Schwab positions with nonzero exposure plus explicit active plans. Account values, position sizes, allocation tiles, and P/L tiles are rendered only from the ignored private export. The July 7 export is current enough for membership and renderer inputs, but its quality flags still show insufficient risk history.

The portfolio heatmap uses public ticker-to-node routing metadata and private `weight_pct`, same-day performance, daily P/L, and account-impact values in the browser. It defaults to Allocation plus Individual and can switch to P/L while staying filterable by Individual, Theme, or Node. In P/L mode, tile area uses absolute daily P/L and color uses account-impact percent. Current routing:

| Ticker | Node | Theme route |
| --- | --- | --- |
| `AEP` | Utilities And Grid Recovery | `../themes/power-scarcity-and-grid-load/nodes/utilities-and-grid-recovery/index.html` |
| `AMKR` | Semicap Packaging And Power Semis | `../themes/ai-capex-cycle/nodes/semicap-packaging-power-semis/index.html` |
| `AMZN` | Hyperscaler And Cloud Capex Budgets | `../themes/ai-capex-cycle/nodes/hyperscaler-cloud-capex-budgets/index.html` |
| `BE` | Cooling, Backup, And Power Quality | `../themes/power-scarcity-and-grid-load/nodes/cooling-backup-and-power-quality/index.html` |
| `ESE` | Electrical Equipment Bottlenecks | `../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html` |
| `ETR` | Utilities And Grid Recovery | `../themes/power-scarcity-and-grid-load/nodes/utilities-and-grid-recovery/index.html` |
| `FCEL` | Cooling, Backup, And Power Quality | `../themes/power-scarcity-and-grid-load/nodes/cooling-backup-and-power-quality/index.html` |
| `GEV` | Electrical Equipment Bottlenecks | `../themes/power-scarcity-and-grid-load/nodes/electrical-equipment-bottlenecks/index.html` |
| `GOOGL` | Hyperscaler And Cloud Capex Budgets | `../themes/ai-capex-cycle/nodes/hyperscaler-cloud-capex-budgets/index.html` |
| `ILMN` | AI-Ready Biology Data And Omics | `../themes/ai-enabled-biology-and-scientific-discovery/nodes/ai-ready-biology-data-and-omics/index.html` |
| `MRVL` | Accelerators And Custom Silicon | `../themes/ai-capex-cycle/nodes/accelerators-and-custom-silicon/index.html` |
| `OUST` | Sensing And Perception Stack | `../themes/physical-ai-defense-autonomy/nodes/sensing-and-perception-stack/index.html` |
| `PWR` | Grid Delivery Services | `../themes/power-scarcity-and-grid-load/nodes/grid-delivery-services/index.html` |
| `ROK` | Factory Automation And Robot OEM Proxies | `../themes/robotics/nodes/factory-automation-and-robot-oem-proxies/index.html` |
| `TER` | Factory Automation And Robot OEM Proxies | `../themes/robotics/nodes/factory-automation-and-robot-oem-proxies/index.html` |
| `TLN` | Merchant Power And Capacity Markets | `../themes/power-scarcity-and-grid-load/nodes/merchant-power-capacity-markets/index.html` |
| `TXN` | Edge Compute And Robot Semiconductors | `../themes/robotics/nodes/edge-compute-and-robot-semiconductors/index.html` |

## Individual Positions

The individual-positions board is grouped by parent theme, then by the node sub-theme used in the allocation heatmap. These rows are the active rule board for current holdings: add levels, warning/review levels, and invalidation conditions.

### AI-Enabled Biology And Scientific Discovery

#### AI-Ready Biology Data And Omics

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `ILMN` | Open position: ILMN sequencing recovery starter | July 7 close was $191.76, -1.32%, still above the $189.46 reclaimed continuation line after an intraday high at $196.66. | `Clear` | Keep add discipline tied to $189.46 holding and a close through $196.66. Review below the 20-day average near $171.56; terminal reset remains $150.29 or if NovaSeq X utilization, China, SomaLogic, margin bridge, or FCF evidence weakens. |

### Robotics

#### Factory Automation And Robot OEM Proxies

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `ROK` | Open position: ROK factory automation reclaim | 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. | `Review` | No add until price reclaims $486.47 and then $497.36. The 20-day average near $468.31 is the first hold line; drop or rewrite below $439.70 or if order, Software and Control margin, or cash-conversion evidence fades. |
| `TER` | Open position: TER AI-test and robotics exposure | 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. | `Review` | No add unless price reclaims the 100-day guide near $349.76 and then the 20-day average near $412.18. Drop below $340.34, or rewrite if Semiconductor Test remains the main driver while Robotics revenue stays too small. |

#### Edge Compute And Robot Semiconductors

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `TXN` | Open trade: TXN common | 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. | `Reduce validated` | The prior reduce-review condition is active again. Fresh add review still needs continuation through $334.03; reduce or keep on same-day review if price cannot reclaim $298.52 and $300.62. |

### AI Capex Cycle

#### Hyperscaler And Cloud Capex Budgets

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `AMZN` | Open position: AMZN weekly 100 EMA hold rule | 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. | `Clear` | Hold above the daily guide lines; stronger continuation needs $256.38. Remove on weekly closes below the 100-week EMA near $216.89, or if capex, fulfillment, lease, or AWS-margin evidence weakens. |
| `GOOGL` | Open position: GOOGL long-hold pullback plan | 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. | `Clear` | Add discipline stays tied to a hold above the 20-day average near $358.18 and a close through $376.00. Reopen reduce review if Cloud, Search, capex, financing, or regulatory evidence deteriorates, or if price loses the 100-day guide near $345.63 without repair. |

#### Semicap Packaging And Power Semis

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `AMKR` | Open position: AMKR breakout repair | 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. | `Review` | No add until price reclaims the 100-day guide near $65.58, then the 20-day average near $79.87 and $83.30. Terminal fail remains below $64.32 or if semicap packaging breadth and company evidence weaken. |

#### Accelerators And Custom Silicon

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `MRVL` | Open position: MRVL long-hold pullback plan | 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. | `Review` | No add until the 20-day average near $277.05 is reclaimed; fresh add still waits for $329.88. Reopen reduce review if AI custom-silicon demand, margin, or customer evidence weakens, or if the 100-day guide near $187.29 fails without repair. |

### Physical AI Defense Autonomy

#### Sensing And Perception Stack

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `OUST` | Open position: OUST LiDAR and perception repair | July 7 close was $44.06, -11.58%, below the 20-day average near $45.51 and below the $51.50 reclaim line. | `Review` | No chase; add review needs a reclaim of the 20-day line near $45.51, then $51.50, or follow-through above $63.79. Drop or rewrite below $35.30 or if product revenue, margin, Stereolabs/Rev8, EBITDA, or cash-flow evidence weakens. |

### Power Scarcity And Grid Load

#### Grid Delivery Services

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `PWR` | Open trade: PWR common | 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. | `Review` | No add until the 20-day average near $698.21 is reclaimed; stronger confirmation still waits for $742.73. Exit or reduce on closes below the 100-day EMA near $641.43. |

#### Electrical Equipment Bottlenecks

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `GEV` | Open position: GEV equipment bottleneck continuation | 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. | `Clear` | No chase near the upper reference; add discipline waits for a hold above $1,039.67 or a clean close through $1,195.94. Review below the 100-day guide near $956.70; drop below $856.01. User stop-limit guide remains $741.38 in the chart registry. |
| `ESE` | Open position: ESE utility testing and monitoring | 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. | `Clear` | Current add review is a close above $362.15 on at least 1.1x volume. Review below the 20-day average near $332.53 and again below the 100-day guide near $298.03, or if Megger integration, backlog, GAAP/cash, or guide evidence weakens. |

#### Merchant Power And Capacity Markets

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `TLN` | Open position: TLN merchant-power continuation | 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. | `Review` | No add chase below the current 20-day high near $449.84. Reclaim the 100-day guide near $367.76 and the 20-day average near $386.73 before relaxing review. Terminal fail remains below $329.13, or if merchant-power breadth and nuclear/contract evidence stop supporting the move. |

#### Cooling, Backup, And Power Quality

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `BE` | Open position: BE onsite AI power continuation | 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. | `Review` | Add discipline now requires a reclaim of the 20-day line near $284.19 or a close through $351.28. Drop below $230.60 or if Oracle/Nebius accepted-system timing, product margin, installation/service margin, working capital, or dilution evidence weakens. |
| `FCEL` | Open position: FCEL behind-the-meter power optionality | July 7 close was $25.96, -12.68%, above the 20-day average near $22.90 and below the $37.88 spike high. | `Clear` | No chase; add review needs a hold above registered lines with funded Fit/backlog evidence, or a controlled reset that holds the 20-day average near $22.90. Review below the 20-day average; terminal reset below $15.06 or if Fit deposits, backlog conversion, gross margin, cash burn, ATM usage, or Groton evidence weakens. |

#### Utilities And Grid Recovery

| Ticker | Rule | Current evidence | Status | Required decision |
| --- | --- | --- | --- | --- |
| `ETR` | Open position: ETR utilities-and-grid-recovery pullback | 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. | `Clear` | Hold the daily 20-day area near $112.74; confirmation still needs a close through $116.39-$116.93 on better volume. Review below $112.74 and again below $109.04; invalidation remains below $104.93 or if Gulf South load, recovery approval, customer contribution, FFO/debt, or dilution evidence weakens. |
| `AEP` | Open position: AEP load-led regulated utility | 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. | `Clear` | Add review needs the $135.50-$136.91 band to hold and a close through $140.58. Review below $132.62; terminal reset below $123.74 or if load-conversion, recovery, FFO/debt, or equity-funding evidence weakens. |

## Watch And Maintenance Queue

### Main Target Watchlist

This is the portfolio-level target deck for names that are not currently in the open book. Current holdings and position-add rules live in Individual Positions. The HTML card deck renders each ticker as a chart target with structured setup, entry, confirmation, warning, and invalidation text. Horizontal chart overlays resolve only from `assets/chart-level-rules.js`; no target card stores inline chart-level data.

State legend:

- Armed: setup is live enough for entry review or hold-line monitoring; still requires the stated chart line and evidence.
- Reset: prior setup broke or trend was lost. No entry until the card's repair line, base, or reclaim condition is met.
- Stalk: preferred name, but timing is not ready. Watch for a cleaner setup, confirmation, or source-backed catalyst.

Decision units:

- Robotics, Automation, And Procedure Platforms: `ISRG` stalk: Reclaim $430.85; confirm above $443.84 and $449.21.
- Sensing, Defense Autonomy, And Space ISR: `LINK` reset: Reclaim $4.35; confirm above $5.30. `ONDS` reset: Reclaim $8.64-$8.92; then $10.84. `RDW` reset: Reclaim $13.28; extension above $19.57. `SATL` reset: Reclaim $5.39 and $5.84-$6.04; then $7.85.
- Power Delivery And Electrical Equipment: `POWL` reset: Reclaim $243.35, $242.19, and $282.78; then $316.99. `HUBB` reset: Reclaim $493.61 and $501.02; then $547.33.
- Funded Defense Prime: `NOC` armed: Hold $529.80; confirm above $559.70.

### Maintenance Queue

| Priority | Item | Decision needed | Next action |
| ---: | --- | --- | --- |
| 1 | Schwab smoke/export monitoring | Full Schwab run is still unavailable, but July 7 smoke capture and export rebuild succeeded. | Keep using supported smoke/export commands until the package implements a full daily run; do not move private values into public files. |
| 2 | July 7 open-book repair reviews | AMKR, BE, MRVL, OUST, PWR, ROK, TER, TLN, and TXN are below or testing stated repair, review, or reduce lines. | Review add discipline only after the stated repair lines reclaim; do not chase below the repair lines. |
| 3 | POWL and SATL failed old drop lines | POWL closed below the old $243.35 drop line and SATL remains below the old $5.39 drop line. | Rewrite or remove either target card if price cannot quickly reclaim the failed line and the 20-day area. |
| 4 | CRWV reconciliation | Current public records still only show an older CRWV open plan, while the latest Schwab export does not show CRWV. | Move to historical or closed status after the exit record or user note is available. |

## Source Trail

| Source | Purpose | As of | Notes |
| --- | --- | --- | --- |
| `python -m schwab_snapshot status` | Config, token, raw snapshot, ledger, and export status | `2026-07-07` check | Status showed config complete, ledgers present, and private export present. The page does not expose auth data. |
| `schwab_snapshot/__main__.py` | CLI command support check | current code | Full `run` is not implemented; the local CLI says to use `python -m schwab_snapshot run --smoke` for smoke capture only. |
| `python -m schwab_snapshot run --smoke` | Supported live Schwab smoke capture | `2026-07-07` | Smoke capture succeeded for account-number, accounts-with-positions, and configured price-history endpoints. The page does not claim a full Schwab daily run. |
| `python -m schwab_snapshot export` | Rebuild ignored report-facing export from local raw snapshots | `2026-07-07` account snapshot | Export was rebuilt from private raw snapshots and ledgers with calculated P/L. Public files do not store private values. |
| `portfolio/private/schwab_account_snapshot.js` | Optional ignored account renderer input | `2026-07-07` | Export supplies browser-rendered account metrics and 17 open symbols. Public files do not hardcode account values, position sizes, P/L, account numbers, account hashes, tokens, raw snapshots, or ledger rows. |
| Local report API health and latest-price-date routes | Target portfolio date and report-view readiness | `2026-07-07` | `/api/health` showed required materialized views ready and `/api/calendar/latest-price-date` returned `2026-07-07` with 5,076 distinct tickers. |
| Local report API batch chart routes | Open-book and target-watchlist price context | `2026-07-07` | Used daily batch chart routes for close, 20-day average, 20-day high/low, 100-day guide, one-day return, and volume impulse. Weekly batch routes returned current AMZN, ETR, and ISRG rows. |
| Discovery run `20260707T230001Z` | Upstream ingestion and report materialized-view refresh context | `2026-07-07` | Automation supplied `/home/nick/projects/portfolio-manager/discovery/logs/universe-updates/20260707T230001Z`. |
| `assets/chart-level-rules.js` | Persisted chart-level rule registry | `2026-07-07` check | Open-position and target-watchlist fixed chart lines were refreshed. No inline chart levels were added. |
| `daily/report.json` and `daily/index.html` | Latest static daily report context | `2026-07-06` | Static daily output remains the latest daily report because this run precedes the July 7 daily report update. Daily trade candidates stay in the daily/weekly review surfaces, not this portfolio page. |
| Filed theme node pages and security lanes | Target watchlist routes and proof burdens | per page | Used AI-enabled biology, robotics, AI capex, physical-AI, power-scarcity, healthcare diagnostics, and security pages for route names, operating proof, stale conditions, and source boundaries. |

## Revision

| Field | Value |
| --- | --- |
| Report date | `2026-07-07` price context and `2026-07-07` smoke/export account context |
| Page status | July 7 local report API chart checks; Schwab smoke capture and export rebuilt |
| Boundary | Private Schwab export optional; no private values in public files |
