# Navigation Visibility & Tab Access Control > Added: 2026-02-20 ## Design Philosophy The Bytelyst dashboard follows a **"Contextual Depth"** navigation model: - **Consumer-facing tabs** are simple, action-oriented, and confidence-building. - **Technical/operational tabs** are restricted to admins — they contain raw signal data, rule pass/fail states, and engine internals that are misleading without deep engine knowledge. ### Core Principle > A rule failing (❌) is **normal and correct** — it's the filtering system working. But visually, ❌ icons look like errors. Customers without context interpret "fail" as "broken." This generates anxiety and unnecessary support tickets. --- ## Tab Visibility Matrix | Tab | All Users | Admin Only | Rationale | |:---|:---:|:---:|:---| | Overview | ✅ | | High-level portfolio summary | | My Strategies | ✅ | | Core user experience | | ✨ Marketplace | ✅ | | Strategy discovery & adoption | | 💎 Plans | ✅ | | Subscription conversion | | 🛠️ Build Strategy | ✅ | | Guided self-service wizard | | Trade History | ✅ | | User accountability & records | | Positions & Orders | ✅ | | Current state awareness | | Settings | ✅ | | Basic bot configuration | | **Signals** | | ✅ | Raw technical rule/indicator data — misleading without engine knowledge | | **Entries** | | ✅ | Internal watchlist/position engine state | | **🛡️ Strategy Clusters** | | ✅ | Advanced multi-profile management | | **⚙️ Admin Panel** | | ✅ | System operations & health | --- ## Why Signals and Entries Are Admin-Only ### Signals Tab Shows raw per-symbol rule evaluation output: - `TrendBiasRule`: EMA50 vs EMA200 comparison - `SessionRule`: Active trading session detection - `MomentumRule`: RSI state - `AIAnalysisRule`: Confidence scores - Rule pass/fail counts per profile **Consumer risk**: A customer sees "❌ TrendBiasRule Failed" and assumes the bot is broken, when in reality the bot is correctly waiting for a confirmed trend before entering. This contradiction between correct-behavior and perceived-failure creates support tickets and churn. ### Entries Tab Shows raw internal watchlist and position engine state — data structures that have no direct user-actionable interpretation without understanding the execution pipeline. --- ## Consumer UX Strategy Instead of exposing raw signals, consumers receive intelligence through curated, translated layers: | Raw Technical Data | Consumer-Friendly Equivalent | |:---|:---| | `TrendBiasRule: ❌ No 4H trend` | "Bot is waiting for a confirmed market direction" | | `SessionRule: ❌ TOK/SYD session` | "Bot is active only during London & New York hours" | | `RSI: 57.73` | Not shown — irrelevant to consumer | | `minRulePassRatio: 0.9` | "⚖️ Balanced Mode — requires 90% signal agreement" | This translation is handled by `src/lib/StrategyExplanationService.ts` and surfaced in the **Diagnostic Intelligence** section of each strategy card. --- ## Implementation **File**: `src/App.tsx` — tab visibility is controlled by `profile?.role === 'admin'` guard on each sensitive tab button in the `