Metrics
Model any user interaction
Set up metrics to track key user behaviors. Analyze usage, compare retention patterns, and power engaging user experiences.
// Track lesson completions in Trophy
const newState = await trophy.metrics.event('lessons-completed', {
user: {
id: user.id,
tz: 'Europe/London',
},
value: 1,
idempotencyKey: 'lesson-id',
})
// React to state changes
const newStreakLength = newState.currentStreak.length
const unlockedAchievements = newState.achievements
const newPointsAwarded = newState.pointsPowering gamification experiences for 1M+ users
Learn why product teams trust Trophy. Read our customer stories
Use case
Building blocks for retentive user experiences
Discover which user interactions are most effective at retaining users and drive personalized experiences to keep them engaged.
- Achievements
- Turn users into power users by congratulating and rewarding progress against your most retentive metrics.
- Streaks
- Create a powerful engagement incentive and encourage regular usage habits against any metric.
- Automated notifications
- Deliver personalized emails and push notifications at the perfect moment to motivate users to stay engaged.

Analytics
Deep insights into user behavior
Understand how users engage with your product, and optimize the user experience to retain users.
- Discover churn patterns
- Understand retention drop-off patterns and drive personalized experiences to claw back users and revenue.
- Focus efforts
- Identify the most effective metrics for increasing retention and iterate on user experience to keep users engaged.
- Segment and analyze
- Create custom cohorts to track user behavior over time and optimize the user experience for different groups of users.

Gamification software for modern product teams
The only gamification platform built for the modern era. Control via API or MCP and wire into your development workflow across multiple environments.
// Send engagement events and read daily aggregates
await trophy.metrics.event('distance_run', { user: { id: user.id }, value: 3.2 })
const daily = await trophy.users.metricEventSummary(user.id, 'distance_run', {
aggregation: 'daily',
startDate,
endDate,
})Trophy MCP
Sonnet 4.6 · 8 tools loaded
> Track distance events and add a 30-day daily summary endpoint for our analytics charts
Listed Trophy MCP tools · read metrics and summaries docs
(ctrl+o to expand)
I'll wire ingestion and a normalized 30-day summary:
- Capture distance_run events from activity completion
- Read daily aggregates for the last 30 days
- Normalize response fields for chart components
metrics.create({ name: 'Distance run', key: 'distance_run' })
metrics.event({ key: 'distance_run', userId: 'usr_123', value: 3.2 })
users.metricEventSummary({ userId: 'usr_123', metricKey: 'distance_run', aggregation: 'daily', days: 30 })
Metrics ingestion and daily summaries are live in staging with chart-friendly output, want this in production?



Scale with confidence
Trusted by startups and enterprises alike. Scale seamlessly from your first to your millionth user.
150M
API requests · 30D
146ms
p95 latency · 24H
100.0%
Uptime · 90D
Data encryption
TLS 1.2+ in transit and AES-256 at rest
Privacy-first
Trophy operates without PII by default
Secure API keys
Rotation and revocation on demand
Fault tolerant
Automatic failover through redundancy
Rate limited
Per-endpoint limits maintain fair use
Idempotent
Retry requests without side-effects
Customers
Loved by consumer product teams
Learn why growing product teams are increasing engagement with Trophy.
Get started
Up and running in minutes
FAQ
Frequently asked questions
Have a different question and can’t find the answer you’re looking for? Send us an email.




