How fresh should IP risk evidence be? Decay, re-querying and caching

IP risk evidence should be no older than the churn of the network it describes, so query at decision time and never cache a verdict. Rotating residential exits and dial-up pools change hands in minutes to hours, datacenter and VPN infrastructure in days. An observation without a timestamp cannot be acted on, and one older than the churn window is a false positive waiting to happen — it now describes whoever inherited the address.

Three timestamps in every lookup

A real response, captured 2026-09-13 for an address that was being sold as a residential exit at the time:

{
  "ip": "122.99.101.50",
  "evidence_state": "active",
  "risk": { "score": 78, "level": "high", "tags": ["proxy"],
            "tag_details": [{ "tag": "proxy", "last_seen": "2026-09-13T11:47:58Z" }] },
  "network": { "asn": 17471, "usage_type": "DYN" },
  "computed_at": "2026-09-13T15:41:18Z",
  "meta": { "data_version": "risk:20260913234106 geo:20260913" }
}

How the score decays

Datacenter and VPN infrastructure ages more slowly than residential exits because it changes hands more slowly; the response does not need a different contract for it, because the tag's last_seen and the decayed score already carry that difference.

Caching: what is safe and what is not

How fresh the data behind the lookup is

The risk evidence is refreshed continuously and its build version carries a timestamp; the geolocation database is rebuilt daily; IP99's own observation of proxy supply runs every hour, and the weekly aggregate is published on Residential proxy exits observed this week. The detection page states the current data window in absolute dates.

FAQ

How old is too old for IP risk evidence?

Older than the churn of the network it describes. For rotating residential exits and dial-up pools that is minutes to hours; for datacenter and VPN infrastructure, days. IP99 encodes this as a decaying score and an evidence_state that turns stale once the last observation is beyond the window.

Can I cache IP risk lookups?

Only within a single decision, for the seconds it takes to complete it. Caching across decisions or users, or storing a label without its observation time, turns a true statement into a false one on a timer you cannot see. Store computed_at and evidence_state with the decision instead.

What does evidence_state stale mean?

The address was observed in risk infrastructure before and that observation is now older than the decay window, so the score is 0. It is a weak prior — the address probably belongs to someone else now — not a clean bill of health and not a verdict.

Why does every tag carry a last_seen time?

Because a verdict without an observation time cannot be acted on: it cannot be told apart from a verdict that expired last week. The time lets you apply your own freshness rule and lets a disputed decision be traced back to what was seen and when.

How often is the data behind IP99 updated?

Risk evidence continuously, with the build timestamp in meta.data_version; geolocation daily; IP99's own observation of proxy supply every hour, aggregated weekly on the proxy exits page.

Related: How to detect a proxy, VPN or datacenter IP · Rotating residential proxies and dial-up pools · Residential proxy vs datacenter proxy · Is this IP a VPN? · What an IP risk score means · What is an ASN? · Free IP geolocation and risk API · Residential proxy exits observed this week · IP risk profile · IP ranges by country · IP ranges by ASN.