What are Streaks?

A streak is a period of consecutive days, weeks or months that a user has performed a key action on your platform. Streaks have been shown to meaningfully increase retention, particularly when the user action being tracked aligns with the core value of your product.

Use Trophy’s metric analytics to compare the retention of each user interaction, then configure streaks around these interactions to maximize retention impact.

Streaks are global to your platform, meaning that each user has a single streak across all interactions. You can decide which Metrics should contribute a user’s streak on the streaks configure page.

Key Attributes

Streak Frequency

Streaks can be configured to be daily, weekly or monthly. This means that a user must increment a metric at least once every calendar day, week or month to maintain their streak.

Trophy will automatically compute streak data for all streak frequencies, which means you can change the frequency at any time while maintaining users’ streaks. Just note that changing the frequency may be confusing for users, so best to communicate any changes ahead of time.

Streak Metrics

You can choose which metrics should contribute to a user’s streak

For example, if your platform is a language learning app, you might want to track a user’s streak based on the number of lessons completed, while also tracking a metric for the number of words learned that doesn’t affect streaks. In this case, you would configure the lessons completed metric to contribute to streak’s but not the words learned metric.

Tracking Streaks

Trophy automatically calculates streaks for all users when users increment a metric. There’s no extra work required of you to track streaks, and you can start using them right away. Just make sure that streaks are enabled in the Trophy dashboard.

Displaying Streaks

Trophy exposes streak data in two ways, which can be used to build UI elements within your applications and display streaks to users.

Take a look at our examples center for live demos of APIs in practice.

Metric Event Response

When you increment a metric for a user, the Metric API response will include the user’s current streak (if streaks are enabled).

Response
{
  "metricId": "d01dcbcb-d51e-4c12-b054-dc811dcdc623",
  "eventId": "0040fe51-6bce-4b44-b0ad-bddc4e123534",
  "total": 750,
  "achievements": [
    {
      "id": "5100fe51-6bce-6j44-b0hs-bddc4e123682",
      "trigger": "metric",
      "metricId": "5100fe51-6bce-6j44-b0hs-bddc4e123682",
      "metricName": "Words Written",
      "metricValue": 500,
      "name": "500 words written",
      "description": "Write 500 words in the app.",
      "achievedAt": "2025-04-02T00:00:00Z"
    }
  ],
  "currentStreak": {
    "length": 1,
    "frequency": "daily",
    "started": "2025-04-02",
    "periodStart": "2025-03-31",
    "periodEnd": "2025-04-05",
    "expires": "2025-04-12"
  },
  "points": {
    "total": 5,
    "added": 5,
    "awards": [
      {
        "id": "2414266f-9d02-4820-866b-47b03e87b702",
        "awarded": 5,
        "trigger": {
          "id": "8126234a-2d8c-498d-b919-2459378accad",
          "type": "metric",
          "metricName": "Words Written",
          "metricThreshold": 10,
          "points": 5
        }
      }
    ]
  }
}

This can be used to transactionally trigger UI/UX elements including:

  • Showing in-app pop-ups
  • Playing sound effects

User Streaks API

At any time, you can query the User Streaks API.

This will return the current streak for a single user, along with their recent streak history. Use the historyPeriods query parameter to control how many periods to return.

Response
{
  "length": 1,
  "frequency": "weekly",
  "started": "2025-04-02",
  "periodStart": "2025-03-31",
  "periodEnd": "2025-04-05",
  "expires": "2025-04-12",
  "streakHistory": [
    {
      "periodStart": "2025-03-02",
      "periodEnd": "2025-03-08",
      "length": 9
    },
    {
      "periodStart": "2025-03-09",
      "periodEnd": "2025-03-15",
      "length": 0
    },
    {
      "periodStart": "2025-03-16",
      "periodEnd": "2025-03-22",
      "length": 0
    },
    {
      "periodStart": "2025-03-23",
      "periodEnd": "2025-03-29",
      "length": 1
    },
    {
      "periodStart": "2025-03-30",
      "periodEnd": "2025-04-05",
      "length": 2
    },
    {
      "periodStart": "2025-04-06",
      "periodEnd": "2025-04-12",
      "length": 3
    },
    {
      "periodStart": "2025-04-13",
      "periodEnd": "2025-04-19",
      "length": 4
    }
  ]
}

Use this data to display a user’s streak history within your application.

Get Support

Want to get in touch with the Trophy team? Reach out to us via email. We’re here to help!