{
  "ok": true,
  "app_id": "net.uploss.affirmation",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "A ← A",
  "score_delta": 1,
  "from": {
    "scan_id": "03027bfc-68b2-4f96-b7da-66f0ba8a3ac7",
    "version": "1.4.5",
    "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": 22914.519,
        "harvest": 10416.467999999984,
        "detectors": 10786.735999999937
      },
      "bytes_total": 200137309,
      "bytes_scanned": 200137309,
      "bytes_skipped": 0,
      "files_processed": 3881,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "439ca6c7c742c2e70a1e2d8693c8fdf331f74244eeafcd9f1fdcc9ca64af07a9"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "5b4ba755796ae7ba82b97ef00f060baccbafe67b6e70d483ff778ff66846fcbe"
        },
        {
          "name": "config.en.apk",
          "sha256": "728db9d82805807d6231b4ebb021721dd7481729ae6d467819857c08b00d76ec"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "e9a6f6415fdc63e3b4a2efa8d89d3a205b168b6adf12d00e4d8791e8b741a258"
        }
      ],
      "ruleset_sha256": "6627311253eb54bc361d5dd9a0abc2a0fe556e390d6b2031bca75e1800928ccd"
    },
    "grade": "A",
    "score": 98,
    "scanned_at": "2026-09-24T10:45:18.006Z"
  },
  "to": {
    "scan_id": "d25059f4-fccd-462e-b912-269a41416ad4",
    "version": "1.5.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": 22269.945,
        "harvest": 9317.962999999989,
        "detectors": 10900.2999999999
      },
      "bytes_total": 179540397,
      "bytes_scanned": 179540397,
      "bytes_skipped": 0,
      "files_processed": 3937,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "007af029726678c36338c5ce5bf215eba052b0b610609317478995b3e3e1840f"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "048f339f68497b76d989cac5b1dc4b103b94d3751a120575d1749a652c0ead6d"
        },
        {
          "name": "config.en.apk",
          "sha256": "a52e462394c9933ac0954460c95468edf65febd91188817eaa906fdcc45dde11"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "4b678be4fe8093242c6fa9dda853f67e16739448be8215d8c3521ae9cbf814f5"
        }
      ],
      "ruleset_sha256": "3bb79cc3710b0fb021feaa322578f4cffe08396a97c51b34df092b5a05891d5e"
    },
    "grade": "A",
    "score": 99,
    "scanned_at": "2026-10-07T10:59:01.283Z"
  },
  "findings": {
    "added": [],
    "removed": [],
    "persisting_count": 2,
    "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
  }
}