Skip to content

Performance & scale

Real-time requests and file uploads run the same matching engine with the same rules. Pick the one that fits your workflow, not your accuracy needs.

Same engine

Deterministic, probabilistic, and spatial matching behave identically in both paths.

Same answers

Both paths maintain complete matching parity, returning identical person IDs and decisions.

Different shapes

Real time handles 1 to 100 records per call. Files handle thousands to tens of millions of records.

Each real-time call has a mostly fixed overhead: securely authenticating the request, initializing the match, and assembling the returned attributes. Because that baseline overhead is similar whether processing 1 record or 100, sending more records per call makes each record significantly faster.

Records per call Average time per call Effective time per record
1 ~6.2 s ~6.2 s
10 ~6.8 s ~0.68 s
25 ~7.9 s ~0.32 s
50 ~8.9 s ~0.18 s
100 ~10.4 s ~0.10 s

Individual-level matching with base attributes. Individual calls vary depending on network conditions.

Call duration also depends on which match levels you request and how many enrichment attributes you include. Lighter requests return faster.

Request configuration Records Average latency Effective time per record
Digital level only, base attributes 10 ~6.4 s ~0.64 s
Individual level, base attributes 10 ~6.8 s ~0.68 s
All levels (no spatial: I, H, D, A) 10 ~11.6 s ~1.16 s
All 5 levels including Spatial (I, H, D, S, A) 10 ~21.5 s ~2.15 s
Individual level + full enrichment catalog (500+ attributes) 10 ~22.3 s ~2.23 s
All 5 levels + full enrichment catalog (500+ attributes) 100 ~39.8 s ~0.40 s

Spatial matching performs additional geographic proximity routing, and retrieving large attribute sets requires broader feature store assembly. Requesting only the levels and attributes you need keeps response times fast.

Files are processed in bulk data warehouse operations, so processing time scales efficiently with file volume. These benchmarks include all five match levels and full attribute enrichment.

Input records Matching time Speed per record
1,000 ~3.5 min ~210 ms
10,000 ~4.1 min ~25 ms
100,000 ~5.1 min ~3.1 ms
1,000,000 ~7.7 min ~0.46 ms
10,000,000 ~16.5 min ~0.10 ms
50,000,000 ~65.5 min ~0.08 ms

Upload and download times depend on network throughput and file size. Large lists can be uploaded as up to 50 shards in parallel. Files, shards, and formats →

  • Batch real-time calls. Send batches of up to 100 records per call instead of one record at a time.
  • Ask only for what you need. Request the match levels and enrichment attributes you will actually use.
  • Send person IDs you already have. A recognized iag_person_id skips rematching and refreshes data directly. Person IDs →
  • Use files for big lists. Lists beyond a few thousand records are faster and simpler processed through file matching.