Skip to content

Insights & Analytics

This section covers DreamStream's visualization tools that help users understand patterns in their dream life.


A comprehensive statistics dashboard for dream health and habits. - Visual: 4-card hero row + analytical sections. - Insight: Tracks streaks, total counts, type breakdowns, and top dream signs.

A psychological map of your emotional landscape. - Visual: Radar chart with axes for People, Tension, Feelings, Places, Body, Pressure. - Insight: Toggle between Patterns and Emotions. Patterns: People, Tension, Feelings, Places, Body, Pressure. Emotions: Peace, Love, Joy, Fear, Anger, Sadness, Unease. Stress is a separate metric.

A visual timeline of your subconscious activity. - Visual: Monthly grid with color-coded dream types. - Trend: Track streaks and dream frequency.

A periodic AI report built from the user's latest 50 dreams. - Refresh: Regenerates after 3 new dreams, or after 7 days if at least one new dream was logged. - Context: Requires 3+ real dreams (samples excluded). - Output: Multi-tab modal + PDF export + shareable summary.


1) Dream Activity (Aggregate Stats)

The Dream Activity modal is the central hub for quantitative dream data. It follows an inverted pyramid structure: headline numbers at the top, then more detailed patterns below.

Hero Stats Row

Four compact cards providing immediate feedback on logging habits:

Metric Logic Visual Cue
Total Count of all dreams. Violet accent
Week Count of dreams in the last 7 days. Teal accent
Month Count of dreams in the last 30 days. Amber accent
Year Count of dreams in the current calendar year. Rose accent

Dream Type Breakdown

A list of all dream types (Lucid, Nightmare, etc.) sorted by frequency.

  • Temporal Insights: Tapping a type expands to reveal:
    • Most common day: The day of the week this type is most frequent.
    • Peak month: The calendar month with the highest count.
    • First/Most Recent: Historical bounds for this dream type.

Top Dream Signs (Tags)

Visualizes the most frequent dream signs across the user's history.

  • Sources: Signs come from AI analysis plus any user edits in Dream Detail. Changes update the stats the next time the dashboard refreshes.
  • Filtering: Legacy domain tags are filtered out to spotlight personal dream signs (e.g., Flying, Old House, Teeth).
  • Frequency Bar: A proportional bar showing how common the sign is relative to the top sign.
  • Interactivity (Tag Explore): Tapping a sign opens a sub-modal listing every dream containing that sign. Each dream in the list shows a thumbnail, title, date, and dream type badge.

Track All Dreams

A dedicated section for exploring dreams by date:

  • Date Selection: Users select a date from the Dream Calendar below.
  • Dream List: Shows all dreams logged on that date with:
    • Dream title (numbered)
    • Type indicator dot (color-coded)
    • Type label text
    • Navigation chevron to open dream detail
  • Empty State: If no date is selected, displays: "Tap a date on the calendar to view dreams."
  • No Dreams State: If selected date has no dreams, displays the date with a "No dreams recorded" message.

2) Dream Radar

The Dream Radar is a radar chart that visualizes dream-pattern buckets based on the user's Dream Signs.

What users see

  • A polygon shape on a radar/spider chart
  • Each axis represents a stable pattern: People, Tension, Feelings, Places, Body, Pressure
  • The polygon extends toward patterns that show up more often in the selected time range
  • Hoverable points show exact percentages and the top contributing signs
  • Stress is shown as a separate line summary (avg stress + % high-stress nights)
  • A toggle to switch between Patterns and Emotions

Time range filtering

Users can filter the radar by:

  • 7D – Last 7 days
  • 30D – Last 30 days
  • ALL – All dreams

Spot recent changes

Use the 7D filter to see how your recent dreams compare to your overall patterns. This helps identify temporary stressors or mood shifts.

How buckets are determined

Dream Radar is based on the user's Dream Signs, plus a small set of stable "pattern tags" the AI adds during analysis.

  • Each analyzed dream gets 2-3 pattern tags chosen from: people, tension, feelings, places, body, pressure.
  • Pattern tags are used for analytics and are not shown as Dream Signs in the UI.
  • We avoid relying on the full dream story text so the profile stays explainable. You can always see the top Dream Signs and example dreams behind a pattern.

Scoring (share of pattern tags)

Radar values represent the share of pattern tags that fall into each pattern within the selected time range.

Example: if a user keeps seeing signs like Home, School, and Journey, their Places pattern will trend higher.

Stress metric (separate)

Stress is not a radar axis. Stress summary is computed from dreams in the selected range:

  • High-stress night if stress level β‰₯ 7, or dream type is Nightmare/Sleep Paralysis

Emotions view

In the Emotions view, Dream Radar shows a stable set of emotion axes:

  • Peace
  • Love
  • Joy
  • Fear
  • Anger
  • Sadness
  • Unease

How it works

  • Primary source: the user's selected feelings when logging (stored on the dream as emotions).
  • Fallback: if a dream has no selected feelings, DreamStream can infer a small emotion signal from the AI Dream Signs (for example, a dream sign like "Fear" contributes to the Fear axis).

How it is calculated

  • Each axis shows the share of dreams in the selected range where that emotion appears at least once.
  • Avg stress is the numeric average across dreams with a recorded stress level

Interactivity

  • Hover/tap shows the bucket name, percentage, and top contributing signs
  • Tapping an axis opens a detail panel with:
    • top signs for that pattern
    • example dreams in the selected range

3) Dream Calendar

The Dream Calendar shows logging activity in a familiar monthly grid format.

What users see

  • A monthly calendar grid
  • Days with logged dreams show colored dots
  • Dot colors indicate dream type:
Dream Type Color
Normal Violet
Nightmare Red/Rose
Lucid Yellow/Amber
Recurring Purple
Daydream Cyan/Sky
Sleep Paralysis Pink/Fuchsia
False Awakening Orange
Fragment Teal

"Didn't remember" is a separate habit marker (not a dream entry):

  • A day with no dreams but a Didn't remember marker shows a subtle gray dot.
  • The legend includes Didn't remember only when it exists in the visible month.

Multiple dreams per day

If a user logs multiple dreams on one day, up to 3 dots appear (one per dream, showing the first 3).

  • Left/Right arrows to change months
  • Interaction: Tapping a day with dreams highlights them in the "Track All Dreams" section below the calendar.
  • If a day has Didn't remember (and no dreams), the selected-day panel shows "Didn't remember" with a delete option.
  • Empty State: If no date is selected, the section displays guidance: "Tap a date on the calendar to view dreams."

Legend

A legend appears at the bottom showing only the dream types that exist in the user's data, plus Didn't remember only when it exists in the visible month.


4) Deep Insights

Deep Insights is DreamStream's most sophisticated feature: an AI-generated psychological synthesis of the user's recent dream history, grounded in evidence from their own entries.

Where it appears

  • Home Dashboard via the "Deep Insights" card
  • Opens as a modal overlay

Availability & gating

Requirements

  • Signed in
  • At least 3 real dreams (sample/tutorial dreams are excluded)
  • If fewer than 3, the modal shows "Need a few more dreams" and no background job starts

Analysis scope (what gets analyzed)

50-dream limit

The AI report reads the most recent 50 dreams (or fewer if the user has less).

  • The report stores the number of dreams analyzed.
  • Evidence references are restricted to that same 50-dream window.

Refresh logic & caching

Deep Insights is cached on the user profile and reused until stale.

The report regenerates when:

  • There are 3+ new dreams since the last report, OR
  • The report is older than 7 days and at least one new dream has been logged, OR
  • The report format was upgraded (new fields were added)

If the report is older than 7 days but no new dreams have been logged, the modal shows: β€œNo new dreams since your last report... Log one to refresh.”

Background generation (what the user experiences)

  • Opening the modal triggers a background job if no fresh report exists
  • Users see animated loading messages and can close the modal
  • When complete, the app can notify the user (β€œDeep Insights Ready”) and the report appears instantly if the modal is open
  • Most sections include small evidence chips referencing specific dreams
  • Chips show the dream title + date (with a fallback label if needed)
  • Evidence stays intentionally short and skimmable
  • When evidence is weak, sections omit evidence rather than guessing

Sharing & export

  • Share uses the native share sheet when available, and falls back to copying a text summary
  • Download generates a PDF of the current Deep Insights report

Deep Insights Tabs (3–5 total, dynamic order)

The modal can show up to five tabs depending on the data available. Tab numbers represent dynamic display positions; the UI should display only present tabs sequentially. Action Plan and Lucid Triggers appear only when available.

  • Mind State (always)
  • Action Plan (only if takeaways/prompts/plan/practices/triggers exist)
  • Recurring Patterns (always)
  • Evolution (always)
  • Lucid Triggers (only if the user has lucid dreams)

Mind State (always)

Section What it shows
Dominant Archetype The leading Jungian archetype (Hero, Sage, Explorer, etc.)
Summary Short, grounded summary of the current psychological tone (with evidence)
Try this A small next step pulled from the Action Plan (Weekly Plan or Practices)
Emerging Trajectory Top 3 dream-pattern buckets, with top contributing signs
Dreamer's Warning Appears if Tension or Feelings is rising sharply (plus top contributing signs)
Emotional Trajectory One-sentence emotional shift summary (with evidence)
Waking Life Connections 1-2 sentence link between day residue and dream patterns (with evidence)
Progress Metrics Dreams this month, Momentum vs last month, and average stress
Stress Chart 8-week bar chart of stress levels over time
Dream pattern bucket logic (used across Mind State + Evolution)
  • DreamStream uses Dream Signs (symbols, people, places, feelings, actions) and groups them into stable patterns: People, Tension, Feelings, Places, Body, Pressure.
  • Metrics in the UI (Emerging Trajectory, Dreamer's Warning, Pattern Shifts, Dynamic Pairings) are calculated from all real dreams (samples excluded).
  • The narrative report text is based on the 50-dream AI window.
  • Rationale: UI metrics show long-term patterns, while the report focuses on recent context.
  • Suggested UI line: "Recent focus: last 50 dreams (Narrative). All time patterns (Metrics)."
  • Dream signs come from AI analysis, and users can add/edit signs in Dream Detail. Those edits influence the pattern summaries.

Action Plan (conditional)

A practical layer that translates insights into next steps.

Section What it shows
Key Takeaways The AI is prompted to return 3 one-sentence takeaways (with evidence)
Reflection Prompts The AI is prompted to return 2 reflective questions (with evidence)
Weekly Plan The AI is prompted to return 3 short, day-labeled actions
Waking Life Triggers The AI is prompted to return 2–3 real-world triggers and their dream impact
Personalized Practices The AI is prompted to return 3 tailored rituals (healing, lucid, grounding, reflection, creative)

Recurring Patterns (always)

Highlights people and entities that repeat across dreams.

  • The AI is prompted to include only elements seen in 2+ dreams (max 6 total)
  • Filters: All, Known People, Entities
  • Known People uses the user’s saved profile list (including aliases)
For each recurring element Data shown
Name Who/what it is
Type Person or Entity
Frequency Count across the 50-dream window
First/Last Seen Date range
Sentiment Emotional tone shift
Note One-sentence insight
Avatar Shown if matched to a Known Person

Evolution (always)

Shows how patterns are shifting.

Section What it shows
Dream Evolution Narrative comparing early vs recent pattern trends (with evidence)
Pattern Shifts Rising vs cooling patterns by comparing the most recent 12 dreams vs the prior 12
Dynamic Pairings Patterns that tend to co-occur, plus shared signs and co-occurrence counts

If there isn't enough data (less than 12 dreams in either time window, fewer than 24 total), the Pattern Shifts panel shows a "log more dreams" placeholder.

Lucid Triggers (conditional)

Only appears if the user has lucid dreams.

  • Shows the top 3 lucidity triggers (dream signs that correlate with dream control)
  • Includes a CTA to open Learn guides

Implementation map (for accuracy checks)

Component files
  • Dream Activity Modal: components/HomeDashboard.tsx (Dream Stats modal section)
  • Dream Radar: components/DreamRadar.tsx
  • Dream Calendar: components/DreamCalendar.tsx
  • Deep Insights Modal: components/DeepInsightsModal.tsx
  • Dream sign normalization: src/lib/themes.ts
  • Job processing: supabase/functions/process-generation-jobs/index.ts


← Home Β· Nightmare Healing β†’