Privacy Policy

Last updated August 31, 2026

Who we are

Outlaw Data is a social media analytics dashboard operated by Johnny Outlaw LLC. You connect the social accounts you already own or manage, and we chart their performance over time in one place. This policy explains exactly what we access, why, where it lives, and how to get rid of it.

We do not sell personal data, we do not share it with advertisers or data brokers, and we do not use platform data to build advertising profiles or to train machine learning models.

What we collect

Account information. When you sign up we store your email address, your display name, and the workspace you belong to. Authentication is handled by Supabase Auth; if you sign in with Google we receive your email address and name, never your password.

Social platform data. When you connect a platform, we store an access token for that connection and the metrics we pull on your behalf. For Facebook and Instagram this means: Page and Instagram account identifiers and names, follower and fan counts, aggregate daily insight metrics (reach, impressions, engagement, profile views and similar), your own published posts and their captions, media thumbnails and permalinks, per-post performance metrics, and aggregate audience demographics (city, country, age band, gender distribution).

Aggregate demographics are exactly that — counts by bucket. We never receive, request, or store the identity of an individual follower, and we do not read comments, direct messages, or private messages.

Google files you upload. If you choose Upload Google Data, we store the Google Takeout archives, folders and individual files you select. Those exports can include search and browsing activity, YouTube history, Assistant or Gemini activity, Home and Nest events, documents, audio, images, videos, and precise Location History. Supported activity and location formats are also indexed into dated events and coordinate points so we can produce the Google Data dashboard. We never access files you did not select.

Location enrichment. To turn coordinates into useful city, state and country labels, we assign each coordinate to an approximate two-decimal geographic cell (about 1.1 km north-to-south). We store the cell and its general place labels in a shared lookup that contains no user, workspace, profile, timestamp or route identifier. Exact coordinates and street addresses are not placed in that lookup.

Product usage. We record page views within the dashboard so we can see which reports get used. This is first-party and is not shared with third-party ad networks.

Billing. Subscription payments are processed by Stripe. Card numbers never reach our servers; we store only a Stripe customer identifier and your plan status.

Stripe reporting (when an administrator chooses to connect it). Stripe shows the administrator an authorization screen before we receive a read-only OAuth access token. We encrypt that token at rest and use it only to retrieve the account's balances, payments, payouts, fees, refunds, disputes, subscriptions, and connected-account transfer totals for the reporting dashboard. We never receive or store the account's secret key, card numbers, or customer payment details.

Meta permissions we request, and why

When you connect Facebook or Instagram, Facebook shows you a consent screen listing the permissions below. Each one maps to a specific feature — we do not request permissions we have no use for.

  • The list of Facebook Pages you manage (pages_show_list) So we can show you which Pages are available to connect. We store only the Page id and name of the Pages you choose.
  • Engagement metrics for your Pages (pages_read_engagement) To populate the reach, engagement and follower charts on your dashboard.
  • Posts published by your Pages (pages_read_user_content) To list your own Page posts alongside their performance metrics. We do not read comments or messages from other people.
  • Page and Instagram insights (read_insights) This is the metric history the product exists to chart. Stored as aggregate daily values, never per-person data.
  • Your Instagram professional account profile (instagram_basic) To identify the Instagram account linked to a connected Page and label it in your dashboard.
  • Instagram account and media insights (instagram_manage_insights) To chart Instagram reach, impressions, follower counts and per-post performance.

You can review or revoke this access at any time in your Facebook settings under Apps and Websites. When Facebook notifies us that you removed the app, we destroy the stored tokens and stop syncing. If a notification does not arrive, the next scheduled sync detects the revoked token and stops pulling data — within 24 hours, not instantly.

TikTok permissions we request, and why

When you connect a TikTok account, TikTok shows you a consent screen listing the permissions below. Each one maps to a specific dashboard feature, and we do not request permissions we have no use for. We never post, edit, or delete content on your behalf.

  • Your TikTok profile identifier (user.info.basic) So we can confirm which TikTok account your permission applies to and label it in your dashboard. We store the open id and display name only.
  • Your TikTok profile details (user.info.profile) To show your account name, avatar and profile link on the Connect screen and in the dashboard header for the connected account.
  • Your TikTok account statistics (user.info.stats) To chart follower counts, likes, video counts and similar aggregate account metrics over time.
  • Your published TikTok videos (video.list) To list your own videos alongside their view counts and engagement metrics. We do not download video files, read comments, or access direct messages.

You can review or revoke this access at any time in the TikTok app under Settings → Security → Manage app permissions. We do not receive a push notification when you revoke. The next scheduled sync detects the revoked token and stops pulling data, typically within 24 hours. You can also remove the connection immediately from Connect Accounts.

Google and YouTube permissions we request, and why

When you connect a YouTube channel, Google shows you a consent screen listing the permissions below. Both are read-only. We never post, edit, delete or upload anything to your channel, and we do not request access to your revenue or monetisation data.

  • YouTube Analytics reports for your channel (https://www.googleapis.com/auth/yt-analytics.readonly) To chart watch time, average view duration, audience retention, impressions, click-through rate, traffic sources and subscriber gains. None of this is available from YouTube's public API — only the channel owner can grant it.
  • The list of YouTube channels you own (https://www.googleapis.com/auth/youtube.readonly) So we can confirm which channel your permission applies to and label it in your dashboard. We store only the channel id and title.

Our use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements. You can review or revoke this access at any time at myaccount.google.com/permissions. We do not receive a push notification from Google when you revoke. The next scheduled sync detects the revoked token and stops pulling data, typically within 24 hours.

How the data is used

Platform data is used for one purpose: rendering the analytics you asked for, to the people you granted access to in your workspace. A background job refreshes your metrics on a schedule so charts show history rather than only today.

Uploaded Google data is used only to store your private archive, enrich it with requested place context and render the breakdowns you request. Precise coordinates remain private to the workspace and are not sold, used for advertising, or shared with Google. For place enrichment, our server sends LocationIQ only the center of the approximate cell. It does not send your identity, workspace, profile, timestamp, exact coordinate, or the order of your locations. Requests from all workspaces use the same server-side queue and cache.

We may use the same approximate cell, together with a rounded observation hour but without an account identifier, to retrieve historical weather conditions for future location reports. Weather results are cached by cell and hour so one lookup can serve every matching record without repeatedly transmitting location data.

Access is enforced per workspace in the database itself, not merely in the interface. A user of one workspace cannot read another workspace's data.

Where it lives, and who else touches it

We use a small number of processors, each contractually limited to providing their service:

  • Supabase — Postgres database, private file storage and authentication (United States).
  • Backblaze — private object storage for larger uploaded Google files (United States).
  • Vercel — application hosting (United States).
  • LocationIQ — reverse geocoding of approximate location cells sent without account identifiers into general city, state and country labels.
  • Render — the scheduled job that pulls metrics from the platform APIs.
  • Stripe — subscription billing and, only when an administrator authorizes it, read-only revenue reporting.
  • Meta, TikTok, Google and X — the platforms you choose to connect, as the source of the data.

OAuth access tokens are encrypted at rest with authenticated encryption; the encryption key is held in the application environment and never stored in the database alongside the ciphertext. Data in transit is TLS-encrypted throughout.

How long we keep it

Metric history is retained for as long as you want the charts — history is the product. Disconnect removes the access token and stops syncing, but keeps stored metrics so reconnecting can resume where you left off. Delete data (or a platform-initiated deletion request, such as Meta's data-deletion callback) removes the token and every derived metric row for that account immediately. We do not keep an archival copy after a Delete data request.

Deletion audit records (a confirmation code, a timestamp and a count of what was removed) are retained so that you and the platform can verify a request was honored.

Uploaded Google files and their indexed records are retained until a workspace owner deletes that import or asks us to delete the workspace data. Deleting an import removes both the raw private files and the activity and precise location rows created from them. General cell-to-place cache entries have no event timestamp. Cell-to-weather entries include an approximate cell and rounded observation hour. Neither cache includes a user, workspace, profile or source-import identifier, so an entry cannot be reconnected to a deleted import and may remain for reuse.

Deleting your data

There are three ways to get your data removed, and all of them work:

  • In the app. Go to Connect Accounts. Use Disconnect to stop syncing without wiping charts, or Delete data to permanently remove the token and all metrics for that account. Google imports can be permanently removed from the same screen.
  • From Facebook. In Facebook Settings, under Apps and Websites, remove Outlaw Data and choose to delete your data. Facebook notifies our deletion endpoint, we delete everything tied to your Facebook user, and you receive a confirmation code you can check at outlawdata.com/data-deletion.
  • By email. Write to johnnyoutlawllc@gmail.com and we will delete your account and all associated data within 30 days, usually the same day.

Your rights

Depending on where you live you may have the right to access, correct, export or delete your personal data, and to object to certain processing. Email johnnyoutlawllc@gmail.com and we will respond within 30 days. We will not charge you or degrade your service for exercising these rights.

Children

Outlaw Data is a business tool and is not directed at children. We do not knowingly collect personal information from anyone under 13.

Changes

If we change this policy we will update the date at the top of this page. Material changes that affect how platform data is used will also be sent to the email on your account.

Contact

Johnny Outlaw LLC johnnyoutlawllc@gmail.com