Privacy: browser data and organization storage
Last updated:
Delivery data files are parsed and analyzed in your browser. When you sign in, select an organization project and have import permission, new imports are also saved to the organization database for its members.
This policy covers the VeloWise website and app. It explains what personal information is collected, why, who receives it, how long it is kept and the choices and rights you have. Jump to your privacy choices.
Who we are and how to contact us
In these pages, “we” and “us” mean the operator of this deployment of VeloWise. The operator’s legal name has not been published here yet.
- Email: no contact email has been published for this deployment yet.
For accounts, billing, Jira connections you make for yourself and website analytics, we decide how and why personal information is used (we are the “controller”). For delivery data that an organization stores in VeloWise, the organization is the controller and we process that data on its behalf as its processor or service provider, under our Data Processing Addendum. If you are a member of an organization, send requests about its delivery data to that organization.
How your delivery data is processed
Signed-out imports remain in browser storage. Organization imports can contain issue keys, summaries, descriptions, assignees, sprint names, history, original CSV row values and calculated findings. Account authentication stores your email and identity. Public educational pages and the sample project do not expose customer delivery data.
See the storage, retention and deletion details and organization access controls. People who administer the hosting and database infrastructure have administrative database access. Internal support staff do not have database access to customer organization data. We do not claim a compliance certification or independent security audit.
VeloWise does not send your data to AI or large language model services, and it makes no automated decisions that have legal or similarly significant effects on you. Every metric is calculated by documented rules (see the methodology).
What we collect and why
| Information | Purpose | Legal basis (EU and UK) |
|---|---|---|
| Delivery data you import while signed out | Analysis in your browser. We do not receive it. | Not applicable: it stays on your device |
| Organization imports: issue keys, summaries, descriptions, assignees, sprint names, history, original CSV row values, calculated findings | Storing and analyzing delivery history for the organization’s members | Processed on the organization’s instructions; the organization determines its own legal basis |
| Account: email address, sign-in identity from the method you choose, organization memberships and roles | Signing you in, controlling access, sending sign-in links | Performance of our contract with you |
| Jira connection: the Atlassian sites your account can access, encrypted OAuth tokens, last sync time and status | Importing sprints from Jira when you ask | Performance of our contract with you |
| Billing: plan, subscription status, Stripe customer reference, billing event log | Providing paid plans, handling payments, keeping financial records | Contract; legal obligation for financial records |
| Shared reports: the report snapshot, hashed access code and link token, access log with a hashed IP address | Showing the shared report and blocking repeated guessing | Contract; legitimate interest in preventing abuse |
| Usage analytics: pages viewed, product events, browser and device information, IP address (processed by Google) | Understanding which features are used and where visitors come from | Consent |
| Advertising: ad requests and Google advertising cookies, on public reading pages only | Showing ads that keep the guides and browser tools free | Consent |
| Staff audit log: staff actions with time, IP address and browser user agent | Security and accountability of support access | Legitimate interest in securing the service |
| Messages you send us | Answering you and handling requests | Legitimate interest; legal obligation for rights requests |
What is stored in your browser
| What | Where | Why |
|---|---|---|
| The normalized dataset you imported | IndexedDB | So your analysis survives a page reload |
| Field mappings, status mappings, sprint dates | localStorage | So your next import needs fewer clicks |
| Thresholds, theme, analytics and ads choices | localStorage | Preferences |
The local copy stays until you clear it — below, in the app’s settings, or by clearing site data in your browser.
Cookies and similar technologies
VeloWise itself sets no cookies. It uses browser storage for the items below. Google’s cookies are set only after you accept analytics or ads in the consent banner.
| Name | Type and provider | Purpose | When it is used |
|---|---|---|---|
edi:consent | localStorage, VeloWise | Remembers your analytics and ads choice | After you choose in the consent banner |
Other edi: keys (mappings, sprint dates, thresholds, theme, selected workspace) | localStorage, VeloWise | Settings and preferences | When you use the app |
edi:cloud-auth | localStorage, VeloWise (Supabase Auth) | Keeps you signed in | Only when you sign in |
| Imported dataset | IndexedDB, VeloWise | Keeps your analysis across reloads | When you import data |
velowise.connect-verifier | sessionStorage, VeloWise | One-time value that completes a Jira connection in the tab that started it | Only while connecting Jira |
edi:acquisition, edi:signup-intent, edi:signup-counted, edi:first-analysis | localStorage, VeloWise | Conversion analytics: which page category led to signup and first analysis, and not counting the same step twice | Only after you accept analytics |
_ga, _ga_<id> | Cookies, Google Analytics | Distinguish visitors and sessions for usage statistics | Only after you accept analytics |
Google advertising cookies, for example __gads, __gpi, IDE | Cookies, Google AdSense | Serve and measure ads, limit repeats, detect fraud | Only after you accept ads, and only on public reading pages while signed out |
Your privacy choices
Google Analytics and Google AdSense load only after you accept them in the consent banner. Rejecting is as easy as accepting, and nothing from Google loads until you choose. Google Consent Mode starts with everything denied. You can change your choice here at any time; the change applies in this browser.
If your browser sends Global Privacy Control or Do Not Track, it is always treated as a refusal: analytics and ads stay off whatever is stored. For California and other US state laws, this is how we honor an opt-out of the sale or sharing of personal information.
To remove everything VeloWise stored in this browser, use Clear all local data above. To delete your account or organization data, see your rights.
Google Analytics
We use Google Analytics 4 (G-NGH1RGJ3YW) to understand which features are used. Product events exclude imported delivery contents:
- Imported delivery data is not sent to Google Analytics. Events describe product usage only — for example “CSV imported” with a size bucket such as “100–499 issues”, or “report exported as CSV”.
- Event parameters are restricted by code to a fixed list of product values, booleans and small numbers. Anything else — an issue key, summary, name, project or sprint name — is rejected before sending.
- Page URLs are sent without query strings, and URLs in the app never contain sprint names (sprints are referenced by position).
- Google signals and ad personalization signals are disabled for analytics. Analytics loads only after you accept it, and never if your browser sends Global Privacy Control or Do Not Track.
Google AdSense
Ads help keep the public guides and the browser-only tools free. Signed-in accounts never see ads.
- Only for signed-out visitors, only on public reading pages. Ads can appear on the home page, the guides and the methodology — never in the analysis workspace, whether or not you are signed in. When you are signed in, no ad code is loaded on any page, including public ones.
- Imported delivery data is not sent to AdSense. The ad request carries only the site’s publisher and ad unit IDs; imported data, requirements text, reports and anything you type stay out of it.
- The ad script loads only after you accept ads and only when an ad placement is shown. If it was loaded earlier in this tab and you then sign in, open the workspace or turn ads off, the page reloads so that no ad code remains.
- No ads load if your browser sends Global Privacy Control or Do Not Track, or if you turn ads off above.
Google receives your IP address, browser information and its cookies when analytics or ads load. See How Google uses information from sites or apps that use our services.
Conversion analytics
We measure the path from public content to signup, organization creation, CSV import and the first usable analysis. Sample exploration is not activation. Only allowlisted landing-page and source categories are attached; account IDs, email, raw referrer URLs and imported fields are excluded from event parameters. The browser keys this uses are listed in the cookies table and are written only after you accept analytics. Google Analytics can still use browser identifiers and receive network information. This is not a claim of anonymity.
Jira connections
You can import from CSV exports, which needs no credentials, or connect Jira directly (VeloWise Pro). A direct connection uses Atlassian OAuth 2.0 with read-only scopes plus offline access, so you never give VeloWise your password or an API token. The access and refresh tokens are encrypted with AES-256-GCM and stored in a private server-side table that browser roles cannot read. Disconnecting deletes them. Also remove VeloWise from your Atlassian account at id.atlassian.com/manage-profile/apps, because Atlassian offers apps no way to revoke tokens themselves.
Organization members
Owners and admins add people by invitation. An invitation stores the invitee’s email address and role and expires after 14 days; VeloWise does not email it, so the invitee sees it after signing in with that confirmed address and can accept or decline. Owners and admins can see who created each shared report made from the organization’s data, and can remove members; see the roles table for what each role can do.
Shared reports (Pro)
When you share a report, VeloWise stores a snapshot of that report — summary, findings and aggregate sprint metrics, never individual issues — so the link keeps showing what you shared. The link token and the access code are stored only as secure hashes; the link is shown to you once. Each attempt to open the link is logged (time and outcome, plus a hash of the visitor’s IP address used only to block repeated guessing); you can see views and failed attempts, never the hashes. Shared report pages are not indexed, carry no analytics or ads, and stop working the moment you revoke them or they expire.
Access logs are kept for 180 days. Revoked and expired shares are deleted 90 days after they end. Removing a member from an organization revokes the shares they created from it, and organization admins can revoke any of the organization’s shares.
Payments
Paid plans are billed through Stripe, which runs the checkout and the billing portal. VeloWise never receives your card details; we store your plan, its status and the Stripe customer reference. Stripe processes payment information under its own privacy policy.
Support staff
Internal staff sign in with multi-factor authentication. Staff actions are recorded in an audit log with the time, IP address and browser user agent, kept for 2 years. Staff have no database access to customer organization data.
Who receives personal information
We use these providers to run VeloWise: Amazon Web Services (hosting the website through S3 and CloudFront), Supabase (database, authentication and server functions, in the region configured for this deployment), Stripe (payments), Atlassian (only when you connect Jira) and Google (analytics and ads, only with your consent). The full list, with what each receives, is on the subprocessors page. We do not sell personal information.
How long data is kept
| Data | Kept |
|---|---|
| Browser data (dataset, preferences, consent choice, session) | Until you clear it |
| Organization imports and projects | Until the organization deletes them; there is no scheduled expiration |
| Account | Until you delete it |
| Jira connection tokens | Until you disconnect |
| Shared report access logs | 180 days |
| Revoked or expired shared reports | Deleted 90 days after they end |
| Billing event log | 2 years; Stripe keeps its own records under its terms |
| Staff audit log | 2 years |
| Abuse-protection counters (request rate limits) | 1 day |
| Organization invitations | Until accepted, declined or revoked; they stop working after 14 days |
Owners and admins can delete imports and projects in Data & imports. Only owners can delete the whole organization. Clearing this browser does not delete server records. Live database rows are removed by these deletion actions; backup retention is controlled by the service operator and provider.
International transfers
Our providers may process personal information in the United States and other countries. Where a provider is certified under the EU-US Data Privacy Framework or its UK Extension, we rely on that certification; otherwise we rely on the European Commission’s Standard Contractual Clauses (with the UK Addendum for UK data).
Your rights
You can do these yourself, without asking us:
- Download your account data as JSON, or delete your account, on the Account page. Deleting is blocked while you are the only owner of an organization that has other members; transfer ownership first. Deleting your account removes your sign-in, memberships, reports and shares, deletes organizations where you are the only member, and deletes your Stripe customer record, which cancels any subscription immediately. Imports you made in organizations you share stay with that organization, no longer linked to you.
- Owners and admins can delete imports and projects; owners can delete the organization.
- Clear browser data on this page, and change your analytics and ads choice in your privacy choices.
For anything else, contact the operator of this deployment. We may need to confirm your identity before acting, and we answer within the time the law sets (for example, one month under the GDPR, 45 days under California law).
- EU, EEA and UK: access, correction, deletion, restriction, portability, objection to processing based on legitimate interests, and withdrawal of consent at any time. You can complain to your local data protection supervisory authority (in the UK, the Information Commissioner’s Office).
- Canada, including Quebec: access to and correction of your personal information, withdrawal of consent, and a complaint to the Office of the Privacy Commissioner of Canada or, in Quebec, the Commission d’accès à l’information.
- California and other US states: to know what personal information we collect and how it is used and disclosed, to access, correct and delete it, and to opt out of its sale or sharing for cross-context behavioral advertising. We do not sell personal information. Google Analytics and AdSense may count as “sharing”; they run only with your consent, and Global Privacy Control is honored as an opt-out. You may use an authorized agent, and we will not treat you differently for exercising these rights.
Children
VeloWise is a tool for work teams and is not directed to children under 16. We do not knowingly collect their personal information. If you believe a child has given us personal information, contact the operator of this deployment and we will delete it.
Security
Organization data is isolated by database row-level security, Jira tokens are encrypted, and staff access is protected by multi-factor authentication and audited. See security and organization access for details and how to report a vulnerability.
Limits of this promise
Browser extensions you install can read any page, including this one; that is outside our control. If you are working with highly sensitive data, use a browser profile without extensions, or remove sensitive columns (such as Description) before importing — the analysis only requires issue keys, statuses and sprints.
Changes to this policy
When this policy changes, we update it here and change the date at the top. This version is effective from 12 October 2026. Related: Terms of Service, Data Processing Addendum, subprocessors.