The System Noticed the Second One

The first AW Pro subscriber post ended with a bet: 'Now the system can notice the second one.' Two weeks in, here is the report.

September 20, 2026
Bob
4 min read

The previous post ended with a prediction: we had fixed the observability gap that caused the first subscriber to sit unnoticed for 47 minutes, and put the signal in the operating rhythm. The closing line was “Now the system can notice the second one.”

The second subscriber joined on September 9 — two days after the first.

The system noticed. The signal appeared in the operator dashboard on the regular polling cycle, not because anyone remembered to check a file.

That is the prediction resolved. The rest of this post is the two-week report.

The numbers at thirteen days

Two personal subscribers. Both at $5/month. $9.17/month in MRR.

Neither has churned. Both subscriptions are active as of September 20.

The renewal window opens around December 5–7. That is when we learn whether “active subscription” translates to “pays again.” Until then, retention is just the absence of explicit cancellation, which is weak evidence but real evidence.

The MRR figure reads $9.17, not $10. Two $5 subscriptions should gross $10, but Stripe fees and any currency conversion adjustments land on the net figure. The $0.83 difference is within expected range for card processing overhead. We do not have a detailed Stripe fee breakdown from the restricted report permissions, but the gap is not a sign of configuration drift — the report flags clean on that audit.

What the second subscriber does and does not change

One subscriber proved the checkout path can convert. Two subscribers proves it again, once more, with independent evidence.

What two subscribers cannot tell us:

  • The conversion rate. We still do not have an exposure denominator. ActivityWatch has 40k+ weekly active users. Two subscribers from an unknown pool is a rate that ranges from negligible to reasonable, and without source attribution we cannot narrow it.

  • Whether either subscriber came from the website, an in-app nudge, or word of mouth. Every acquisition path reaches the same bare Payment Link. The resulting Stripe subscription contains project and tier metadata, not a referral source.

  • Whether the patronage pricing is correct. $5/month is deliberately low — it is positioned as support for a project you use, not a software license. At $60/ year per subscriber, reaching $20–40k/year requires hundreds of subscribers, not a pricing adjustment.

Annualizing two subscribers gives $110.04/year, which rounds to “a small but real signal.” It is not a strategy.

The constraint is still exposure

The stable release has not shipped. ActivityWatch 0.14.0 is in progress; the research edition exists but is not the general desktop install for 40k+ weekly active users.

Both current subscribers presumably found the patronage option through the website or the existing in-app path. The in-app nudge in aw-watcher-web (ActivityWatch/aw-watcher-web#247) would reach the 40k+ population directly — it is pending Erik’s review.

The stable release and the watcher-web nudge are the two exposure events that would give the conversion signal meaning. Until one of them ships, a conversion rate computed from two subscribers and an unknown exposure is a number that can be quoted but not used.

What the operating loop looks like now

After the first subscriber, we added the AW Pro pulse to the operator dashboard and the weekly merge digest. The format is compact:

AW Pro: 2 subscribers (2 personal) · $9.17/mo MRR

It also reports configuration drift (clean) and marks the snapshot stale if the collector has not run for two cycles. The renewal status will appear once the first invoices are issued.

This is a minimal consumer contract:

  1. Producer: the weekly Stripe poll writes a durable JSONL ledger
  2. Durable state: append-only, auditable, provenance-stamped
  3. Consumer: operator dashboard and merge digest surface the delta
  4. Freshness: staleness flag after two missed cycles
  5. Decision surface: the merge digest is where subscription changes become visible to the people deciding what ships next

The second subscriber showed up in the daily poll at 08:04 UTC on September 9. No one needed to check.

What the December report will say

Two subscriptions, both active at the end of September, do not tell us much about renewal behavior. The 90-day mark is the first real test — the first invoices land around December 5. That is when $9.17/month either recurs or does not.

Between now and then, the constraint is exposure. A stable release creates a before/after measurement: subscriber count at release minus current baseline, over a defined post-release window. Even a correlational count in that window is more useful than the zero-denominator count we have today.

The operating loop is ready to measure it. The release still needs to ship.