Meridian National Exchange Services QI Hub

Open-exchange counts and statutory-deadline buckets across the QI firms linked to this hub, for all linked QIs or one selected QI. Each firm remains the Qualified Intermediary of record for its own exchanges.

All linked QIs · 2 QIs · 661 open exchanges

That QI isn’t available in this hub
The link you followed names a QI that is not part of Meridian National Exchange Services. No figures are shown for it. Choose a scope to continue.
Hub state Synthetic figures, no live calls. ?hubState=error deep-links; the Shape B posture section keeps its own ?state=.
Design note — Shape A
The multi-QI hub is a designed surface, not a shipped one: no hub, link or membership table exists in the product today and nothing on this page is wired to data. Source: docs/adr/ADR-DRAFT-enterprise-tenancy.md (Proposed; revised 2026-09-12 under issue 2739 / issue 3050 Track C). Every QI, person and figure in the Shape A sections is synthetic; the preserved Shape B sections below predate this revision and are not covered by that statement. The two linked QIs are “Meridian Pacific Northwest” (A) and “Great Lakes Exchange & Accommodation Services of Michigan, LLC” (B). The unrelated-QI case is modelled by state, not by a record: no unlinked firm is ever loaded into this page, so nothing can leak by name, count or search result. M5’s runtime fixture does carry a real unrelated QI C as the negative control.

Your access to this hub has ended

Your membership in Meridian National Exchange Services was removed. Nothing from this hub is available to you any more, including figures you may have seen earlier. Any role you hold directly in a QI firm is unaffected and is reached from that firm’s own console.

Back to your dashboard
Oversight summary
All linked QIs · each exchange counted once Counts only
No QI firms are linked to this hub yet
Each QI firm is linked to the hub by an Open1031 administrator once that firm has authorized it. Once a firm is linked, its open-exchange counts and deadline buckets appear here.
No figures until a scope is chosen
Use the scope selector above.
1 Overdue 1 by the 45-day date · 0 by the 180-day date · of 595
15 Due within 7 days 7 by the 45-day date · 8 by the 180-day date · of 595 toward a statutory date
595 Toward a statutory date 189 next bound by the 45-day date · 406 next bound by the 180-day date
661 Open exchanges 63 sale not yet closed · 189 45-day date next · 406 180-day date next · 3 no statutory date recorded
QI firm Open Sale not closed 45-day date next 180-day date next No date recorded Due within 7 days Overdue Scope
Meridian Pacific Northwest
Linked · QI of record for its own exchanges
412 41 118 253 0 9 of 371 1
Great Lakes Exchange & Accommodation Services of Michigan, LLC
Linked · QI of record for its own exchanges · keeps its own consumer brand
249 22 71 153 3 6 of 224 0
Total across linked QIs 661 63 189 406 3 15 of 595 1
No open exchanges in this QI yet
This firm is linked and counted in every hub total. Zeros here are real zeros, not a missing figure.
Totals are recomputed from the per-QI counts. “View QI summary” narrows the scope to one linked firm.
Statutory-deadline buckets
Across all linked QIs · each exchange counted once, on the statutory date that binds it next · counts, never the exchanges themselves
Unavailable
Deadline buckets come from the same request as the summary above. No bucket is shown as zero while the count is unknown.
No deadline buckets to show
Buckets appear once a QI firm is linked.
No deadline buckets to show
Choose a scope with at least one linked QI.
Days to the next binding dateNext binding date 45-day identification date 180-day exchange date All Standing
Overdue45-day 1 · 180-day 0 1 0 1 Past the statutory date
Due within 7 days45-day 7 · 180-day 8 7 8 15 Needs the firm’s attention
8 – 14 days45-day 11 · 180-day 17 11 17 28 On the firm’s watch list
15 – 30 days45-day 24 · 180-day 47 24 47 71 In range
Later than 30 days45-day 146 · 180-day 334 146 334 480 Clear
No statutory date recorded — — 3 Date missing
Next binding date 189 406 595 595 of 661 open exchanges · 63 sale not yet closed · 3 no statutory date recorded
An overdue bucket stays in the alarm state until the owning firm records the disposition. An exchange with no statutory date recorded is counted on its own line, never as “later”.

Shared configuration — deferred

Not on this canvas and not in the rail. Whether a hub may publish a default that linked firms resolve at read time is a reviewed authority and provenance decision against the shipped tiered workflow configuration (ADR-053: platform-mandatory policy, per-firm overrides, revocation), with no write-through, no fee schedule, no credential and no tenancy election ever inherited from a hub role. Until that review lands, a hub has no configuration surface at all.
Gate: ADR-053 authority review · fund-firewall review for anything money-adjacent

Cross-QI people administration — deferred

Not on this canvas and not in the rail. Letting a hub role appoint or remove staff inside a licensed firm is control over who staffs that firm’s fiduciary pair, so it needs its own STATEQI-003 determination with counsel before it is designed. A grant ceiling at org_admin does not clear that gate on its own: it can still appoint both authorized officers. When it is designed, the ladder is the firm’s real one (org_staff → org_admin → org_owner), self-targeting and owner or platform grants are refused, and existing owner rows are never modified. Hub-member self-administration (ceiling, owner transfer, last-owner behaviour) is its own bounded follow-up; in this slice the platform bootstraps and revokes hub memberships.
Gate: STATEQI-003 counsel determination · reviewed delegation design

Cross-QI compliance posture — deferred

Not drawn. A per-firm control tick-list across firms would read as a verification claim the hub cannot produce (issue 2678) and would expose licence, bond and cadence records that belong to each firm. A firm’s own posture is section 10 below, inside that firm, read-only. Whether any posture aggregate belongs at hub scope is a later decision that starts from what the firm records, not from a synthetic check mark.
Gate: explicit scope decision · no unproducible verification claim

Hub dashboards and reporting — deferred

No dashboard builder, template, export or trend at hub scope in this slice. History and trend figures wait on status-transition history (issue 2678); anything bound to a party record can never resolve at hub scope; fee and revenue figures are not part of the product. If a hub dashboard is designed later it starts from the aggregate contract above and adds nothing to it without its own review.
Gate: issue 2678 history model · aggregate contract unchanged
Design review — not product surface
The firm-side specimen and the four cards below (the two shapes, the hierarchy diagram, the scope resolution and the can/cannot boundary) are review assets for the ADR and the implementing slices. The demo shell hides this block; the built Overview renders the summary and the deadline buckets first and carries none of this copy. The linked-firm standing record below is a firm-console specimen for M4 and is likewise review-only.
Shape A · multi-QI hub

One hub across independent QI firms

A grouping the platform provisions above N QI firms — regions, acquired brands, a title company’s affiliates.
Where it sits
Between the platform and the QI firms, outside every tenant boundary — the only thing on this page that crosses one. It is not an organizations row and is never a valid owning_org_id.
Data model
Three new sibling tables — the hub, its QI links (one active link per QI; unlink is soft and keeps the old row, relink inserts a new row, history and audit kept), and its memberships. No existing table is altered and no existing policy is rewritten.
Lifecycle
Platform administrators provision and deactivate a hub, link and unlink QIs, and grant and revoke hub memberships. A link becomes readable only once an organization owner of the linked firm has acknowledged it from that firm’s own console — the only authorization there is — and the firm sees the link as a standing record there. A hub cannot add a QI to itself. Each change is audited with actor, hub and target.
Membership
Independent of any QI membership. Being staff at a linked QI grants no hub access; holding hub access grants no seat in any QI. One person may hold both, as two separate grants that are revoked separately.
Reads
A dedicated hub-read route returns an aggregate projection only: linked-QI names and count, per-QI open-exchange status counts, statutory-deadline bucket counts with their denominators. No row of any operational table crosses. Existing org gates (requireTier, requireOrgAdmin, requireOrgOwner) are untouched.
Roles
One read-only role, hub_viewer — not an org_role. No self-administration and no privilege ladder in this slice; memberships are granted and revoked by platform administrators, and a revoked grant is never resurrected by a later relink.
Can never
Own an exchange, hold a QI licence or bond, be the QI of record, touch escrow, propose or approve a disbursement, sign, mark identity verified, or move a statutory date. Structural, not policy.
Lives at
API /v1/hubs/:hubId/*; a thin HubAdminShell behind HubRoute reusing the shared tier topbar (app route name to be fixed in the implementation PR). Existing firm URLs and guards stay where they are.
Later phases
Broader operational rows, cross-QI people administration and shared configuration are separate phases, each behind its own explicit gate (below). Nothing on this page claims any of them operates.
Shape B · a tier below

Divisions inside one QI org

Division managers over coordinator teams, within a single org.
Where it sits
Below the org, inside the tenant boundary. It is an orthogonal grouping of people and files, not a level of the ownership chain.
Data model
The dormant accounts table (account_type = branch | division | team), plus org_memberships.account_id and exchanges.account_id — both of which already exist. New DDL: one nullable column, accounts.manager_user_id.
Permission
No new RLS surface at all. An accounts row is reachable only through its org, so division scope is a query filter inside an existing boundary, not a boundary of its own.
Roles
No new role. A division manager is an ordinary org member who is named in accounts.manager_user_id. The org_role enum is not touched.
Can never
See another org. A division is not a tenant and never appears in an enterprise roll-up as one — it is a grouping, not a scope.
Lives at
The existing office console, /app/org/:orgId/admin/* — the same queues, filtered. No new shell, no new route tree.
Status
The schema is roughly 70% present and dormant. Open decision: soft filter (recommended) or hard isolation between sibling divisions, which is its own ADR with its own isolation tests.
Why these stay two features. They share the word “hierarchy” and nothing else. A multi-QI hub sits outside the tenant boundary and therefore reads aggregates only and is separately audited; an office sits inside it and is ordinary org machinery. Routing intra-org structure through the same helper that crosses the tenant boundary is exactly where isolation bugs are born — so they get two mechanisms, two migrations, two permission models, and they ship independently of each other.
The whole hierarchy, in one picture
Platform → multi-QI hub → linked QI firms → exchanges → participants, with offices drawn inside one firm and an unlinked firm drawn outside the hub
Open1031 tenancy hierarchy with a multi-QI hub Five levels. Tier 0 is the Open1031 platform, which provisions hubs and links. Tier 0.5 is the multi-QI hub, linked by the platform to two of the three QI firms shown; the third firm has no link and is outside the hub. Tier 1 is the QI firms, which are the tenant boundary and the QI of record; offices are drawn inside one firm as an orthogonal grouping. Tier 2 is exchanges, each owned by exactly one firm. Tier 3 is participants, scoped to one exchange. Hub membership is a separate grant from any firm membership. Tier 0 platform Tier 0.5 Shape A Tier 1 tenancy key Tier 2 exchanges Tier 3 participants Open1031 — the platform platform_admin · provisions hubs, links and unlinks QIs, grants and revokes hub memberships · owns no exchange and holds no client funds Multi-QI hub — Meridian National Exchange Services hub · QI links (one active per QI) · hub memberships — reads aggregates only, never a QI of record hub membership is a separate grant from any firm membership PLATFORM-PROVISIONED tenant boundary organizations.id Meridian Pacific Northwest QI A QI of record · holds its own licence and bond 412 open exchanges · linked to the hub no offices configured Own escrow. Own two-officer pair. Own audit stream. Own staff roster. Consumer app: Meridian brand Great Lakes Exchange & Accomm… QI B QI of record · 249 open exchanges · linked to the hub Offices — accounts rows (Shape B) Commercial Residential Reverse orthogonal · inside the boundary · a grouping, never a tenant Consumer app: Great Lakes brand Another QI firm not linked QI of record · no link row to this hub Never appears in the hub: not by name, not in a count, not in a search result. A URL that names it resolves to “not available in this hub”, nothing more. Consumer app: its own brand 412 open exchanges owning_org_id = QI A · never shared, never re-parented 249 open exchanges owning_org_id = QI B · account_id tags the office its exchanges outside the hub’s authorized set, so outside every hub total Participants — exchanger, CPA, attorney, title, lender exchange_participants · one row per person per exchange · SSN last-4 and date of birth live in profiles_sensitive and are visible to no tier above the firm
Exists today QI firm — the tenant boundary and the QI of record Shape A — multi-QI hub, platform-provisioned, aggregate reads only Shape B — offices inside one firm, no new tenancy Every row below the dashed rule is scoped by organizations.id; the two violet edges are the only ones that cross it, and only a count comes back up.
Read the diagram this way. Ownership runs straight down the middle: an exchange belongs to exactly one firm, forever, and that firm is the Qualified Intermediary of record for it. The hub hangs off the side by a link the platform wrote — it can count what is below a link, it can never own it, and it cannot see past a firm that has no link. Offices are drawn inside a firm box on purpose: re-tagging a file’s office changes who it shows up for, and changes nothing about who is liable for it.
One scope selector: all linked QIs, or one selected QI
The same aggregate contract at two scopes. Selecting a QI narrows the counts; it unlocks nothing.
All linked QIs
Every QI with an active link to this hub, including one with zero open exchanges. Totals are sums over that set; each exchange is counted once. The default on entry and after any revocation.
One selected QI
The same figures for one linked QI. The breadcrumb names it, the live region announces it, the URL carries it. “View QI summary” in the table selects a QI; it does not open an exchange.
A QI that is not linked
Never an option. A URL naming an unlinked, unlinked-since, or unknown QI resolves to “not available in this hub” — no name, no count, and never a silent fall-back to all linked QIs.
What changes and what does not when the scope changes
On scope change All linked QIs Selected QI
Figures Sums over the authorized link set That QI only — the previous scope’s figures are cleared, never left on screen while the next load is pending
Breadcrumb and live region QI Hub › hub › Overview › All linked QIs QI Hub › hub › Overview › the QI’s name; long names truncate with the full name on hover and in the live text
What is unlocked Nothing beyond counts Nothing beyond counts — no row, no record, no workspace
Search Matches linked-QI names only, in either scope. Never exchanges, people, parties or unlinked firms.
This is its own control, not the queue’s. The My files / My team segment in the QI Ops queue resolves a person’s book and their office inside one firm; neither meaning exists here, so neither is rendered, and the office filter of a single firm never widens across firms. What is reused is the presentation — the labelled select, the focus ring, the live announcement — not the permission semantics.
What a hub member can and cannot see
Aggregates cross the boundary. Records never do. A QI workspace is reached only through a role held in that QI.
Aggregate — the hub’s whole read contract
Counts only, each with a stated denominator. No party name, no exchange reference, no address, no document, no dollar figure, no per-person figure. One route, one strict response shape, allow-listed field by field; incomplete retrieval is an error, never a plausible partial total.
Records — stay in the QI’s own workspace
Hub access opens no record anywhere. A person who separately holds a role in a linked QI reaches that firm’s QI Ops or QI Hub console the way they always did, under that role’s own permissions. A hub-only member sees no such control, rather than a control that refuses.
Can see
The linked QIs — names and how many
Only firms with an active link, evaluated on every request.
Open exchanges per QI, split by status
Sale not yet closed · 45-day identification date next · 180-day exchange date next · no statutory date recorded. Denominator: open exchanges in scope.
Statutory-deadline buckets
Overdue · within 7 days · 8–14 · 15–30 · later, for the 45-day and 180-day clocks. Denominator: exchanges with a clock running. Pacific-date arithmetic, matching the QI Ops deadline card.
Cannot see, or cannot do
Any row: an exchange, a party, a document, a balance, an audit entry, a staff roster
Not withheld by filtering — never selected. No hub-origin read is added to any existing operational table.
Funds held, signature queues, workload per person, compliance posture, history or trends, exports
Outside this slice by decision — not a finding that every such figure is forbidden for ever.
Any QI without an active link — including one that was linked and then unlinked
The authorized set is empty for it. An empty set still carries the tenant filter; it never widens to “all”.
SSN last-4 or date of birth, for anyone, anywhere
profiles_sensitive keeps its three policies and gains no fourth.
Write an exchange, a document, wizard state, a workflow setting, or retry a run
No hub-scoped write path exists on any route. The firm’s own gates stay exactly as they are.
Propose or approve a disbursement, or move client funds by any path
Two authorized officers of the owning firm, proposer distinct from approver. A hub identity is eligible on neither side, and constructive receipt is enforced server-side.
Mark identity verified, sign or countersign for anyone, or move a 45- or 180-day date
Identity belongs to the person; eSign Act and UETA require the signer’s own intent; the dates are statutory and move only inside the owning firm with a recorded basis.
Link a QI to this hub, grant a hub membership, or reach the Open1031 platform console
Links and memberships are written by platform administrators only. Flags, credentials, impersonation and data lifecycle stay on the platform’s side of the line.
Why the narrow read, stated once. Opening operational rows to a party outside the licensed QI is a widening of need-to-know that needs an explicit scope decision plus a Reg P privacy-notice update and a written safeguards agreement — selecting one QI does not waive any of that. So this slice ships the aggregate contract, and a wider one is a later decision with its own data, API, authorization and legal work, not a copy change here.
Inside one org — divisions
Shape B, shown at full depth for Meridian Northeast · 3 divisions · 12 coordinators · 342 files
Commercial
MK M. Kwon · division manager
Coordinators5
Active files158
Clocks within 7 days3
account_typedivision
Residential
AB A. Bishara · division manager
Coordinators4
Active files111
Clocks within 7 days1
account_typedivision
Reverse & Improvement
DF D. Ferraro · division manager
Coordinators3
Active files73
Clocks within 7 days1
account_typedivision
Heaviest books across the linked orgs
Staffing data, not client data — this is one of the few row-level lists that legitimately spans orgs Load ceiling · 45 files
TBT. BottenbergMPNCommercial
52over
SOS. OsmanMNECommercial
44
RDR. DelgadoMGCCommercial
41
JTJ. TorresMMWReverse
38
MKM. KwonMNECommercial
36
LPL. PhamGLXno division
33
A division is a grouping, not a scope. Re-tagging a file’s division changes whose queue it lands in and changes nothing about who is liable for it — the owning org is still the QI of record, the escrow is still the org’s, the four-eyes pair is still drawn from the org. Whether a manager may see a sibling division’s files is still open: the recommendation is a soft filter they can widen, with hard isolation reserved for a contractual requirement and its own ADR, because hard isolation means real RLS work and real isolation tests, not a query change.
Firm compliance posture Shape B
Meridian Northeast · one org, read-only. Each record is managed in QI Ops, and every card links there.
Review state Every state per surfaces/states-gallery.html. The demo shell shows Loaded only; ?state=empty deep-links.

State QI Licenses

4 licenses
CAQI-2021-04471
Renewal · Aug 26, 2026
12d remaining
WAQI-2023-01188Nov 3, 202681d remaining
COQI-2022-00932Jan 15, 2027154d remaining
NVQI-2024-00217Mar 2, 2027200d remaining
Manage in QI Ops
No records yet
Track each state QI license number and renewal date to surface renewal countdowns here.

Bond / E&O Coverage

2 policies
E&O Insurance
Northlake Specialty Insurance
Coverage $2,000,000Expires Oct 1, 2026
48d remaining
Fidelity Bond
Cascadia Fidelity & Surety
Coverage $1,000,000Expires Jan 9, 2027
148d remaining
Manage in QI Ops
No records yet
Track fidelity bond and E&O insurance coverage and expiration to surface renewal countdowns here.

Compliance Program Cadence

not independently verified
BSA/AML Program
Morgan Lee · Next due Aug 20, 2026
6d remaining
SOC 2 Type II
Avery Chen · Next due Aug 26, 2026
12d remaining
Form ADV (RIA)
Jordan Patel · Next due Oct 1, 2026
48d remaining
Manage in QI Ops
No records yet
Track the SOC 2, BSA/AML, and Form ADV owner, status, and next due date to surface renewal countdowns here.

Control Register — 84 controls across 11 regimes

51 Active · 17 Draft · 9 Compensating · 6 Deferred · 1 Pending Applicability Determination
Regime Controls By status
IRS §1031 / Treas. Reg. §1.1031(k)-122
Active 18Draft 4
SOC 2 Type II25
Active 17Compensating 6Draft 2
GLBA + Reg P / Safeguards Rule (16 CFR §314)7
Compensating 3Active 2Deferred 2
BSA / AML / OFAC6
Draft 4Deferred 1Active 1
State QI statutes3
Active 1Draft 1Deferred 1
eSign Act + UETA6
Draft 3Active 3
CCPA / CPRA4
Deferred 2Active 2
Investment Advisers Act (exposure, not registration)6
Draft 3Active 3
IRS Pub 10751
Pending Applicability Determination 1
Securities Act / Regulation D (Reg D Rule 506(c))3
Active 3
TCPA (SMS/voice consent)1
Active 1
Nothing here is editable, and nothing here claims to have checked anything. The cards show the records the firm keeps in QI Ops — licences, bond and E&O, the cadence register — and the control register that ships with the app. A date is a date the firm entered, and the pill counts the days to it. This section carries no verification stamp, no trend and no view of another org.
Build contract — QI Hub tier (Shape A revised 2026-09-12, issue 2739 / 3050 Track C)
1 · Two features, two migrations, two permission models. Shape A (a multi-QI hub across firms) and Shape B (offices inside one firm) ship independently and share no code. Anything that would let one scope helper serve both is a rejection: intra-org grouping must never travel through the helper that crosses the tenant boundary.
2 · The hub is structurally incapable of being a QI. It is not an organizations row, is never a valid owning_org_id, holds no licence and no bond, and appears on neither side of a disbursement pair. Enforce it in the schema, not in a guard clause — a guard clause is something a future PR can delete.
3 · Additive hub tables, a dedicated hub-read boundary, and no widening anywhere else. Three new sibling tables — qi_hubs, qi_hub_links (one active link per QI; unlink is soft, relink inserts a new row under an active-only unique constraint), qi_hub_memberships (one read-only hub_viewer role) — with their own RLS and backstop, read through the qiHubScope resolver (named apart from the exchange-wizard hubScopes helper, which filters inside one tenant); the three tables are API-only with no direct anon/authenticated SELECT (our bounded choice, aligned with the Proposed ADR-057 default, not an operating rule). A platform-only read of a firm's standing link record is itself audited before the response. No existing table is altered; no existing SELECT policy on any operational table is rewritten or widened for a hub origin — not exchanges, not audit_log, not org_memberships. The existing requireTier / requireOrgAdmin / requireOrgOwner gates are untouched; the hub gets its own narrow route boundary whose resolver binds the requested hub, the actor’s active membership and the selected QI’s active link on every request and fails closed on any miss. Because the API runs on the service-role key, the route filter is the load-bearing control; RLS on the new tables is defence in depth.
4 · Aggregates cross; records never do. The hub-read response is a strict allow-list: linked-QI names and count, per-QI open-exchange status counts (sale not yet closed · 45-day date binds next · 180-day date binds next · no statutory date recorded), statutory-deadline bucket counts on the date that binds each exchange next, each with its denominator. One shared classifier with tests supplies every bucket including the explicit no-date category; the hub never derives a bucket by subtraction and never re-implements statutory arithmetic. Never a party name, exchange reference, address, document, per-person figure, funds amount, signature metric, audit row or staff roster. profiles_sensitive keeps its three policies and gains no fourth. The aggregate is one statement that starts from the hub’s authorized links and left-joins the counts, so a linked QI with nothing open is an explicit zero group and a missing group cannot be mistaken for a retrieval failure; the only failure is the statement itself, and it fails the whole request rather than returning a partial sum. There is no drill-down: a QI workspace is entered only through a role the person separately holds in that firm, under that role’s own permissions — the link is rendered from the actor’s own org memberships as already resolved for their session, intersected client-side with the linked-QI list; the hub route never queries org_memberships and the rollup carries no per-actor field.
5 · Money is untouchable from here. No path on this tier proposes, approves, releases or redirects a disbursement; two authorized officers of the owning firm, proposer distinct from approver, authorize it, and an exchanger has no fund-movement path anywhere in the product.
6 · Statutory clocks are not administrable. The 45- and 180-day dates move only inside the owning firm with a recorded basis — never from this tier. An overdue bucket renders in the alarm state while it is non-zero and must never resolve to a neutral or satisfied appearance because it was acknowledged or scrolled past. Bucket arithmetic reuses the QI Ops deadline classification (Pacific dates, effective exchange-period bounds) extended into one shared classifier that returns every bucket and the no-date category; the hub never re-implements it and never labels a column as a concurrently running clock — each exchange is counted once on the date that binds it next.
7 · Identity is the first gate and it belongs to the person. No role at any tier can mark KYC verified for an exchanger, and no “sign on behalf” affordance may exist anywhere — eSign Act and UETA require the signer’s own intent, so the control is absent rather than permission-gated.
8 · Shared configuration is deferred, not designed. Nothing on this surface publishes, inherits or resolves a setting. Any hub default is a later, reviewed authority and provenance decision against the shipped tiered workflow configuration (ADR-053) — no second resolver, no write-through, no fee schedule, credential or tenancy election ever inherited from a hub role.
9 · People administration is deferred, and its gate is legal, not technical. This slice has no write path from the hub into any firm. Platform administrators provision hubs, link and unlink QIs, and grant and revoke hub memberships; a hub cannot widen its own scope. Cross-QI staff administration waits on a STATEQI-003 determination with counsel; when designed it uses the firm’s real ladder (org_staff → org_admin → org_owner), refuses self-targeting and owner or platform grants, and never modifies an existing owner row. Hub membership and firm membership are separate grants: revoking one never deletes the other, and neither confers the other.
10 · One scope selector, its own control. All linked QIs or one selected QI, as a labelled select with a live announcement and a persistent breadcrumb segment. The QI Ops queue’s My files / My team segment is not reused for its semantics — those resolve a person’s book and office inside one firm — and a firm’s office filter never widens across firms. Unknown or unauthorized scope in the URL resolves to a non-enumerating unavailable state, never silently to all QIs. Loading and error states show no figure from a previous scope. A revoked link or membership removes the QI and its figures from the payload, server-side — never by concealing them in the view — and the M4 gate asserts on the response body and the emptied client cache, not on rendered text; membership revocation also removes the hub name and the membership role from the chrome and collapses the breadcrumb to the tier name. The built live region and breadcrumb set the firm name with textContent (React text children), never markup: scopeName is tenant-supplied; state colour is set by class, never by an inline style; the table scroll cue is measured by a ResizeObserver that is disconnected on unmount, not by a bare resize listener; a successful read reflects the current authorized set and never infers an unlink event from an older cache — there is no hub-side "link ended" notice. All of this holds on the next request, with no token refresh or re-login required.
11 · Provenance is stated in these notes, not on the surface. The multi-QI hub is designed, not shipped; no screenshot of it may be narrated as a shipped capability. Product copy carries no build-status label (AGENTS.md § Product UI copy); the tier’s product name is QI Hub (issue 3026) and every occurrence renders through .tier-name. A review of this file reads the states through ?hubState=, the Shape B posture states through ?state=.
12 · Firm compliance posture is Shape B, read-only, and the S5 canon. Section 10 (issue 3248, founder ruling D-6 on issue 2739) is what the QI Hub compliance page is built from: four read-only cards that mirror the QI Ops ComplianceSection — State QI Licenses, Bond / E&O Coverage, Compliance Program Cadence, Control Register — with every label reused verbatim from packages/web-app/src/pages/admin/qi/ComplianceSection.tsx, the cadence urgency pill from lib/cadenceUrgency.ts, and every card linking to the QI Ops page that owns the record. Absent by rule: last-verified stamps, continuous-check claims, history or trend figures (issue 2678), fund or signature figures, and any cross-org language. The register card never loads, empties or errors because it ships with the app. No cross-QI posture is drawn on this surface.
Fully tokenized against ../tokens.css — no raw hex, no inline color outside token references. Light and dark are both designed. The tier accent --tier is [PROPOSED]: add it to packages/web-app/src/index.css in :root and .dark before writing a call site. All firms, people and figures in the Shape A sections are synthetic; the unlinked third QI in the fixture never appears here. Sections 9–10 (Shape B) are preserved legacy content outside this revision's scope.