{"basis":"distinct_agents_7d counts DISTINCT non-Cloudflare public client IPs that pass the canonical is_real_external de-loop. SAME identity basis as /api/v1/stats/live-proof.distinct_callers_7d but NOT the same WINDOW: the fast path reads the reach_weekly ISO-week rollup (max of the last 2 weeks), so mid-week it reports a partial week and runs BELOW the trailing-7d canonical count \u2014 64 vs 95 on 2026-07-31. For the honest trailing-7d agent count use real_agents_7d in THIS payload (or /api/v1/mcp/funnel.real_external_agents_7d \u2014 same single-sourced query). It is an IP-derived PROXY for agents, not a true agent identity: agent_id is md5(client_ip), so several agents behind one NAT count once, and one agent on a rotating proxy counts many times. Treat it as distinct calling SOURCES.","concentration_flag_7d":true,"distinct_agents_7d":35,"distinct_platforms":2,"distinct_platforms_basis":"distinct_platforms counts canonical VENDORS (ai_platform_canon.count_platforms over the per_platform list published in THIS payload): unrecognized ids (the `mcp` protocol bucket, connectors-manager, test harnesses) are not platforms, and claude / claude-code / anthropic-* collapse to one vendor. per_platform_client_ids is the raw row count of that same list. The two differ by construction and are NOT two answers to one question \u2014 recompute either from per_platform[] to check.","net_of_top_basis":"Same query, window and exclusions as real_calls_7d (mcp_calls_identity WHERE is_public_ip AND is_real_external, rolling 7d), so real_calls_7d == top_caller_calls_7d + real_calls_net_of_top_7d holds by construction and the two cannot drift. The subtracted caller is NOT excluded from any other field \u2014 it is a companion to the headline, not a replacement, and a gateway is not automatically a non-agent. Read the client name before calling this customer concentration. IP-derived PROXY: NAT under-counts, rotating egress over-counts.","note":"Honest reach = DISTINCT public IPs per platform (real agent sources), not cumulative request volume. The big 'requests served' counts are real traffic but loop-inflated; this is the addressable reach.","per_platform":[{"agents":10,"platform_id":"claude-ai","requests":43},{"agents":9,"platform_id":"anthropic/claudeai","requests":12},{"agents":8,"platform_id":"connectors-manager","requests":24},{"agents":7,"platform_id":"claude","requests":8},{"agents":6,"platform_id":"mcp-generic-client","requests":216},{"agents":3,"platform_id":"claude-code","requests":4},{"agents":1,"platform_id":"chain-hire","requests":1473},{"agents":1,"platform_id":"hub-grok-bot","requests":33},{"agents":1,"platform_id":"actionist-apps-verification","requests":13},{"agents":1,"platform_id":"smithery connect","requests":5},{"agents":1,"platform_id":"mcp-spec-study","requests":1},{"agents":1,"platform_id":"anthropic/toolbox","requests":1},{"agents":1,"platform_id":"vouch-census","requests":1}],"per_platform_client_ids":13,"period":"7d","period_basis":"?period=7d (default) serves THIS payload \u2014 the reach_weekly rollup fast path plus the canonical rolling-7d real_agents_7d/real_calls_7d. ?period=30d and ?period=all are computed live over mcp_calls_identity and return window-neutral keys (real_agents / real_calls / window_start / window_end) \u2014 deliberately NOT *_7d, so a longer window can never be read as a 7-day number. An unrecognised period returns 400, not this payload.","real_agents_7d":44,"real_agents_7d_basis":"COUNT(DISTINCT agent_id) / COUNT(*) FROM mcp_calls_identity WHERE is_public_ip AND is_real_external, rolling window ending now. Identity: agent_id = md5(first public X-Forwarded-For token), NULL for Cloudflare POP ranges (edge proxies never count as agents); is_public_ip drops private/CGNAT ranges. Exclusions: is_real_external = this module's real_calls_predicate() rendered into the view, plus the view's internal-IP and scripted-UA backstops \u2014 crawlers, probes, QA harnesses and self-traffic are OUT. calls counts every real-external call (including CF-POP rows that carry no agent identity). An IP-derived PROXY for agents: NAT under-counts, rotating egress over-counts. Rolling 7d \u2014 THE canonical figure for any '(7d)' display. distinct_agents_7d in this payload is the ISO-week rollup (max of last 2 weeks), kept for the WoW trend; label it weekly, never '(7d)'.","real_agents_net_of_top_7d":43,"real_calls_7d":2130,"real_calls_net_of_top_7d":657,"requests_7d":1834,"rollup_week_start":"2026-08-24","source":"rollup","superseded_by":[{"change":"the free-tier full-answer cap is now ENFORCED, per caller instead of per tool. Before this it never fired, so a free caller could take unlimited full answers without ever raising a paywall signal","direction":"REDUCES signals; may reduce calls","effective_at":"2026-09-01T03:37:23+00:00","is_correction":true,"means":"weeks on opposite sides of this timestamp were served under DIFFERENT free-tier rules: paywall signals before it are an undercount (the cap never fired) and calls after it may fall as capped callers stop. A week-over-week percentage across it is not a trend","measured_effect":"registered 2026-09-02 with under 48h of post-change data \u2014 the effect is not yet measurable. Rolling 7d to 2026-09-02 00:23Z already read real_external_signals_7d 204 vs prior 497 (-59.0%) beside calls +8.3%, which is two populations, not a trend","ref":"dchub-mcp-server#294"}],"superseded_by_correction":true,"superseded_note":"the 2026-08-24 week published here was measured BEFORE the correction(s) in superseded_by[] took effect, so distinct_agents_7d and requests_7d count a population that has since been withdrawn. For a count on the current definition read real_agents_7d in this same payload.","supported_periods":["7d","30d","all"],"top_caller_calls_7d":1473,"top_caller_pct_7d":69.2,"window":"iso_week rollup \u2014 the latest COMPLETE week (reach_weekly \u00b7 precomputed daily), named in rollup_week_start. NOT rolling 7d; for a trailing-7d count see real_agents_7d","window_basis":"ISO calendar week (reach_weekly rollup), NOT trailing 7d"}
