Skip to content

stats: add Android rating + crash-rate charts#63

Merged
ErikBjare merged 2 commits into
masterfrom
feat/android-charts
Jul 12, 2026
Merged

stats: add Android rating + crash-rate charts#63
ErikBjare merged 2 commits into
masterfrom
feat/android-charts

Conversation

@ErikBjare

Copy link
Copy Markdown
Member

Adds two charts to the Android section of /stats/, from the now-auto-collected data in ActivityWatch/stats:

  • Play Store rating over time (2019→) — shows the recent drop from ~4.2 to ~3.1
  • User-perceived crash rate (2025-06→)

Also fixes the stale 'updated manually' note (the whole Android section is auto-updated daily now).

Render android-rating.png (Play Store rating over time, 2019+) and
android-crash-rate.png (user-perceived crash rate, 2025-06+) from the
now-auto-collected data in ActivityWatch/stats. Update the Android section
note — it's auto-updated daily, not manual.
@greptile-apps

greptile-apps Bot commented Jul 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds two Android stats charts to the stats page. The main changes are:

  • New Makefile generation steps for Android rating and crash-rate PNGs.
  • New Android rating and crash-rate images in stats.pug.
  • Updated Android section copy and freshness note.

Confidence Score: 5/5

This looks safe to merge after a small wording cleanup.

  • The new image paths match the Makefile outputs.
  • The normal build path already generates img/stats before the site build.
  • The Android freshness note can overstate what this repository guarantees when upstream Play Console collection lags.

stats.pug

Important Files Changed

Filename Overview
Makefile Adds two chart generation commands using the existing stats image pattern.
stats.pug Adds the new Android chart images and updates the section copy; the freshness note should be softened.

Reviews (1): Last reviewed commit: "stats: add Android rating + crash-rate c..." | Re-trigger Greptile

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0b4b7a7b09

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Makefile
Comment on lines +71 to +72
cd stats && poetry run python analyze_stats.py --since 2019-01-01 --column 'Android Play Store rating' --title 'Android Play Store Rating' --save ../img/stats/android-rating.png
cd stats && poetry run python analyze_stats.py --since 2025-06-01 --column 'Android crash rate (%)' --title 'Android Crash Rate (user-perceived, %)' --save ../img/stats/android-crash-rate.png

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Avoid unsupported Android stat columns

On a clean CI build this target clones ActivityWatch/stats from its current default branch, and that repo's analyze_stats.py currently only merges the Android installed-devices CSV, so --column 'Android Play Store rating' exits with No such column before Jekyll can deploy. This needs to wait for/pin the stats repo version that actually exposes these columns, or the scheduled/master build will fail as soon as it reaches this new command.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already resolved: the stats-repo loaders (_load_android_crash_rate / _load_android_rating, merged into _load_data) landed on ActivityWatch/stats master in ActivityWatch/stats#22 before this PR's build ran. The branch build here passed end-to-end — the build log shows both --column 'Android Play Store rating' and --column 'Android crash rate (%)' render steps completing. So a clean master/scheduled build clones a stats repo that does expose these columns.

Comment thread stats.pug Outdated
div.small.dim (Updated manually on an irregular basis)
img.width-500(src="/img/stats/android-rating.png")
img.width-500(src="/img/stats/android-crash-rate.png")
div.small.dim (Auto-updated daily from the Play Console)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Update Cadence Overstates Source

The page is rebuilt daily from the checked-out ActivityWatch/stats data, but this text says the Android charts are updated daily from the Play Console. If the upstream Play Console collection lags or fails while this site still rebuilds, /stats/ can show stale Android charts with a stronger freshness claim than the build path guarantees.

Suggested change
div.small.dim (Auto-updated daily from the Play Console)
div.small.dim (Auto-updated daily when Play Console data is available)

Context Used: README.md file (source)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — reworded to 'Auto-updated daily when Play Console data is available; ratings lag ~1 month' so it doesn't overstate freshness.

The site rebuilds from checked-out data; Play Console collection can lag
(ratings are monthly). Reword to not overstate freshness.
@ErikBjare ErikBjare merged commit 26871d3 into master Jul 12, 2026
1 check passed
@ErikBjare ErikBjare deleted the feat/android-charts branch July 12, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant