{"generatedAt":"2026-07-31T06:10:25.633Z","schemaVersion":"WP-LAUNCH-READINESS-1.0","summary":{"pass":4,"limited":9,"blocked":4,"total":17,"commercialPolicyVersion":"WP-COMMERCIAL-POLICY-1.0","paidLaunchApproved":false,"commercialRequirementsPassed":false,"commercialActivationRequested":false,"paidSourceRightDenials":13,"paidRequiredGates":17,"paidBlockingGateIds":["scheduled-ingestion","forecast-history","global-ais","global-rail","news-corroboration","culture-geography","commercial-rights","accounts-billing","privacy-terms","accessibility","security","operations-monitoring","snapshot-serving"],"publicResearchStatus":"limited"},"commercialPolicy":{"policyVersion":"WP-COMMERCIAL-POLICY-1.0","decision":"deny","allowed":false,"activationRequested":false,"requirementsPassed":false,"evaluatedAt":"2026-07-31T06:10:25.633Z","denials":[{"code":"activation-disabled","subject":"paid-launch","detail":"Commercial activation is explicitly disabled."},{"code":"gate-not-passed","subject":"scheduled-ingestion","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"forecast-history","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"global-ais","detail":"Required paid-launch gate is blocked."},{"code":"gate-not-passed","subject":"global-rail","detail":"Required paid-launch gate is blocked."},{"code":"gate-not-passed","subject":"news-corroboration","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"culture-geography","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"commercial-rights","detail":"Required paid-launch gate is blocked."},{"code":"gate-not-passed","subject":"accounts-billing","detail":"Required paid-launch gate is blocked."},{"code":"gate-not-passed","subject":"privacy-terms","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"accessibility","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"security","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"operations-monitoring","detail":"Required paid-launch gate is limited."},{"code":"gate-not-passed","subject":"snapshot-serving","detail":"Required paid-launch gate is limited."},{"code":"source-rights-denied","subject":"world-bank:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"imf:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"aircraft-community:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"adsb-exchange:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"marine:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"global-transit:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"hazards:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"open-meteo:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"news:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"culture:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"openstreetmap:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"fao:paid-display","detail":"source-not-approved"},{"code":"source-rights-denied","subject":"orama:paid-display","detail":"source-not-approved"}]},"gates":[{"id":"public-access","area":"Public access","status":"pass","evidence":"The production product is publicly readable without ChatGPT authentication.","requirement":"Keep public research independent from an external chat account.","publicUrl":"/","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"truth-contract","area":"Evidence provenance","status":"pass","evidence":"Source, observed time, retrieval time, coverage and durable snapshot receipts are exposed.","requirement":"Preserve raw/source distinctions and never convert unavailable data into zero.","publicUrl":"/status","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"scheduled-ingestion","area":"Ingestion cadence","status":"limited","evidence":"The collector POST is protected by an edge-verified secret, inbound capability headers are stripped, and a D1 lease coalesces cron and traffic-assisted attempts into at most one run per 15-minute slot. Traffic-assisted collection still depends on an HTML visit, and independently monitored scheduler delivery has not been demonstrated.","requirement":"Attach and monitor a host-native or external scheduler before paid launch; prove missed-run alerting and retain the traffic-assisted lease only as a fallback.","publicUrl":"/api/v1/ingest","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"coverage-isolation","area":"Failure isolation","status":"pass","evidence":"Provider or component outages appear as coverage changes and cannot become measured world changes.","requirement":"Maintain regression tests for partial-source failures.","publicUrl":"/changes","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"ask-routing","area":"Ask routing","status":"pass","evidence":"Flights, ships, culture, country labor, food, markets, rankings, forecasts and country outlooks route explicitly; low relevance is refused.","requirement":"Expand intent regression coverage as new domains launch.","publicUrl":"/ask","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"forecast-history","area":"Forecast validation","status":"limited","evidence":"Every forecast has a reproducible calculation and quality gates, but no forecast has reached its resolution deadline.","requirement":"Accumulate resolved forecasts and publish Brier, calibration and baseline comparisons.","publicUrl":"/science","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"global-ais","area":"Global vessel positions","status":"blocked","evidence":"Aggregate IMF PortWatch flows are broader than licensed individual AIS tracks.","requirement":"Contract a commercially permitted global AIS feed and run persistent collection before selling vessel destinations or ETAs.","publicUrl":"/live","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"global-rail","area":"Global rail and transit movement","status":"blocked","evidence":"GTFS and GTFS-Realtime are widely used standards, but WorldPredicta has no licensed global feed registry, per-agency rights decisions or persistent vehicle collector.","requirement":"Contract or authorize a feed catalog, enforce each producer license, collect vehicle positions durably and label static schedules separately from live movement.","publicUrl":"/live","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"news-corroboration","area":"Global news","status":"limited","evidence":"English-ready, deduplicated, source-capped news is live; independent corroboration remains sparse.","requirement":"Add permitted local-language sources and translation, then verify events across independent source families.","publicUrl":"/news","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"culture-geography","area":"Culture intelligence","status":"limited","evidence":"Attention signals are source-labeled, but country-level representativeness is incomplete.","requirement":"Add geography, language, demographic caveats and cross-platform corroboration.","publicUrl":"/culture","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"commercial-rights","area":"Commercial source rights","status":"blocked","evidence":"A public source-rights register now prevents research connectors from silently becoming paid features; no register entry is treated as commercial approval.","requirement":"Obtain written source-by-source approvals or licenses and record the executed terms before paid redistribution.","publicUrl":"/source-rights","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"accounts-billing","area":"Accounts and billing","status":"blocked","evidence":"No public identity or payment processor is active, so no user is asked to pay or trust an incomplete account lifecycle.","requirement":"Select and configure public auth and billing providers; test signup, recovery, export, deletion, refunds and webhooks.","publicUrl":"/pricing","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"privacy-terms","area":"Privacy, terms and corrections","status":"limited","evidence":"Prototype privacy, terms, research policy, pricing gates and a rate-limited durable corrections desk are published; a legal operator, paid-service terms and counsel review are not complete.","requirement":"Add the legal operator, retention matrix, rights process, subprocessors, transfers, minors, governing law, subscription/refund terms and counsel approval.","publicUrl":"/privacy","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"accessibility","area":"Household usability","status":"limited","evidence":"Simple view is now the default with a compact research toggle and larger text.","requirement":"Complete independent keyboard, screen-reader, contrast and plain-language testing.","publicUrl":"/","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"security","area":"Security baseline","status":"limited","evidence":"HSTS, CSP, frame denial, MIME protection, referrer and permissions policies are emitted at the worker edge; independent scanning and incident drills are not complete.","requirement":"Complete external scanning, dependency and secret monitoring, backup restoration and an incident drill before paid launch.","publicUrl":"/status","requiredForPaidLaunch":true,"requiredForPublicResearch":true,"waiver":null},{"id":"operations-monitoring","area":"Monitoring and incident response","status":"limited","evidence":"A measured 24-hour ingestion SLO endpoint exposes run freshness, completion, cadence gaps and duration alongside D1 migration, schema-version and per-family payload-freshness canaries. It is still not an independent probe or alert-delivery system.","requirement":"Configure independent uptime checks and alert delivery, then test backup restore, paging and public incident communication.","publicUrl":"/api/v1/monitoring","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null},{"id":"snapshot-serving","area":"Durable public serving","status":"limited","evidence":"News, culture, operations, markets and country indicators now publish quality-gated last-good payloads to D1; their public reads return those payloads, an explicitly stale version or an honest warming shell without writing or calling upstream collectors. The separately labeled public aircraft endpoint remains a direct, short-cache observation path. Family payloads are still published one at a time, so a partial ingestion run can expose different collection generations across surfaces.","requirement":"Add an atomic publication manifest or generation pointer across dependent families, prove rollback preserves the previous complete generation, and load-test that snapshot readers cause zero upstream calls and zero writes. Keep direct aircraft isolated and visibly labeled.","publicUrl":"/status","requiredForPaidLaunch":true,"requiredForPublicResearch":false,"waiver":null}],"rule":"Paid launch is denied unless activation is explicit, every required gate passes, and every declared paid source capability has complete, current approval evidence. Limited gates remain disclosed in the public research experience."}