## Purpose Provide customer-specific Installed Base and consumption exploration without disrupting the main opportunity view. ## ADDED Requirements ### Requirement: Installed Base uses the registry identifier Installed Base SHALL first resolve account summary and query using its `registryId` with the SAIB authorization. It SHALL continue pagination until `hasMore=false`, and reject invalid or stalled pages instead of presenting a partial list as complete. #### Scenario: More installed items exist - **WHEN** an Installed Base page returns `hasMore=true` - **THEN** subsequent pages are loaded before the complete result is presented ### Requirement: Installed Base avoids duplicate customer presentation Installed Base SHALL show the customer in the modal header, omit the Customer column, and provide searchable sortable data with loading skeletons. #### Scenario: User searches installed items - **WHEN** search text is entered - **THEN** loaded rows and the result count update locally without another account query ### Requirement: Consumption follows the selected plan Customer consumption SHALL resolve available account plans and load trends for the selected plan with quarterly, monthly, weekly and daily periods. Plan detail loading SHALL be independent of trend loading and failed details SHALL not block the chart. #### Scenario: User switches plans - **WHEN** the selected plan changes while an earlier plan request is pending - **THEN** late results from the earlier plan do not replace the selected plan's view ### Requirement: Projection details preserve safe order navigation Consumption plan details SHALL expose Forfeit and Overage information with nested line details in interactive tooltips. Only HTTPS order links on `accountdashboard.oracle.com` SHALL be clickable. #### Scenario: Unsafe order URL - **WHEN** a returned order URL uses a different host or unsupported scheme - **THEN** the detail remains readable without offering that URL as a clickable order link ### Requirement: Rate Card queries the active plan Rate Card SHALL query using the selected plan's `subPlanNum` and OCICONS authorization, show plan/customer context and provide search, sorting and multi-selection of distinct Order Numbers. The current request SHALL use a 10000-record limit without implying unsupported cursor pagination. #### Scenario: Order filter isolates one choice - **WHEN** all order numbers are selected and the user clicks one order - **THEN** only that order remains selected and search continues to combine with the order filter #### Scenario: Rate Card closes while loading - **WHEN** the drawer closes before its request completes - **THEN** the late result does not reopen or overwrite a different active plan view ### Requirement: Customer tables sort and search by meaningful values Customer table search SHALL match case-insensitively and accent-insensitively across displayed values. Sorting SHALL use numeric or date values where applicable, and restore each supported table's saved ordering. #### Scenario: Numeric amount ordering - **WHEN** the user sorts a customer table by a monetary column - **THEN** rows are ordered by numeric amount rather than by the formatted text