alumni_lookup

Phase 1B: Metrics Foundation

Champion Portal Development Phase 1B

Estimated Effort: 2–3 weeks
Focus: Activity Dashboard, Core Metrics Infrastructure

Prerequisites: Phase 1 complete, Phase 1A recommended

Related Documents:


Table of Contents

  1. Overview
  2. Why This Phase Exists
  3. Sub-Phases
  4. Metrics Framework
  5. Scope
  6. Definition of Success
  7. Tests to Create
  8. Documentation Updates

1. Overview

Phase 1B establishes the metrics infrastructure and activity dashboard. This ensures we can measure impact from day one and grow the dashboard as new features are added.

After Phase 1B, the Engagement Team can:

Design Principle: Every subsequent phase adds its metrics to this dashboard. We don’t build features without building their measurements.


2. Why This Phase Exists

From JOBS-TO-BE-DONE.md:

Job E2: See the Big Picture

“When I’m reporting to leadership or planning strategy, I want to see Champion activity metrics at a glance, so I can demonstrate value and identify opportunities.”

Importance: 🔥 Critical
Current Satisfaction: ❌ Very Low
Opportunity Score: 🎯 High

Why not wait for Phase 6?

Development Principle:

Build the measurement tool with the feature.

Every phase should include its corresponding metrics integration:


3. Sub-Phases

Phase 1B has 3 sub-phases:

Sub-Phase Name Est. Time
1B.1 Activity Tracking Infrastructure 2–3 days
1B.2 Dashboard UI 3–4 days
1B.3 Exports & Scheduled Reports 2–3 days

Sub-Phase 1B.1: Activity Tracking Infrastructure

Goal: Create the data infrastructure to track Champion activities.

Deliverables:

Event Types (Initial): | Event | Description | Recorded | |——-|————-|———-| | login | Champion logged in | On sign_in | | profile_view | Champion viewed another profile | On profile#show | | profile_edit | Champion updated their profile | On profile#update | | directory_search | Champion searched directory | On directory#index with query | | contact_sent | Champion sent a message | On message create | | contact_received | Champion received a message | On message create |

Database Schema:

create_table :cp_activity_events do |t|
  t.references :champion, null: false, foreign_key: { to_table: :cp_champions }
  t.string :event_type, null: false
  t.jsonb :metadata, default: {}
  t.datetime :occurred_at, null: false
  t.timestamps
end

add_index :cp_activity_events, [:event_type, :occurred_at]
add_index :cp_activity_events, [:champion_id, :event_type, :occurred_at]

ActivityRecorder Service:

# Usage: Cp::ActivityRecorder.record(champion, :login)
# Usage: Cp::ActivityRecorder.record(champion, :profile_view, target_id: other_champion.id)

Sub-Phase 1B.2: Dashboard UI

Goal: Create a staff-facing dashboard showing Champion Portal metrics.

Deliverables:

Dashboard Location:

Recommend Option A: Staff already use Lookup Portal for Champion management. Add a “Champion Portal Metrics” section there.

Metrics Cards (MVP): | Metric | Description | |——–|————-| | Total Champions | All verified Champions | | Verified This Month | New verifications | | Active This Week | Champions with any activity | | Monthly Active | Champions active in last 30 days | | Directory Searches | Total searches this period | | Messages Sent | Contact messages this period |

Chart: Activity Trend Line chart showing daily activity count over selected period.

Table: City Breakdown | City | Champions | Active (30d) | Messages Sent | |——|———–|————–|—————|

Recent Activity Feed:

• Sarah J. (Nashville) updated her profile — 2 hours ago
• Mike T. (Atlanta) searched the directory — 3 hours ago
• Lisa R. (Dallas) sent a message to Tom K. — 5 hours ago

UI Design Notes:


Sub-Phase 1B.3: Exports & Scheduled Reports

Goal: Enable metric exports and optional email summaries.

Deliverables:

Export Formats:

Weekly Digest Email:

Subject: Champion Portal Weekly Summary — Dec 2-8, 2025

Hi [Name],

Here's this week's Champion Portal activity:

📊 Key Metrics
• 5 new Champions verified (127 total)
• 89 Champions active this week (70% engagement)
• 156 directory searches
• 23 messages sent between Champions

🏙️ Most Active Cities
1. Nashville (34 active)
2. Atlanta (18 active)
3. Dallas (12 active)

🌟 Highlights
• First Champion verified in Portland, OR
• Highest daily activity: Tuesday (47 logins)

View full dashboard: [Link]

4. Metrics Framework

This framework ensures each subsequent phase adds its metrics:

Phase 2 Metrics (Events/Stories)

| Metric | Event Type | |——–|————| | Events submitted | event_submitted | | Events approved | event_approved | | Event RSVPs | event_rsvp | | Stories submitted | story_submitted | | Stories published | story_published |

Phase 3 Metrics (Discussion Boards)

| Metric | Event Type | |——–|————| | Posts created | post_created | | Comments added | comment_added | | Reactions given | reaction_added |

Phase 4 Metrics (Messaging)

| Metric | Event Type | |——–|————| | In-app messages sent | message_sent | | Conversations started | conversation_started | | Message read | message_read |


5. Scope

In Scope

Out of Scope (Phase 6)


6. Definition of Success

Functional Acceptance Criteria

Staff Experience


7. Tests to Create

Model Tests (test/models/cp/activity_event_test.rb)

Service Tests (test/services/cp/activity_recorder_test.rb)

Controller Tests


8. Documentation Updates

After completing Phase 1B:


Questions to Resolve

Question Status Notes
Dashboard in Lookup or Champion Portal? Recommend Lookup Staff already use Lookup Portal
Real-time or cached metrics? Cached Aggregate hourly, real-time for recent feed
Who receives weekly digest? TBD Engagement Team + configurable list

Recognition Opportunities

Per JOBS-TO-BE-DONE.md Job C10 (Feel Recognized):

This dashboard also enables recognition features:

These could be surfaced:

Principle: Always look for ways to recognize contribution. Little nudges matter.