{
  "ok": true,
  "app_id": "org.iggymedia.periodtracker",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "A ← A",
  "score_delta": 6,
  "from": {
    "scan_id": "112d462b-7b12-4ca4-bbee-e63ea66fdde1",
    "version": "10.6.0",
    "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": 39762.98,
        "harvest": 6504.053999999972,
        "detectors": 30834.541999999125
      },
      "bytes_total": 142130935,
      "bytes_scanned": 142130935,
      "bytes_skipped": 0,
      "files_processed": 5874,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "1c211333e8ec8b4e6e8d426d9f55f6885a67dd193d13e86de54fdc390218e988"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "c7b52066219aa71d5fce28e9dbe7c3d1e8938b1037ca465ee9f40fbc5f477a8a"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "0716d4a94b3b24c04cb03425c36340efea277aaa4147d0aae347006fab3a7a85"
        }
      ],
      "ruleset_sha256": "fb649a88cc2e66d8cb5b3c389ee4628bf97383e131015c594e187dc06eabcef7"
    },
    "grade": "A",
    "score": 93,
    "scanned_at": "2026-09-18T14:47:45.457Z"
  },
  "to": {
    "scan_id": "7aa707cd-dc97-4afe-bfc8-ae1cd3731e14",
    "version": "10.6.0",
    "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": 35833.353,
        "harvest": 5813.656000000008,
        "detectors": 27838.98900000025
      },
      "bytes_total": 142130935,
      "bytes_scanned": 142130935,
      "bytes_skipped": 0,
      "files_processed": 5874,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "1c211333e8ec8b4e6e8d426d9f55f6885a67dd193d13e86de54fdc390218e988"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "c7b52066219aa71d5fce28e9dbe7c3d1e8938b1037ca465ee9f40fbc5f477a8a"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "0716d4a94b3b24c04cb03425c36340efea277aaa4147d0aae347006fab3a7a85"
        }
      ],
      "ruleset_sha256": "69544396ce47de08b97fb3d04080662e1cbb38c704bd5aa3d4b7e5489cde22e8"
    },
    "grade": "A",
    "score": 99,
    "scanned_at": "2026-09-29T19:16:41.215Z"
  },
  "findings": {
    "added": [],
    "removed": [
      {
        "finding_type": 78,
        "severity": "medium",
        "title": "Ships third-party ad/analytics SDKs but Data Safety declares no data shared",
        "fingerprint": "2b54e044aaab4c3f757c82024e4d291eb1074bc851c642350ce6faee6f887e08",
        "verified": false
      }
    ],
    "persisting_count": 1,
    "added_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 0
    },
    "removed_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 1,
      "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
  }
}