## ADDED Requirements ### Requirement: TWAP observations belong to existing filled positions The service SHALL publish immutable TWAP observations only on matching existing Phoenix positions whose order has a positive actual fill and remaining executions. It SHALL preserve counters, quantities, nullable price and observation/estimated times without UI formatting. No new position SHALL be synthesized. TWAP errors SHALL retain the complete prior venue observation with failure status. Polling frequency SHALL remain unchanged. #### Scenario: Unfilled order or no position - **WHEN** an active TWAP has no actual fills or has no matching open position - **THEN** it is absent from every overview row and cannot create a visible venue #### Scenario: TWAP read fails - **WHEN** the TWAP read fails after a successful venue observation - **THEN** prior positions, TWAP observations and original timestamps remain with failed venue status - **AND** other venues and wallets continue refreshing