sequenceDiagram actor User participant UI as WealthLedger frontend participant API as WealthLedger backend participant Store as Saved investment data participant Broker as T-Bank User->>UI: Open income page / apply from,to UI->>API: GET income-analytics(accountId or all, from, to) API->>Store: Verify session, membership, selected-period coverage and operations alt Access denied or invalid period API-->>UI: Problem Details (access/input error) UI-->>User: Account/period error; preserve last applied data on invalid draft else Selected period complete Store-->>API: Confirmed selected operations and source state API-->>UI: data with selected totals/entries + meta(selected) UI-->>User: Totals and executed payment cards, no comparisons else Selected period missing or incomplete Store-->>API: Incomplete coverage + resource state API-->>UI: data null + meta(selected) UI-->>User: Loading or recoverable error, no partial final totals opt First read of missing historical interval API->>Broker: Begin bounded acquisition of missing selected interval Broker-->>Store: Publish only confirmed complete result end end Note over API,Store: No previous/year-ago interval is requested for comparison