{"adoption": {"forks": 968, "observed_at": "2026-08-28T04:09:17.721466+00:00", "stars": 5406}, "canonical_url": "https://ross.abutalabs.com/products/battery-historian", "card": {"archived": true, "artifact_type": "application", "description": "Battery Historian is a tool to analyze battery consumers using Android \"bugreport\" files.", "domain": ["android-tools", "developer-tools", "analytics"], "enriched": true, "function": ["analytics", "data-visualization", "developer-tools"], "health_score": 10, "homepage": null, "language": "Go", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["google/battery-historian"], "name": "google/battery-historian", "platform": ["windows"], "pushed_at": "2019-07-15T16:25:16+00:00", "repo": "google/battery-historian", "stars": 5406, "tags": ["android", "battery-analysis", "bugreport", "go", "diagnostics", "docker", "web-server", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["analyze which apps drain my Android battery", "visualize battery events from an Android bugreport", "compare battery usage between two bugreports", "debug excessive battery drain in my Android app", "inspect wakelocks and battery-related metrics on a device", "view aggregated battery stats since last full charge"], "what_it_is": "Battery Historian is a Go-based web tool from Google that analyzes Android bugreport files to visualize battery consumption and system events on a timeline. It supports aggregated battery statistics, per-app battery metrics, and A/B comparison of two bugreports.", "when_to_avoid": ["you need real-time battery monitoring on a live device", "you target Android versions older than 5.0 Lollipop", "you need iOS or desktop battery analysis"], "when_to_choose": ["you need to diagnose battery drain on Android 5.0+ devices from bugreport files", "you want timeline visualization and per-app battery metrics", "you want to A/B compare two bugreports for battery regressions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/battery-historian", "repo": "google/battery-historian", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:17.721466+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:57:47.682420+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b70b6c913357000611fd442fb9dd7786a26946897afd0d29973d50cd0fbfa581", "fetched_at": "2026-08-28T04:09:17.721466+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/battery-historian"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4457, "days_push": 2606, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}