Data methodology

How SocialTrace collects, indexes, and reports Instagram public profile data — including the coverage rule that governs every dataset.

What we collect

Only publicly available Instagram profile fields: display name, bio, verified state, follower and following counts, post and reel metadata, and the public identities behind the follower and following lists a snapshot successfully captures. No private profiles, no login-required content, no stories or highlights.

How we collect it

The default build ships with a deterministic mock provider so nothing costs money out of the box. With SOCIAL_PROVIDER=apify and an Apify API token, an opt-in real provider fetches Instagram public data via Apify actors, with a fallback chain across five follower-scraper actors so a single actor failing does not break capture. See Getting started.

Coverage — the honesty rule

Every snapshot captures up to 500 followers and 500 following identities per profile. For larger accounts that means a snapshot's list is genuinely partial, and the coverage badge shows exactly what fraction of the real dataset the snapshot represents (for example, "Indexed 500 of 12,400 — Coverage 4%"). We never display the total as if the indexed subset were the total.

Comparisons — the automatic diff engine, the Compare snapshots page, and saved searches — are withheld when either side is below 99.5% coverage. Missing accounts below that threshold cannot be distinguished from real unfollows, so the honest answer is "comparison unavailable" rather than a fabricated list.

How snapshots become diffs

Each snapshot writes profile counts and one membership row per captured identity, with the timestamp it was first seen. When a subsequent snapshot runs, membership rows whose identity was not seen this time get a removed_at timestamp; identities newly present get a new membership row. Diffs are read off those two columns — no separate per-snapshot log is needed.

What this build does not do

  • No sign-in, billing, or accounts — anonymous browser-cookie identity only.
  • No scheduler — snapshots only run when someone captures one manually.
  • No notification channel — the dashboard is pull, not push.
  • No stories or highlights — no actor covers them in this build.

These are recorded honestly in the product itself and in the changelog.