{
  "language": "en",
  "catalogVersion": "3.0",
  "scoringPolicy": "catalog-score-4.0.1",
  "application": "WiFi Doctor",
  "url": "https://zorosoft.net/wifi-doctor/diagnostics/",
  "interpretationNote": "These values describe WiFi Doctor’s assessment rules, not universal guarantees. Read them with the report’s device, network, timing, and evidence limits. Unavailable data does not mean a failed check.",
  "sampleResults": {
    "url": "https://zorosoft.net/wifi-doctor/diagnostics/samples.json",
    "outputLanguage": "en",
    "inputType": "synthetic",
    "description": "These examples show the app’s output format. They are illustrative scenarios, not measurements of your network."
  },
  "aliases": {
    "W70-2100": "W70-210",
    "W30-1200": "W30-120",
    "W10-0100": "W10-010",
    "W10-0200": "W10-020",
    "W10-0300": "W10-030",
    "W10-0400": "W10-040",
    "W10-0500": "W10-050",
    "W10-0600": "W10-060",
    "W10-0700": "W10-070",
    "W10-0800": "W10-080",
    "W10-0900": "W10-090",
    "W10-1000": "W10-100",
    "W10-1100": "W10-110",
    "W10-1200": "W10-120",
    "W10-1300": "W10-130",
    "W10-1400": "W10-140",
    "W10-1500": "W10-150",
    "W20-0100": "W20-010",
    "W20-0200": "W20-020",
    "W20-0300": "W20-030",
    "W20-0400": "W20-040",
    "W20-0500": "W20-050",
    "W20-0600": "W20-060",
    "W20-0700": "W20-070",
    "W20-0800": "W20-080",
    "W20-0900": "W20-090",
    "W30-0100": "W30-010",
    "W30-0200": "W30-020",
    "W30-0300": "W30-030",
    "W30-0600": "W30-060",
    "W30-0700": "W30-070",
    "W30-0900": "W30-090",
    "W30-1000": "W30-100",
    "W40-0100": "W40-010",
    "W40-0200": "W40-020",
    "W40-0300": "W40-030",
    "W40-0400": "W40-040",
    "W40-0600": "W40-060",
    "W40-0700": "W40-070",
    "W50-0100": "W50-010",
    "W50-0200": "W50-020",
    "W50-0300": "W50-030",
    "W50-0400": "W50-040",
    "W50-0500": "W50-050",
    "W50-0600": "W50-060",
    "W50-0800": "W50-080",
    "W50-1100": "W50-110",
    "W50-1200": "W50-120",
    "W60-0100": "W60-010",
    "W60-0200": "W60-020",
    "W60-0300": "W60-030",
    "W60-0400": "W60-040",
    "W60-0500": "W60-050",
    "W60-0600": "W60-060",
    "W70-0100": "W70-010",
    "W70-0300": "W70-030",
    "W70-0400": "W70-040",
    "W70-0700": "W70-070",
    "W70-0800": "W70-080",
    "W70-1000": "W70-100",
    "W70-1100": "W70-110",
    "W70-1300": "W70-130",
    "W70-1500": "W70-150",
    "W70-1600": "W70-160",
    "W70-1700": "W70-170",
    "W70-1900": "W70-190",
    "W70-2000": "W70-200",
    "W80-0100": "W80-010",
    "W80-0300": "W80-030",
    "W80-0400": "W80-040",
    "W80-0600": "W80-060",
    "W80-0700": "W80-070",
    "W80-0800": "W80-080",
    "W80-0900": "W80-090",
    "W80-1000": "W80-100",
    "W90-0100": "W90-010",
    "W90-0200": "W90-020",
    "W90-0300": "W90-030",
    "W90-0400": "W90-040",
    "W90-0500": "W90-050",
    "W90-0600": "W90-060",
    "W90-0700": "W90-070",
    "W90-0800": "W90-080"
  },
  "stages": [
    {
      "id": "W10",
      "title": "Device state"
    },
    {
      "id": "W20",
      "title": "Wi-Fi connection"
    },
    {
      "id": "W30",
      "title": "Radio link"
    },
    {
      "id": "W40",
      "title": "Radio channels"
    },
    {
      "id": "W50",
      "title": "LAN connectivity"
    },
    {
      "id": "W60",
      "title": "WAN connectivity"
    },
    {
      "id": "W70",
      "title": "Internet access"
    },
    {
      "id": "W80",
      "title": "Network performance"
    },
    {
      "id": "W90",
      "title": "Diagnostic conclusions"
    }
  ],
  "diagnostics": [
    {
      "id": "W10-010",
      "stage": "W10",
      "title": "Device Wi-Fi support",
      "what": "Whether this device provides Wi-Fi capability for the network being diagnosed.",
      "measures": "Device Wi-Fi support and whether the prerequisite for a Wi-Fi diagnosis is present.",
      "purpose": "Establish that Wi-Fi checks can meaningfully run before interpreting later connection results.",
      "interpretation": "Confirmed lack of Wi-Fi support is a critical prerequisite failure. An unreadable state is unavailable, not a failed network."
    },
    {
      "id": "W10-020",
      "stage": "W10",
      "title": "Wi-Fi on/off state",
      "what": "Whether the device's Wi-Fi radio is switched on and ready to connect.",
      "measures": "Current Wi-Fi power state, including on, off, or a transition between states.",
      "purpose": "Explain why Wi-Fi diagnosis cannot proceed when the radio is turned off.",
      "interpretation": "Wi-Fi on is the usable state. Confirmed off is critical; enabling, disabling, or unknown states are inconclusive rather than failures."
    },
    {
      "id": "W10-030",
      "stage": "W10",
      "title": "Network identity and session segments",
      "what": "The identity of the Wi-Fi network and separate connection periods within a report.",
      "measures": "Network name, access point, frequency, route changes, and time segments associated with observations.",
      "purpose": "Keep results from different networks or access points distinct when comparing connection quality.",
      "interpretation": "An access point or network change is context, not automatically a fault. Measurements from different segments should not be combined."
    },
    {
      "id": "W10-040",
      "stage": "W10",
      "title": "Active Internet path",
      "what": "The network path currently used for the app's Internet traffic.",
      "measures": "Whether the active path uses Wi-Fi, mobile data, a VPN, or an unknown transport.",
      "purpose": "Clarify which connection a measurement describes, especially when several network paths are available.",
      "interpretation": "Different paths can produce different results. Mobile data or VPN use alone is not a Wi-Fi failure or score deduction."
    },
    {
      "id": "W10-050",
      "stage": "W10",
      "title": "VPN and measurement limits",
      "what": "How VPN routing or network policy limits the measurements available in this session.",
      "measures": "VPN presence, relevant route information, and checks restricted by the active network policy.",
      "purpose": "Separate an unmeasurable connection path from a connection that has actually failed.",
      "interpretation": "A restricted check is unavailable, not failed. Results describe the measured path and may not represent direct Wi-Fi access."
    },
    {
      "id": "W10-060",
      "stage": "W10",
      "title": "Proxy and PAC",
      "what": "The proxy or automatic proxy configuration associated with the connection.",
      "measures": "Proxy host and port, automatic configuration information, and the route to which those settings apply.",
      "purpose": "Provide context for requests that must pass through a proxy before reaching a destination.",
      "interpretation": "A configured proxy is not a fault. Connection or authentication problems require corresponding measured evidence."
    },
    {
      "id": "W10-070",
      "stage": "W10",
      "title": "DNS and Private DNS settings",
      "what": "The DNS and Private DNS settings used to resolve hostnames on the connection.",
      "measures": "Configured DNS servers, Private DNS mode, and relevant resolver configuration.",
      "purpose": "Help interpret later name-resolution results and distinguish configuration from measured DNS behavior.",
      "interpretation": "A setting alone does not establish a DNS fault. Actual lookup results determine whether resolution succeeds or fails."
    },
    {
      "id": "W10-080",
      "stage": "W10",
      "title": "Permissions and data access",
      "what": "Whether WiFi Doctor can access the information required by particular diagnostic checks.",
      "measures": "Granted permissions, missing permissions, and observations affected by access restrictions.",
      "purpose": "Explain missing report fields and identify which checks cannot be assessed on this device.",
      "interpretation": "Denied permission means limited evidence, not poor Wi-Fi. It does not lower the connection score."
    },
    {
      "id": "W10-090",
      "stage": "W10",
      "title": "Power and network policies",
      "what": "Device power and network policies that may influence the observed connection.",
      "measures": "Power-saving settings, network restrictions, and interruptions occurring alongside those conditions.",
      "purpose": "Provide device context when investigating disconnections, pauses, or unexpected changes in network use.",
      "interpretation": "A power-saving setting alone is not a fault. Connection impact must be observed before attributing an issue to it."
    },
    {
      "id": "W10-100",
      "stage": "W10",
      "title": "Recent observations",
      "what": "Recent observations retained for comparison with the current diagnosis session.",
      "measures": "Previously observed events, signal readings, observation age, and gaps in monitoring coverage.",
      "purpose": "Help distinguish a recurring connection issue from something seen only during the current test.",
      "interpretation": "History is supporting evidence. No recorded problem during a monitoring gap does not prove the connection was stable."
    },
    {
      "id": "W10-110",
      "stage": "W10",
      "title": "Measurement validity",
      "what": "Whether observations were affected by measurement activity or incomplete collection conditions.",
      "measures": "Measurement timing, active test periods, and conditions that may influence the samples being interpreted.",
      "purpose": "Keep ordinary network behavior separate from behavior observed while a test generates traffic.",
      "interpretation": "Affected observations need context. Missing or unsuitable data is not automatically a pass, a failure, or a zero-valued measurement."
    },
    {
      "id": "W10-120",
      "stage": "W10",
      "title": "Device clock and TLS",
      "what": "Whether the device clock appears inconsistent with a sufficiently reliable time reference.",
      "measures": "Device time, available reference time, and related certificate or secure-connection symptoms.",
      "purpose": "Identify clock discrepancies that may explain HTTPS certificate validation problems.",
      "interpretation": "Only a reliable comparison supports a clock finding. Clock and related TLS problems should be understood as one possible issue."
    },
    {
      "id": "W10-130",
      "stage": "W10",
      "title": "OS and certificates",
      "what": "Operating-system and certificate context relevant to secure connections.",
      "measures": "Android version, available certificate information, and observed TLS compatibility errors.",
      "purpose": "Help explain supported cases where platform compatibility affects access to secure websites.",
      "interpretation": "An older Android version alone is not a failure. Compatibility concerns require a corresponding TLS error and suitable comparison evidence."
    },
    {
      "id": "W10-140",
      "stage": "W10",
      "title": "DNS / VPN filtering",
      "what": "Possible DNS or VPN filtering associated with selective access problems.",
      "measures": "Filtering-related configuration and evidence that particular destinations fail while other access remains available.",
      "purpose": "Help distinguish selective restrictions from a complete loss of Internet connectivity.",
      "interpretation": "Filtering is context unless blocking is corroborated. One inaccessible service does not prove that all Internet access has failed."
    },
    {
      "id": "W10-150",
      "stage": "W10",
      "title": "Device Wi-Fi optimization",
      "what": "Device Wi-Fi optimization behavior observed during the session.",
      "measures": "Changes such as switching to mobile data, turning Wi-Fi off, and any associated interruption.",
      "purpose": "Identify device settings worth reviewing when automatic connection changes coincide with problems.",
      "interpretation": "An optimization setting or network switch is not inherently faulty. Advice depends on observed behavior and its connection impact."
    },
    {
      "id": "W20-010",
      "stage": "W20",
      "title": "Current Wi-Fi association",
      "what": "Whether the phone is currently associated with the intended Wi-Fi access point.",
      "measures": "Wi-Fi association state, identifiable target network, and observed connection loss.",
      "purpose": "Establish the radio connection before evaluating address configuration or Internet reachability.",
      "interpretation": "An established link satisfies this prerequisite. Confirmed absence is critical; missing IP settings belong to later checks, not association failure."
    },
    {
      "id": "W20-020",
      "stage": "W20",
      "title": "Target access point visibility",
      "what": "Whether the target Wi-Fi access point appears in available observations.",
      "measures": "Target access point visibility, observation times, freshness, and coverage of the surveyed period.",
      "purpose": "Help explain difficulty finding or reconnecting to a particular Wi-Fi network.",
      "interpretation": "Fresh repeated observations support visibility conclusions. Missing permission or repeated cached data cannot establish that the access point disappeared."
    },
    {
      "id": "W20-030",
      "stage": "W20",
      "title": "Signal during connection",
      "what": "Signal conditions observed while establishing or losing the Wi-Fi connection.",
      "measures": "Signal strength, variability, and timing relative to connection attempts or failures.",
      "purpose": "Provide signal context for connection-stage problems and link them to the detailed radio assessment.",
      "interpretation": "One reading describes only that moment. Signal findings are assessed in W30 and are not deducted again here."
    },
    {
      "id": "W20-040",
      "stage": "W20",
      "title": "Supported bands and channels",
      "what": "Compatibility between the device and the network's advertised band and channel requirements.",
      "measures": "Supported bands, available channels, advertised channel width, and relevant device connection capabilities.",
      "purpose": "Identify a clear capability mismatch that could prevent connection to the target access point.",
      "interpretation": "A mandatory unsupported requirement can explain failure. A negotiable channel width or older Wi-Fi standard alone does not prove incompatibility."
    },
    {
      "id": "W20-050",
      "stage": "W20",
      "title": "Security compatibility",
      "what": "Compatibility of network security requirements with the device and connection setup.",
      "measures": "Advertised security modes, authentication information, and available enterprise or certificate-related connection evidence.",
      "purpose": "Help distinguish incompatible security settings from other reasons the phone cannot join a network.",
      "interpretation": "Absence of a security mode supported by both endpoints is a concern. Missing enterprise-authentication evidence is inconclusive; transition mode or protected management frames alone are not faults."
    },
    {
      "id": "W20-060",
      "stage": "W20",
      "title": "System connection errors",
      "what": "Connection errors actually reported while joining the Wi-Fi network.",
      "measures": "Available association or authentication error codes and the stage at which a connection attempt failed.",
      "purpose": "Describe a connection-stage failure using the specific evidence available rather than guessing its cause.",
      "interpretation": "A specific rejection code supports a specific finding. Not found or no response does not prove rejection or an incorrect password."
    },
    {
      "id": "W20-070",
      "stage": "W20",
      "title": "Recorded authentication failures",
      "what": "An observed authentication failure that prevents the phone from joining Wi-Fi.",
      "measures": "Recorded authentication outcome, relevant connection attempt, and whether a link was subsequently established.",
      "purpose": "Identify authentication failure while distinguishing an incorrect password from other access point problems.",
      "interpretation": "Confirmed authentication failure while disconnected is critical. It does not by itself prove the password is wrong; missing evidence is unavailable."
    },
    {
      "id": "W20-080",
      "stage": "W20",
      "title": "Disconnections and reconnect loops",
      "what": "Disconnections and repeated reconnection behavior observed during the session.",
      "measures": "Number of link interruptions, disconnected duration, observation window, and whether the link recovered.",
      "purpose": "Explain unstable association rather than treating every access point change as a failure.",
      "interpretation": "At least 10 seconds of coverage is required. Recovered interruptions of 1/2/3+ deduct 10/20/30%; downtime at least 20% deducts 40%; still disconnected deducts 50%, unless a critical prerequisite overrides it."
    },
    {
      "id": "W20-090",
      "stage": "W20",
      "title": "Network security",
      "what": "Security characteristics publicly advertised by the Wi-Fi network.",
      "measures": "Security type and available indications such as an open network, WEP, or advertised WPS support.",
      "purpose": "Provide security advice separately from the assessment of connection quality and speed.",
      "interpretation": "Open or legacy security may warrant advice, but does not reduce connection-quality scoring. WPS advertisement alone is not proof of a vulnerability."
    },
    {
      "id": "W30-010",
      "stage": "W30",
      "title": "Received signal strength",
      "what": "The strength of the Wi-Fi signal received by the phone.",
      "measures": "Median RSSI in dBm, valid sample count, observed range, and weak-signal observations for the same access point.",
      "purpose": "Identify weak coverage and assess whether it coincides with actual connectivity problems.",
      "interpretation": "Higher, less-negative dBm is stronger. Median >=-55 dBm has no deduction; below -55/-60/-65/-70/-75/-80/-85/-90/-95 deducts 5/10/15/20/25/30/40/45/50%. At least two valid samples are required; an error also needs access impact."
    },
    {
      "id": "W30-020",
      "stage": "W30",
      "title": "Signal stability",
      "what": "How much received signal strength varies during an adequately observed period.",
      "measures": "RSSI variation, including the difference between the 90th and 10th percentiles, in dB.",
      "purpose": "Distinguish consistently weak coverage from a signal that fluctuates substantially over time.",
      "interpretation": "A P90-P10 spread <=12 dB has no deduction; >12/>20/>30 dB deducts 3/6/10%. Requires five samples over at least 10 seconds. Variability alone does not prove router failure."
    },
    {
      "id": "W30-030",
      "stage": "W30",
      "title": "TX/RX PHY link quality",
      "what": "Wi-Fi transmit and receive link rates observed while data is being transferred.",
      "measures": "Loaded TX/RX PHY medians in Mbps and the difference between the two directions.",
      "purpose": "Identify limited or asymmetric radio-link performance without confusing link rate with Internet download speed.",
      "interpretation": "Loaded PHY below 30/12/6 Mbps deducts 5/10/15%. If the slower direction is below 100 Mbps, direction ratios >3/>6/>10 deduct 5/10/15%; use the larger deduction. Idle or insufficient samples are not assessed."
    },
    {
      "id": "W30-060",
      "stage": "W30",
      "title": "Access point and band selection",
      "what": "Whether another observed access point or band may provide a better usable connection.",
      "measures": "Current and candidate signal, band, capabilities, and sustained differences supported by observations.",
      "purpose": "Highlight a connection improvement opportunity when the current access point is weak or limited.",
      "interpretation": "A consistently better supported candidate is an optimization opportunity. It is not proof of a sticky-client fault or a guaranteed speed improvement."
    },
    {
      "id": "W30-070",
      "stage": "W30",
      "title": "Roaming and reconnection",
      "what": "Changes between access points, bands, or connection states and their observed effects.",
      "measures": "Roaming, band switches, reconnection events, and interruptions on the same timeline.",
      "purpose": "Distinguish normal Wi-Fi transitions from transitions associated with a measurable loss of connectivity.",
      "interpretation": "A transition without observed interruption can be normal. Several symptoms from the same transition should not be counted as separate failures."
    },
    {
      "id": "W30-090",
      "stage": "W30",
      "title": "Same-name access point settings",
      "what": "Configuration differences between access points that advertise the same network name.",
      "measures": "Observed security, capability, band, and other relevant settings across same-name access points.",
      "purpose": "Explain why connection behavior can differ when moving between access points within a named network.",
      "interpretation": "Different settings are context. A shared name or configuration difference alone does not prove unstable access or reduce the stability score."
    },
    {
      "id": "W30-100",
      "stage": "W30",
      "title": "Per-link MLO quality",
      "what": "Available information about individual links in a Wi-Fi multi-link connection.",
      "measures": "Per-link signal, connection state, variation, and relevant comparisons where the device exposes them.",
      "purpose": "Interpret weak or variable parts of an MLO connection without judging only one link in isolation.",
      "interpretation": "An unused or unaffiliated link is not automatically a fault. Overall impact requires available data and suitable connection-level comparisons."
    },
    {
      "id": "W30-120",
      "stage": "W30",
      "title": "Wi-Fi connection capability",
      "what": "The supported Wi-Fi link-speed ceiling of the phone and connected access point.",
      "measures": "Known maximum supported PHY rates, the limiting endpoint ceiling, and associated channel-width context.",
      "purpose": "Identify connection capabilities that constrain achievable Wi-Fi speed even when signal is adequate.",
      "interpretation": "A known limiting ceiling <150 Mbps deducts 5%; 150 to <300 Mbps deducts 3%. Pass requires both endpoints known and >=300 Mbps. Missing capability is not zero; PHY is not Internet throughput."
    },
    {
      "id": "W40-010",
      "stage": "W40",
      "title": "Survey freshness and coverage",
      "what": "How current and complete the available Wi-Fi channel observations are.",
      "measures": "Survey age, freshness, coverage, and restrictions affecting available scan information.",
      "purpose": "Show whether channel advice is based on current observations or incomplete information.",
      "interpretation": "Fresh, adequate coverage supports interpretation. Stale or missing survey data is a limitation, not a connection failure or evidence of an empty band."
    },
    {
      "id": "W40-020",
      "stage": "W40",
      "title": "Channel availability",
      "what": "Availability of the primary channel and component channels required by the selected width.",
      "measures": "Primary channel, frequency, channel width, component channels, and available channel-use information.",
      "purpose": "Identify unavailable channel requirements and help interpret the network's actual channel configuration.",
      "interpretation": "Known unavailable requirements deserve attention. Missing availability data is unverified; DFS alone is not a fault, and advertised neighboring channels do not prove measured coverage."
    },
    {
      "id": "W40-030",
      "stage": "W40",
      "title": "Recommended channel and width",
      "what": "Channel and width options that may offer a better supported operating choice.",
      "measures": "Observed channel conditions, candidate scores, channel widths, and available usability evidence across the survey.",
      "purpose": "Guide channel optimization using meaningful, sustained differences in the local Wi-Fi environment.",
      "interpretation": "A better supported option is a recommendation, not a promise of higher speed. Unobserved bands cannot be assumed empty or assigned perfect quality."
    },
    {
      "id": "W40-040",
      "stage": "W40",
      "title": "Channel contention and overlap",
      "what": "Contention and overlap around the current Wi-Fi channel.",
      "measures": "Current channel quality score, channel width, and neighboring access point overlap from fresh observations.",
      "purpose": "Identify channel conditions that may contribute to radio interference or reduced performance.",
      "interpretation": "A current channel score >=7 has no deduction; <7/<5/<3 deducts 3/6/10%. Requires two fresh surveys. Access point count alone does not prove slow connectivity."
    },
    {
      "id": "W40-060",
      "stage": "W40",
      "title": "Channel utilization and clients",
      "what": "Channel activity and connected-client information advertised by the access point.",
      "measures": "Advertised channel utilization percentage, station count, and changes across distinct observations.",
      "purpose": "Provide evidence of a busy radio channel while distinguishing utilization from connected-device count.",
      "interpretation": "Median utilization <=70% has no deduction; >70/>85/>95% deducts 3/6/10%. Requires three distinct observations over 10 seconds outside transfers. Client count alone does not deduct."
    },
    {
      "id": "W40-070",
      "stage": "W40",
      "title": "Access point channel changes",
      "what": "Changes in the access point's operating channel during the observed period.",
      "measures": "Observed channel switches, access point visibility, timing, and any correlated connection interruption.",
      "purpose": "Explain brief interruptions or changing radio conditions when the access point moves channels.",
      "interpretation": "Channel changes are not automatically faults. Severity depends on observed connectivity impact, and the same transition should not be counted again elsewhere."
    },
    {
      "id": "W50-010",
      "stage": "W50",
      "title": "IPv4 configuration",
      "what": "Availability of usable IPv4 address configuration on the Wi-Fi connection.",
      "measures": "Assigned IPv4 information, provisioning state, and whether a usable IPv6 alternative exists.",
      "purpose": "Distinguish missing network addressing from valid operation on an IPv6-only connection.",
      "interpretation": "No usable IPv4 or IPv6 address after provisioning while associated deducts 60%. One usable address family is sufficient; missing IPv4 alone is not failure."
    },
    {
      "id": "W50-020",
      "stage": "W50",
      "title": "IPv6 configuration",
      "what": "Availability and scope of the connection's IPv6 configuration.",
      "measures": "IPv6 addresses, usable scope, and configuration relevant to reaching local or Internet destinations.",
      "purpose": "Explain IPv6 availability without treating a valid IPv4-only network as broken.",
      "interpretation": "IPv4-only operation is valid. Link-local IPv6 alone does not establish Internet configuration; actual IPv6 reachability is assessed separately."
    },
    {
      "id": "W50-030",
      "stage": "W50",
      "title": "Addresses and network routes",
      "what": "Whether the connection has addresses and routes suitable for the intended destinations.",
      "measures": "Usable IP addresses, matching routes, gateway information where required, and evidence of working access.",
      "purpose": "Identify missing or unsuitable addressing and routing that can prevent communication beyond the local link.",
      "interpretation": "No usable address with a matching default route after provisioning deducts 60%. Missing telemetry is not failure; working VPN or confirmed Internet access prevents a false missing-route finding."
    },
    {
      "id": "W50-040",
      "stage": "W50",
      "title": "Gateway connectivity",
      "what": "Whether the local next hop responds to the types of requests measured.",
      "measures": "Gateway response observations, available connection outcomes, and evidence that traffic can still pass through it.",
      "purpose": "Separate a quiet gateway from a genuinely unusable local network path.",
      "interpretation": "A reply or refusal proves a responder was reached. No ping reply alone does not prove gateway failure when forwarding or Internet access works."
    },
    {
      "id": "W50-050",
      "stage": "W50",
      "title": "Gateway connection stability",
      "what": "The stability of measured responses from the local gateway.",
      "measures": "Idle gateway round-trip time, missing-response percentage, and the number of attempts and replies.",
      "purpose": "Assess local responsiveness while accounting for gateways that limit or ignore diagnostic replies.",
      "interpretation": "RTT >30/>100/>300 ms deducts 3/5/8%; loss >0/>10/>30/>50% deducts 3/8/12/15%; use the larger. Requires 10 attempts and 3 replies. A fully silent gateway is unavailable, not automatically failed."
    },
    {
      "id": "W50-060",
      "stage": "W50",
      "title": "Network configuration changes",
      "what": "Changes in IP configuration or network routing during the session.",
      "measures": "Address, gateway, route, or related configuration changes and their relationship to observed connectivity.",
      "purpose": "Explain failures or recovery that coincide with a network configuration change.",
      "interpretation": "A valid change is not automatically a warning. Multiple DHCP sources are only an investigation clue when accompanied by anomalous configuration."
    },
    {
      "id": "W50-080",
      "stage": "W50",
      "title": "IP / gateway anomalies",
      "what": "Evidence suggesting an IP address conflict or abnormal gateway identity behavior.",
      "measures": "Device identities, gateway changes, address-conflict indications, and related response-loss or connectivity impact.",
      "purpose": "Identify supported conflict symptoms without assuming malicious activity or naming an attacker.",
      "interpretation": "A qualified gateway-loss signature deducts 5%; repeated identity conflict with impact 10%; current-address conflict or required IPv6 duplicate-address failure with impact 15%. Identity differences without impact are advisory."
    },
    {
      "id": "W50-110",
      "stage": "W50",
      "title": "LAN device discovery",
      "what": "Reachability and discovery of the local devices and services actually checked.",
      "measures": "Replies from tested LAN destinations, service-discovery observations, and relevant unicast or multicast comparisons.",
      "purpose": "Investigate local access restrictions while separating LAN behavior from Internet connectivity.",
      "interpretation": "Successful replies support local reachability. Missing discovery alone is inconclusive; intentional client isolation is not an Internet failure."
    },
    {
      "id": "W50-120",
      "stage": "W50",
      "title": "Uplink and backhaul",
      "what": "Evidence about the internal uplink or backhaul between network components.",
      "measures": "Available negotiated-link information, supported telemetry, and performance symptoms for the relevant local segment.",
      "purpose": "Identify a possible internal bottleneck without blaming every speed limit on a cable or port.",
      "interpretation": "A 100 Mbps link requires negotiated-link evidence. A roughly 90-95 Mbps speed ceiling alone is a symptom, not proof of a faulty cable or backhaul."
    },
    {
      "id": "W60-010",
      "stage": "W60",
      "title": "Router and WAN path",
      "what": "Router and upstream-path identity information actually available to the diagnosis.",
      "measures": "Available router identity, public IP, Internet provider or ASN, and related path context.",
      "purpose": "Explain the observed topology and identify which upstream connection the report describes.",
      "interpretation": "Identity information alone neither proves a fault nor confirms router or WAN health. Unavailable fields should remain unknown."
    },
    {
      "id": "W60-020",
      "stage": "W60",
      "title": "WAN session stability",
      "what": "The router's WAN connection state and observed WAN-session interruptions.",
      "measures": "WAN status, session uptime or reconnections, relevant error information, and independently measured Internet impact.",
      "purpose": "Distinguish a confirmed upstream-session problem from missing router status or an isolated test failure.",
      "interpretation": "Confirmed WAN disconnected with impaired Internet deducts 60%. Recovered events of 1/2/3+ with impact deduct 10/20/30%. Missing router telemetry is unavailable; connected status alone does not prove Internet access."
    },
    {
      "id": "W60-030",
      "stage": "W60",
      "title": "WAN physical link",
      "what": "Physical WAN-link state supported by telemetry from the current gateway.",
      "measures": "Physical-link status, negotiated speed where available, repeated observations, and accompanying Internet impairment.",
      "purpose": "Identify an actual upstream physical-link problem rather than inferring one from speed alone.",
      "interpretation": "Current physical WAN down with impaired Internet deducts 60%; a recovered down event with impact 15%. Requires two relevant observations; unavailable router telemetry is not failure."
    },
    {
      "id": "W60-040",
      "stage": "W60",
      "title": "WAN traffic",
      "what": "WAN traffic volumes and supported evidence of traffic outside the measurement.",
      "measures": "Available upstream traffic counters, traffic changes, and simultaneous reference measurements of connection quality.",
      "purpose": "Assess whether other traffic may coincide with degraded connectivity or reduced performance.",
      "interpretation": "Traffic volume alone is not a fault. Attribution to particular devices requires per-client router information, and impact needs simultaneous evidence."
    },
    {
      "id": "W60-050",
      "stage": "W60",
      "title": "Router resources",
      "what": "Router resource or capacity conditions that can actually be verified.",
      "measures": "Available resource telemetry and corresponding measured access or performance symptoms.",
      "purpose": "Explain supported resource concerns without inventing CPU, memory, or connection-table failures.",
      "interpretation": "A resource finding needs relevant telemetry and observed impact. Missing router data leaves the cause unknown rather than confirming a resource problem."
    },
    {
      "id": "W60-060",
      "stage": "W60",
      "title": "WAN address and NAT",
      "what": "Addressing evidence about upstream NAT and directly assigned public IPv4 availability.",
      "measures": "Available WAN address, observed public address, and supported signs of private addressing or upstream translation.",
      "purpose": "Explain topology that may matter for inbound connections or some applications.",
      "interpretation": "Double NAT or carrier-grade NAT is topology context, not automatically an Internet error or score deduction. Missing address evidence is inconclusive."
    },
    {
      "id": "W70-010",
      "stage": "W70",
      "title": "Network sign-in requirements",
      "what": "Whether the network requires a sign-in or acceptance step before normal Internet access.",
      "measures": "Portal indicators, relevant redirect or login responses, and independently measured access beyond the portal.",
      "purpose": "Explain limited connectivity on hotspots, guest networks, or networks requiring renewed authentication.",
      "interpretation": "A confirmed portal with some outside access deducts 20%; one preventing outside access deducts 60%. An Android portal flag alone is a warning without deduction."
    },
    {
      "id": "W70-030",
      "stage": "W70",
      "title": "DNS resolution",
      "what": "Whether hostnames can be resolved to usable addresses on the measured connection.",
      "measures": "Successful and failed domain lookups, address-family availability, and results across independent providers.",
      "purpose": "Identify name-resolution problems while distinguishing a single unavailable hostname from broader DNS failure.",
      "interpretation": "Failure fractions of 0, up to 1/3, up to 2/3, below 1, and all deduct 0/10/20/40/60%. Requires three domains and two providers. Missing IPv6 answers alone are not failure."
    },
    {
      "id": "W70-040",
      "stage": "W70",
      "title": "DNS stability",
      "what": "How consistently and promptly DNS lookups succeed across repeated observations.",
      "measures": "Comparable successful lookup times by domain, including the median of domain medians in milliseconds.",
      "purpose": "Show whether delayed name resolution may contribute to slow initial access.",
      "interpretation": "Median DNS time <=500 ms has no deduction; >500/>1000/>2000 ms deducts 2/5/8%. Requires two domains with three successful comparable samples each. This does not isolate server processing time."
    },
    {
      "id": "W70-070",
      "stage": "W70",
      "title": "Direct-IP reference check",
      "what": "Reachability of a known address used as a reference alongside DNS results.",
      "measures": "Direct-IP reference outcomes and corresponding hostname-resolution or other access observations.",
      "purpose": "Distinguish a resolution-layer problem from a broader destination or network-path problem.",
      "interpretation": "Working IP access while DNS fails supports a DNS finding. A failed reference alone cannot establish a complete Internet outage."
    },
    {
      "id": "W70-080",
      "stage": "W70",
      "title": "IPv4 / IPv6 connectivity",
      "what": "How the configured IPv4 and IPv6 paths compare in actual reachability.",
      "measures": "Address-family-specific outcomes, configured family availability, and comparisons across independent providers.",
      "purpose": "Find a partially broken IP family without penalizing networks providing only one usable family.",
      "interpretation": "A configured family partly or fully failing while the other works deducts 5/10%, with two providers required. An unconfigured family does not deduct."
    },
    {
      "id": "W70-100",
      "stage": "W70",
      "title": "TCP connectivity",
      "what": "Whether TCP connections can reach the specific destinations and ports tested.",
      "measures": "Successful connections, failures, refusals, and failed-domain proportion across independent destinations.",
      "purpose": "Identify transport-layer access problems and distinguish broad failure from a destination-specific response.",
      "interpretation": "Failed-domain fractions <=1/3, <=1/2, <0.8, <1, and all deduct 0/10/25/45/60%. Requires three domains and two providers. A refused connection still demonstrates a response."
    },
    {
      "id": "W70-110",
      "stage": "W70",
      "title": "TLS validation",
      "what": "Whether secure connections complete TLS and certificate validation successfully.",
      "measures": "TLS errors, certificate validation outcomes, independent affected providers, and successful HTTPS comparisons.",
      "purpose": "Explain secure-connection failures, including those associated with device-clock or certificate problems.",
      "interpretation": "An isolated TLS failure warns without deduction. Two affected independent providers deduct 20% if other HTTPS works, or 60% when all applicable TLS attempts fail after TCP succeeds."
    },
    {
      "id": "W70-130",
      "stage": "W70",
      "title": "HTTP / HTTPS responses",
      "what": "Whether Internet destinations can be reached through HTTP or HTTPS.",
      "measures": "Web connection outcomes, response availability, failed-domain proportion, and independent provider coverage.",
      "purpose": "Separate inaccessible network paths from portal behavior, service restrictions, or remote server errors.",
      "interpretation": "Transport-failure fractions <=1/3, <=1/2, <0.8, <1, and all deduct 0/10/25/45/60%. Requires three domains and two providers. A valid HTTP error response still demonstrates reachability."
    },
    {
      "id": "W70-150",
      "stage": "W70",
      "title": "Device Internet status",
      "what": "Agreement between Android's Internet-status indication and access actually measured.",
      "measures": "System validation or portal state, current route, and successful web responses from independent providers.",
      "purpose": "Explain situations where the device's connectivity label differs from observed Internet access.",
      "interpretation": "Disagreement with successful HTTP from two providers on the same active route deducts 5%, unless already represented by an access or portal issue. Validation never guarantees every service works."
    },
    {
      "id": "W70-160",
      "stage": "W70",
      "title": "Popular service access",
      "what": "Access to individual popular services compared with independent working references.",
      "measures": "Service-domain outcomes, affected access layers, failed-domain proportion, and availability of comparison services.",
      "purpose": "Find selective access problems without treating one service's restriction as complete Internet loss.",
      "interpretation": "Failed-domain fractions <=10%, <=30%, <=50%, and higher deduct 0/3/6/10%. Requires five domains and two providers. Server errors or service policy restrictions are not client transport failures."
    },
    {
      "id": "W70-170",
      "stage": "W70",
      "title": "VPN / proxy path",
      "what": "Connectivity and authentication behavior on the VPN or proxy path actually in use.",
      "measures": "Route outcomes, proxy responses, authentication-required responses, and independent control access.",
      "purpose": "Explain measured problems on an intermediary path while distinguishing unsupported measurement from genuine failure.",
      "interpretation": "Repeated confirmed HTTP 407 from the applied proxy deducts 20% if some access works, or 60% if all controls are blocked. Unsupported configurations remain unavailable."
    },
    {
      "id": "W70-190",
      "stage": "W70",
      "title": "UDP connectivity",
      "what": "Whether the tested UDP services return replies before their response deadlines.",
      "measures": "Sent UDP requests, received replies, deadline non-response rate, and comparisons between available service providers.",
      "purpose": "Investigate protocol-specific response problems alongside TCP and other access results.",
      "interpretation": "After excluding an isolated silent provider, non-response of 0, <=20%, <=50%, and >50% deducts 0/5/10/15%. Requires five requests and one reply. Both providers silent is not proof of blocking."
    },
    {
      "id": "W70-200",
      "stage": "W70",
      "title": "Traceroute",
      "what": "The responding hops observed on a route toward a reachable website.",
      "measures": "Returned hop information, relevant ICMP errors, trace completeness, and destination reachability.",
      "purpose": "Provide route context without guessing the fault location of nonresponding hops.",
      "interpretation": "Reaching the destination has no deduction; a completed supported trace that does not reach it deducts 5%. Silent intermediate hops are not individually penalized; unsupported or cancelled traces are unavailable."
    },
    {
      "id": "W70-210",
      "stage": "W70",
      "title": "Internet connection preference",
      "what": "Whether the phone prefers mobile data even though connected Wi-Fi has verified Internet access.",
      "measures": "Active default transport, connected Wi-Fi path, and successful Wi-Fi access across independent providers.",
      "purpose": "Highlight a preference that may prevent the user from using a working Wi-Fi connection.",
      "interpretation": "Confirmed mobile preference despite working Wi-Fi deducts 3%. Mixed, VPN, unknown, portal, or inadequately observed paths are inconclusive. The result does not establish why Android chose mobile data."
    },
    {
      "id": "W80-010",
      "stage": "W80",
      "title": "Idle Internet latency",
      "what": "Response delay to the selected Internet target while the connection is not under test load.",
      "measures": "Idle round-trip times in milliseconds, median, available upper-percentile information, attempts, replies, and measurement window.",
      "purpose": "Establish a baseline for responsiveness and later delay increases under traffic load.",
      "interpretation": "Median RTT <=300 ms has no deduction; >300/>600/>1000 ms deducts 5/10/20%. Requires 10 attempts and 3 replies on the same path. High delay alone is not an outage."
    },
    {
      "id": "W80-030",
      "stage": "W80",
      "title": "Short download speed test",
      "what": "Download goodput actually observed during a short controlled transfer.",
      "measures": "Received data volume, transfer duration, and measured download throughput in Mbps.",
      "purpose": "Provide a practical download snapshot without claiming the maximum speed of the Internet subscription.",
      "interpretation": ">=20 Mbps deducts 0%; 5 to <20 deducts 5%; 1 to <5 deducts 10%; >0 to <1 deducts 20%. Rate-limited or invalid measurements are unavailable, not 0 Mbps."
    },
    {
      "id": "W80-040",
      "stage": "W80",
      "title": "Loaded latency and recovery",
      "what": "The increase in response delay while downloading or uploading, and subsequent recovery.",
      "measures": "Idle and loaded RTT medians, their ratio, transfer direction, and recovery observations on the same path.",
      "purpose": "Identify degradation under load without claiming that a short clean test proves congestion is absent.",
      "interpretation": "Download ratio bands >2.5-5, >5-15, and >15 require loaded RTT >200/500/1000 ms for 3/5/10% deductions. Upload bands >3.5-7, >7-20, and >20 require >300/600/1500 ms. Use the larger deduction from either direction; no lower-band fallback when its absolute threshold fails."
    },
    {
      "id": "W80-060",
      "stage": "W80",
      "title": "Upload speed",
      "what": "Upload goodput based on data confirmed received during a short transfer.",
      "measures": "Confirmed uploaded volume, transfer duration, and measured upload throughput in Mbps.",
      "purpose": "Describe upstream performance without treating sender progress as proof of successful receipt.",
      "interpretation": ">=5 Mbps deducts 0%; 1 to <5 deducts 5%; 0.25 to <1 deducts 10%; >0 to <0.25 deducts 20%. Rate-limited or unconfirmed results are unavailable, not 0 Mbps."
    },
    {
      "id": "W80-070",
      "stage": "W80",
      "title": "Transfer stability",
      "what": "Variability and pauses within valid portions of a data transfer.",
      "measures": "Continuous zero-data periods and throughput variation relative to the median across comparable windows.",
      "purpose": "Explain transfers that pause or fluctuate despite an acceptable overall average speed.",
      "interpretation": "Zero-data periods of at least 1/2/3 seconds deduct 5/10/15%. With adequate coverage, (P90-P10)/P50 >1/>2 deducts 3/5%; use the larger. Measurement pauses or incomplete uploads are excluded."
    },
    {
      "id": "W80-080",
      "stage": "W80",
      "title": "Missing replies and jitter",
      "what": "Missing ping replies and changes between adjacent successful response times.",
      "measures": "Deadline non-response percentage, jitter in milliseconds, jitter-to-median ratio, and supporting access evidence.",
      "purpose": "Assess consistency beyond average latency while accounting for targets that do not reliably answer ping.",
      "interpretation": "Loss >0/>10/>20/>40/>60/>80% deducts 5/10/20/30/40/50%, subject to corroboration; one uncorroborated target is capped at 5%. Jitter >20 ms with ratios >0.25/>0.5/>1 deducts 3/5/8%; use the larger. Silent ping with working web access is not an outage."
    },
    {
      "id": "W80-090",
      "stage": "W80",
      "title": "Background traffic and temperature",
      "what": "Device temperature and background-traffic context accompanying a measured performance decline.",
      "measures": "Android thermal state, comparable throughput changes, and verified traffic shares on the same route.",
      "purpose": "Identify supported device-side conditions that may affect a speed or stability result.",
      "interpretation": "Deduct 5% for severe thermal state lasting at least 5 seconds, or moderate thermal state/background share >=50% with throughput decline >=30%. Battery temperature alone does not prove a heat-related reduction in device performance."
    },
    {
      "id": "W80-100",
      "stage": "W80",
      "title": "Reference target comparison",
      "what": "Performance differences between the reference destinations and paths actually measured.",
      "measures": "Comparable destination-specific latency or throughput observations and related connection context.",
      "purpose": "Show whether a performance symptom is widespread or more specific to the tested path.",
      "interpretation": "Differences are contextual, not a separate deduction. Throughput below Wi-Fi link rate or a roughly 90-95 Mbps plateau alone does not identify a faulty component."
    },
    {
      "id": "W90-010",
      "stage": "W90",
      "title": "Anomaly verification",
      "what": "Whether an observed anomaly persists, recovers, or appears limited to a particular destination.",
      "measures": "Repeated findings, successful comparisons, recovery timing, and the availability of required evidence.",
      "purpose": "Distinguish recurring problems from temporary interruptions while retaining the history of what occurred.",
      "interpretation": "A later success does not erase an earlier failure. Unmet prerequisites and unperformed checks are not additional network faults."
    },
    {
      "id": "W90-020",
      "stage": "W90",
      "title": "Signal and connectivity correlation",
      "what": "How Wi-Fi signal changes relate in time to connectivity or performance problems.",
      "measures": "Signal-strength variation, connection symptoms, matching times, and corroborating observations.",
      "purpose": "Indicate whether a radio-link problem is a supported explanation for reduced connection quality.",
      "interpretation": "Coinciding events increase confidence but do not prove causation alone. Signal penalties remain in W30 and are not applied again here."
    },
    {
      "id": "W90-030",
      "stage": "W90",
      "title": "Roaming and interruption correlation",
      "what": "How roaming, band changes, and reconnections relate to service interruptions.",
      "measures": "Transition timing, interruption timing, repeated switching, and observations before and after the event.",
      "purpose": "Explain whether a Wi-Fi handover coincided with a noticeable connection problem.",
      "interpretation": "A transition with no measured interruption is not a fault. Multiple consequences of the same handover remain one incident."
    },
    {
      "id": "W90-040",
      "stage": "W90",
      "title": "Configuration and failure correlation",
      "what": "How network configuration changes align with failures or recovery.",
      "measures": "Addressing or route changes, access outcomes, recovery timing, and available comparison evidence.",
      "purpose": "Identify configuration-related hypotheses while preserving uncertainty about the underlying cause.",
      "interpretation": "Correlation can support investigation, but confirmed causation needs stronger evidence. Related addressing findings are consolidated rather than penalized twice."
    },
    {
      "id": "W90-050",
      "stage": "W90",
      "title": "Fault localization",
      "what": "The most specific affected part of the network supported by the report's evidence.",
      "measures": "Combined Wi-Fi, local addressing, gateway, Internet-path, and individual-service results.",
      "purpose": "Focus troubleshooting on the supported scope instead of replacing equipment or changing unrelated settings.",
      "interpretation": "A finding beyond the gateway does not automatically identify the ISP or router as the cause. Missing router telemetry does not invalidate other measured results."
    },
    {
      "id": "W90-060",
      "stage": "W90",
      "title": "Evidence confidence",
      "what": "How much confidence the available evidence supports for the report's conclusions.",
      "measures": "Completed and unavailable checks, evidence coverage, supported verdicts, and information missing from the assessment.",
      "purpose": "Make uncertainty visible so users and AI tools do not interpret incomplete testing as a perfect connection.",
      "interpretation": "N/A is neither pass nor failure and does not deduct. A few passing checks do not establish a perfect score; missing core evidence can leave the score unavailable."
    },
    {
      "id": "W90-070",
      "stage": "W90",
      "title": "Conclusions and recommendations",
      "what": "Consolidated issues, supporting evidence, and suggested next actions in the report.",
      "measures": "Distinct findings, related evidence, recovered incidents, and recommendations without repeatedly counting the same cause.",
      "purpose": "Turn measurements into a concise troubleshooting summary while keeping independent problems and advisory notes distinct.",
      "interpretation": "One DNS problem must not become several unperformed transport failures. Recovered incidents remain documented; security or optimization advice does not automatically reduce the stability score."
    },
    {
      "id": "W90-080",
      "stage": "W90",
      "title": "Report summary",
      "what": "The final summary of the session's findings and their observation context.",
      "measures": "Supported conclusions, original errors, verification times, recovery state, and important remaining uncertainties.",
      "purpose": "Help users and AI tools understand what the report establishes and what needs further investigation.",
      "interpretation": "Measured improvement before and after a change does not alone prove the change caused it. A symptom that does not recur may need further observation."
    }
  ]
}
