Skip to main content
Start with one transaction ID. Aggregate totals hide whether the problem is collection, filtering, duplication, or refund treatment.

1. Verify the source transaction

Confirm the transaction reached a final state in Shopify, Stripe, RevenueCat, Superwall, Whop, Checkout Champ, or your SDK. Record its ID, event type, amount, currency, and timestamp. An authorization, incomplete checkout, test-mode payment, or pending transaction may not count as realized revenue.

2. Check the source

Open Sources and confirm the revenue source is connected. Review its recent-activity signal.
  • Connection error: repair authorization, credentials, webhook, or required configuration.
  • Connection healthy but no recent activity: check the provider-side webhook or integration setup.
  • Other transactions arrive: investigate the missing transaction’s status and payload instead of reconnecting.

3. Search Datalyr

Search Events using the transaction ID and a date range around the source timestamp. Compare:
  • amount and currency
  • event type
  • source timestamp versus processing time
  • customer or visitor identifiers
  • test versus production environment
If the event exists but a dashboard total differs, the issue is reporting logic, date range, or refund treatment—not ingestion.

4. Check duplicates and adjustments

Datalyr may deduplicate repeated deliveries using a transaction or idempotency identifier. Refunds, chargebacks, cancellations, and subscription changes can reduce net revenue or appear as separate activity. Compare gross and net figures consistently.

Escalate with evidence

Provide the source, transaction ID, event type, amount, currency, timestamp with timezone, and whether neighboring transactions arrived. Never send payment credentials or full API secrets.