How I measure Makerlog's progress
2 min read

How I measure Makerlog's progress

I've started evaluating our KPIs and defining them clearly to start setting actionable goals.
How I measure Makerlog's progress

I've started evaluating our KPIs and defining them clearly to start setting actionable goals. Below are Makerlog's KPIs and some improvements that can be made in how we measure our progress.

Glossary

Check this package to understand the tracking system I use in our backend for really accurate statistics.

Activity Record

A database record indicating a user’s visit/API call on a given day.

class TrackingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)
        # Order matters here,
        if request.user.is_authenticated and not is_blacklisted(request):
            Activity.objects.increment_now(user=request.user)
        return response
The middleware that tracks user activity KPIs per request

Key Engagement

Whenever a user performs an important action displaying activation (task created, reply created, thread created, comment created).

DAUs

Daily active users, the count of distinct (unique user ID) activity records on a given day.

Area for Improvement

Adjust to remove recently joined users from DAUs.

MAUs

Monthly active users, the count of distinct (unique user ID) activity records on a given month.

Area for Improvement

Lurkers are very common in communities, so measuring MAUs (with lurkers) and MAUs (activated, engaging) separately makes more sense. Adjust to that.

Stickiness

Measures how often members engage with the product.

DAU/MAU * 100

Area for Improvement

Same as MAUs: adjust for lurking and measure actual stickiness for engaged users.

Resurrected

The count of user IDs active this month but not the last.

A visual explanation (probably sucks)

Retained

The count of user IDs common between last month and this month.

Churned

The difference between MAUs this month and MAUs last month.

Other statistics

I like to optimize quite a bit for serendipitous moments: spontaneous interactions between members that create value. This is hard to measure but a rather important thing to look out for: this is what makes a community life-changing.

Closing

Do let me know your thoughts on my methodology. I like to keep it simple, overanalyzing things can lead to paralysis, so it's a very simple yet effective set of metrics.

matteing.com

Sergio Mattei

Founder and student