{
  "ok": true,
  "app_id": "com.fitnesskeeper.runkeeper.pro",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "B ← B",
  "score_delta": 0,
  "from": {
    "scan_id": "66a44eaf-d817-4382-86d3-4ca74dac8d94",
    "version": "16.30",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "bytes_total": 100429966,
      "bytes_scanned": 100429966,
      "bytes_skipped": 0,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "b19d99f3d0137f3a09c6130b9a10721def765d9abd27fbdaf3ef63e0c06531ac"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "2cb357e7c56144433771559d403bb691ebdbac3bdad4db55c2eb559ea21eb8bc"
        },
        {
          "name": "config.en.apk",
          "sha256": "8e981f43f85dc34aa1c09e6e4dc82f698da7ff4e42cc1f64be80562ba36f4c07"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "aa849c9fb99f57d871ae5166088da83819a6d4d7e54f97a28c41531f2f2fe616"
        }
      ],
      "ruleset_sha256": "dac4bdac2204e219decf0d6f4465e38aad987eecc8eafa5febdee754eeaf182e"
    },
    "grade": "B",
    "score": 89,
    "scanned_at": "2026-09-11T14:27:49.570Z"
  },
  "to": {
    "scan_id": "e03d1158-8078-4333-afc0-1f1b5cb1215d",
    "version": "16.31",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 22036.393,
        "harvest": 4678.622000000003,
        "detectors": 15773.203000000009
      },
      "bytes_total": 103053397,
      "bytes_scanned": 103053397,
      "bytes_skipped": 0,
      "files_processed": 4398,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "2edcddf2c0c0650f28e6a46737f2812e774e8810eda7fc13d3e367279843f43b"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "ada38cf112fe3f02e73a8ea05be7a8c94521a5fdb1baeb49fd763cfd6182cecf"
        },
        {
          "name": "config.en.apk",
          "sha256": "7f0578f7e03db401494a2e644b84df6b3ccafd7aa37a9f8330e39b3264a74320"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "fdbc410f20afd5bb23bd746a815c52aae44021d769299abe90005cc8f59cdb0c"
        }
      ],
      "ruleset_sha256": "69544396ce47de08b97fb3d04080662e1cbb38c704bd5aa3d4b7e5489cde22e8"
    },
    "grade": "B",
    "score": 89,
    "scanned_at": "2026-09-29T20:48:42.440Z"
  },
  "findings": {
    "added": [],
    "removed": [],
    "persisting_count": 7,
    "added_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    },
    "removed_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    }
  },
  "trackers": {
    "added": [
      "Google Analytics for Firebase"
    ],
    "removed": [
      "Google AdServices"
    ]
  },
  "known_vulns": {
    "from": 0,
    "to": 0,
    "delta": 0,
    "from_recorded": true,
    "to_recorded": true
  }
}