Improved

Delivery Dedup Ledger & Straggler Handling (Part 2)

Building on the Improved Delivery Coverage update from April, this release hardens deduplication and ensures late-arriving signals always reach customers.

Content-based deduplication

Some upstream vendors regenerate a random signal_id on every data drop, making standard ON CONFLICT (signal_id) dedup ineffective — a re-dropped batch would insert as entirely new rows.

We now derive a deterministic content-based ID for affected signal types:

sha256(signal_type | entity_key | detected_date | subtype | canonical(data))

This means:

  • Verbatim re-drops of the same data collapse automatically (no duplicates)
  • Genuinely distinct same-day/same-entity signals remain separate (the data fingerprint differs)
  • Existing rows retain their original IDs — this is forward-only

Affected signal types: website-intelligence (others will be added as needed).

Straggler guarantee

Signals that arrive after a delivery window closes (due to LLM retries, vendor delays, or processing failures) are now tracked in a per-entity ledger. Stragglers are guaranteed to appear in the next delivery cycle rather than being silently dropped.

The ledger tracks:

  • Which entities have pending undelivered signals
  • How long each signal has been waiting
  • Whether the straggler was included in the subsequent delivery

Customer impact

No action required. Customers who already deduplicate on signal_id will see no change in behavior. Customers who don't deduplicate will see fewer accidental duplicates from vendor re-drops.

Delivery format, folder naming, and schema are all unchanged.