Privacy Policy
Effective: September 1, 2026
Detriment is a WiFi security scanner that runs on your device. We built it with privacy as a core principle.
What stays on your device
All of the following data is stored locally on your device and is not included in Detriment API requests:
- IP addresses of devices on your network
- Full MAC addresses and device identifiers
- Device hostnames and custom names you assign
- Your WiFi network name (SSID)
- Scan history, scores, and trusted device preferences
Limited lookup data
To enrich scan results with manufacturer names, device-type hints, port explanations, and known security notes, Detriment sends the following limited scan data to our API (api.detriment.ai) after scans:
| Data | Example | Purpose |
|---|---|---|
| MAC prefix (first 3 bytes) | C0:06:C3 | Identifies manufacturer (e.g., "TP-Link"), not your specific device |
| Open port numbers | [80, 443, 554] | Improves device type detection |
No lookup request includes your local device IP address, full MAC address, device name, network name, precise location, or any account identifier. Like any internet service, our API may receive technical request metadata such as your public IP address while handling the request.
Optional AI explanations
When you open an optional AI explanation, the app may send a closed set of action and evidence categories plus small aggregate counts to api.detriment.ai. The request does not include device or network names, IP addresses, full or partial MAC addresses, open-port numbers, location, scan time, free text, or an account identifier.
Our API may route this sanitized request through Vercel AI Gateway to an OpenAI model hosted through Microsoft Azure, including a configured low-cost fallback model, solely to write the explanation. Detriment permits this route only while the Gateway catalog identifies it as no-training and zero-data-retention capable, and Detriment does not use these requests to train its own models. Provider handling is governed by the applicable Vercel, Microsoft, and OpenAI service terms and our verified account configuration. If the feature is disabled, its verified privacy or budget boundary is missing, or a provider is unavailable, Detriment returns a deterministic explanation without calling a model.
Optional scan feedback
After a scan finishes, you may choose Helpful, or Needs work and one categorical reason. Nothing is sent merely because the prompt appears. If you tap a response, the app sends only that response, broad scan coverage and outcome categories, a bucketed device count, whether a prior scan existed, and the app language to api.detriment.ai. It does not send free text, exact counts or dates, network or device names, IP or MAC addresses, location, or an account, advertising, or persistent device identifier.
Detriment uses these optional categories only to evaluate scan reliability and result clarity. The feedback endpoint does not call an AI model or write to the device-intelligence database.
Optional private usage analytics
Detriment asks before sending app-usage analytics. If you choose Share App Usage, the app sends one compact summary when a consented app session ends. The summary contains only an entry-state category, a broad duration bucket, an unordered set of visited feature areas, bucketed counts for scans and fix actions, yes/no values for onboarding completion, a prior scan, and the weekly check-in setting, plus the app version, iOS major version, and app language. You can turn this off at any time in Settings.
The summary has no account, user, device, advertising, or session identifier; no ordered clickstream or exact timestamp; and no network name, device detail, address, port, location, screen content, or free text. Detriment uses it only to measure product activation, scan reliability, and feature usefulness. The analytics endpoint writes the bounded summary to server logs and does not call an AI model or write to the device-intelligence database.
Private study export
Share Private Study Data creates a versioned JSON file containing aggregate counts and yes/no milestones, such as completed scans, actions shown, fixes started, and return milestones. It excludes network and device names, addresses, hardware identifiers, open ports, location, free text, account identifiers, and exact dates. Detriment does not upload this file automatically: the iOS share sheet shows you the destination, and nothing leaves the iPhone unless you choose to share it. If you join a separately consented research study and send the file to its operator, that study's consent and privacy terms also apply.
Location data
Detriment requests location permission because Apple requires it for apps that read your WiFi network name (SSID) and security type via the NEHotspotNetwork API. This is an iOS platform requirement, not our choice.
We do not access, store, or transmit your geographic location. The permission is used solely to access the WiFi information API.
Local network access
Detriment accesses your local network to discover devices via TCP connection attempts, Bonjour/mDNS service browsing, and reads the system ARP cache for MAC addresses. Full discovered device data remains on your device except for the limited lookup data described above.
Third-party services
The Detriment iOS app contains zero third-party analytics, advertising, crash reporting, or tracking SDKs. App requests go to our API at api.detriment.ai. Only the optional AI explanation path may then use Vercel AI Gateway and an Azure-hosted OpenAI model as described above.
Website analytics
The detriment.ai website uses Vercel Web Analytics to count visits and page views. It stores anonymous, aggregated data such as the page visited, referrer, approximate location, browser, operating system, device type, and event time. It does not use cookies or associate analytics with an individual or IP address. This applies to the website only and is not included in the iOS app.
Data retention
Lookup payloads are used to return enrichment results and are not stored as scan reports by the Detriment API. AI explanations are cached by Detriment only as a short-lived hash-keyed result containing the sanitized response; the cache contains no device or network identifiers. Detriment runtime logs contain bounded aggregate operational fields such as route, duration, status, token counts, fallback reason, and returned cost. When you explicitly submit scan feedback or consent to private usage analytics, those logs also contain the categorical fields described above. Logs do not contain app request bodies or household identifiers and remain subject to Detriment's configured server-log retention and access controls. Provider-side handling follows the terms and verified account configuration described above. We will update this policy before retaining additional app data or beginning any new automatic collection.
Children
Detriment does not knowingly collect data from children under 13.
Changes
We may update this policy. Changes will be posted on this page with an updated effective date.
Contact
Questions? Email privacy@detriment.ai or visit Support.