Skip to content

feat: add organization tier filtering with Members/Engaged/Registered tiers#755

Merged
bokelley merged 1 commit into
mainfrom
bokelley/analytics-filter-check
Jan 13, 2026
Merged

feat: add organization tier filtering with Members/Engaged/Registered tiers#755
bokelley merged 1 commit into
mainfrom
bokelley/analytics-filter-check

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • Create shared SQL filter module for consistent organization tier definitions
  • Implement three mutually exclusive tiers: Members > Engaged > Registered
  • Match Slack users to organizations by email domain for broader "Registered" coverage
  • Update admin analytics UI to display new tier columns

Test plan

  • Build succeeds
  • All 242 tests pass
  • TypeScript type check passes
  • Tested admin analytics page in browser (Vibium)
  • Verified tier column headers display correctly

🤖 Generated with Claude Code

… tiers

Introduces a consistent three-tier classification for organizations:
- Members: paying subscription (active, not canceled, amount > 0)
- Engaged: not paying, but has at least one user with engagement_score > 0
- Registered: not paying, no engaged users, but has at least one user on site or Slack

Key changes:
- Create shared SQL filter module (server/src/db/org-filters.ts)
- Update admin stats route to use shared filters
- Update admin accounts route to use shared filters
- Update admin prospects route to use shared filters
- Update admin-analytics.html UI with new tier columns

Organizations are matched to Slack users by email domain, so
"Registered" tier now includes organizations with Slack-only users
who haven't created site accounts.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@bokelley bokelley merged commit c31e9d2 into main Jan 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant