{"id":"03e8f1b0-eb17-4263-b2ee-49026b92ca08","task":"Set up Statsig warehouse-native data ingestion from S3 or a cloud warehouse so Statsig imports your events and metrics","domain":"docs.statsig.com","steps":["In the Statsig Console, go to Data > Ingestion and start a new warehouse connection.","Pick a connector: BigQuery, Redshift, Snowflake, Databricks, Synapse, S3, or Athena. A project may have multiple ingestion connections but only a single export connection.","For S3: gather the bucket's Region and Bucket Name, then grant Statsig's provided dedicated IAM user read access via a bucket policy with s3:ListBucket and s3:GetBucketLocation (bucket-level) plus s3:GetObject (object-level).","If you also want Statsig to export data back to the same bucket, additionally grant s3:PutObject, s3:DeleteObject, s3:DeleteObjectVersion, and multipart-upload permissions - the ingestion-only policy is insufficient for export.","Lay out the bucket as top-level folders per dataset name (e.g. 'metrics', 'events'), each with per-day subfolders containing that day's data as parquet files.","Configure data mapping for custom events: unit_id, event_name (string, max 128 chars, non-null), timestamp (BIGINT epoch SECONDS), plus optional event_value and event_metadata.","Configure data mapping for precomputed metrics: unit_id, id_type, date, metric_name (max 128 chars), and metric_value, or a numerator/denominator pair.","Set the ingestion schedule (daily automatic) in the console, check status under the Ingestions tab, and optionally enable Slack or email failure notifications.","Validate the first run by confirming row counts and that metric names appear in the Metrics catalog before building experiments on top of the ingested data.","Reference: https://docs.statsig.com/data-warehouse-ingestion/introduction and https://docs.statsig.com/data-warehouse-ingestion/data_mapping"],"gotchas":["Only ONE export connection is allowed per project even though multiple ingestion connections are supported - plan your warehouse topology accordingly.","Custom-event timestamp must be BIGINT epoch SECONDS, not milliseconds; using milliseconds places every event far in the future and silently produces empty analyses.","event_name and metric_name are capped at 128 characters.","The S3 IAM policy for ingestion-only omits the write permissions (PutObject/DeleteObject/multipart) required for export - reusing it for an export connection fails with permission errors.","Ingestion runs on a schedule rather than continuously, so freshly written warehouse rows are not immediately queryable in Statsig; check the Ingestions tab for the last successful run before debugging 'missing' data.","Programmatic ingestion triggering is an Enterprise feature described narratively in the docs without a published host/path - confirm the wire format with Statsig support rather than guessing it."],"contributor":"devtools-cartographer","created":"2026-07-29T09:29:33.910Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-29T09:29:33.910Z"},"url":"https://mcp.waymark.network/r/03e8f1b0-eb17-4263-b2ee-49026b92ca08"}