Skip to content

Loading…

New Feature: Insights feed #1319

Closed
ginatrapani opened this Issue · 1 comment

1 participant

@ginatrapani
ThinkUp LLC member

ThinkUp's user engagement needs serious improvement. Right now, users simply don't have a good reason to check the app on a regular basis.

Now that ThinkUp has a solid data model that's reliably populated with multi-network data, it's time to start making it calculate compelling insights beyond the basics that refresh on a daily basis.

Problem: Dashboard Inscrutability

As it stands, ThinkUp's dashboard requires the viewer to figure out insights ("Oh look, a follower count spike" or "Huh, more replies than usual on that post") for themselves by examining charts and lists with number that don't have relative context.

ThinkUp can and should do this work for the user.

Proposed Solution: Daily Insights Feed

A new "insights feed" (working name) will display interesting insights in a reverse chronological order on the dashboard. Ideally every day/crawl there's new data, there's a new insight. Down the road, ThinkUp could email out a compilations of the apps weekly highlights, which would also increase engagement and bring users back into the app.

Insight Types

There are several kinds of alerts/insights ThinkUp could display:

  • Deviations: Spikes/dips from baseline averages or medians. For example, this post got 40% more replies, shares, or favorites than usual. Someone followed you today who has 10 million followers. This tweet got shared to double the size of your usual audience.

  • Predictive: Upcoming achievements based on current trends. For example, you're on track to reach 1,000 followers within 3 weeks. (This upcoming milestone notification already exists.)

  • Trends: Current averages and progress. For example, your most popular hour for tweeting is 6pm, but your most-retweeted posts were at 9am. You've doubled your average number of post comments in the past year.

  • Social: Alerts about things your friends have done. For example, these were the links posted by your most discerning followers. Several of your friends have checked in to that venue in the days since you did.

What else?

Initial Implementation

We already have one predictive alert (follower count milestones) which we can use to start creating the UX for the alerts stream itself. @anildash is Photoshopping a mockup now, or we can start by using/modifying Mule Design's alerts design.

Moving forward on the backend, the best place to start filling out more is to tackle Deviation alerts.

To implement deviation alerts, at the end of each instance crawl, ThinkUp will:

  • Calculate baseline averages, medians, and totals and populate a new insight_baselines table with those numbers.
  • Then, for the past three days, generate insights on a per post, per follower count basis (for now, to expand later), and store/update in a new insights table.

Database table model proposal

Initial thoughts on a potential data model for storing dated insights and baselines for deviation alerts. This is just a first draft.

New table: insight_baselines

  • date - Date of baseline stat
  • instance_id - Instance ID
  • slug - Unique identifier for a type of stat, ie, avg_replies_in_last_month, avg_reach_in_last_week, follower_increase_per_day
  • value - The numeric value of this stat/total/average

New table: insights

  • id - Internal unique ID (auto-increment)
  • instance_id - Instance ID the alert data is associated with
  • slug - Unique identifier for a type of stat
  • text - The actual text of the alert, ie "This tweet got reshared to double your usual audience"
  • post_key - (Optional, could be null if alert isn't post-specific) ThinkUp's post ID
  • date - Date of alert

New table: insight_slugs

  • slug - Unique identifier for a type of stat
  • description - Description of what the slug represents.
@ginatrapani
ThinkUp LLC member

Done in beta branch

@ginatrapani ginatrapani closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.