{
  "product": "feeguard",
  "site": "https://feeguard.dev",
  "tool": "FeeGuard sample audit — scanSampleData(), the function behind the site's “Run a sample” button",
  "subject": "FeeGuard sample audit: the representative synthetic Stripe Connect dataset (38 charges, 33 transfers, 33 application fees, 4 disputes)",
  "scanned_at": "2026-09-07T08:16:00Z",
  "result": "FOUND",
  "finding": "24 findings, $4,994.99 recoverable in the sample: 10 transfers never reversed ($3,549.33), 10 refunds with the application fee kept ($394.38), 4 dispute fees never recovered ($1,051.28)",
  "parsed": { "charges": 38, "transfers": 33, "applicationFees": 33, "disputes": 4, "unrecognised": 0 },
  "totals": { "recoverableCents": 499499, "currency": "usd", "findingCount": 24 },
  "byVector": [
    { "type": "unreversed_transfer", "label": "Transfer never reversed", "count": 10, "recoverableCents": 354933 },
    { "type": "uncovered_dispute_loss", "label": "Dispute fee never recovered", "count": 4, "recoverableCents": 105128 },
    { "type": "unadjusted_application_fee", "label": "Refund sent, fee kept", "count": 10, "recoverableCents": 39438 }
  ],
  "scanner_warning": "These are synthetic figures from a representative dataset, not your data.",
  "how_produced": "lib/audit/payload-scan.ts → scanSampleData('public-sample') in the FeeGuard repository at origin/main, run offline with no database and no Stripe keys; identical to what feeguard.dev/audit shows when a visitor clicks “Run a sample” (labelled “Recoverable in this sample”).",
  "source_url": "https://feeguard.dev/audit",
  "note": "A synthetic dataset, audited by the real detectors. No customer data."
}
