Portfolio Intelligence reads the picked company

p11-page-admin-portfolio-intel part 1: no pick, two picks, one pick, captured as the smoke staff user against propflow-stage

24 Sept 2026 · branch p11-pi-report-scope · captured against propflow-stage · at 02b875135f+local

Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.

1 · 1 · No company picked: a refusal, not a report

Staff have no home company. Before this change, the page read the caller's home company, which for staff was one shared staff bucket, and showed No reports yet for it. Now a fresh session with nothing picked (the picker reads Every company) gets the refusal. Nothing is read to draw it: the page decides from the pick and hands the island a refusal instead of a report.

Notice what is missing: there is no red banner and no Try again, because retrying cannot fix this, and there is no No reports yet, because no company was asked.

Asserted in the captured DOM — Portfolio Intelligence · No company is picked · Pick one company to see its portfolio report.. The refusal's title and its one next action.

1 · No company picked: a refusal, not a report
/admin/portfolio-intelligence with nothing picked.

2 · 2 · Two companies picked: refused by count

A portfolio report answers for one company. With two ticked, the page says how many are picked and asks for one. It does not pick one quietly, and it does not merge them. The API routes return the same refusal (400 needs_one_org, listing both ids) before any read.

Asserted in the captured DOM — 2 companies are picked · Pick one company to see its portfolio report.. The title carries the count, so it cannot be mistaken for the no-pick state.

2 · Two companies picked: refused by count
Two test companies picked.

3 · 3 · One company picked: that company's report

One test company picked: the page reads that company's partitions and shows its report. This company has no confirmed uploads on stage, so the honest empty state appears for this company. The refusal copy is gone.

Asserted in the captured DOM — Portfolio Intelligence · No reports yet. The company's own empty state, not the refusal.

3 · One company picked: that company's report
One test company picked.

Notes

Data. Captured against propflow-stage as the smoke staff user. Both companies are test companies on stage. No customer data is on screen.

Not captured: a re-pick from one refusal to another in the same tab. The page now keys the island on the refusal and the picked ids, so going from no pick to two picks remounts it with the new title. That is pinned by PortfolioIntelligenceClient.pickRefusal.test.tsx and page.refusal-key.test.tsx, which are red on the previous head.

PropFlow Docs