Privacy Policy
Holmstad Group ApS, Garmin Connect IQ apps. Last updated: 26 October 2026.
This page explains the optional, anonymous usage and error log built into our Garmin Connect IQ apps: DancePro, Dance, SaunaPro, Sauna, Contrast, Crux, Kuling, Vind Ride and SITREP. It also explains the weather lookups that Vind and Kuling make, the licence and subscription for our paid apps, and Vind Ride's member page, all of which are separate from that log. It does not cover Garmin Connect, Garmin Connect Mobile or any other part of the Garmin platform. See "Garmin's own apps and services" below for that.
What we collect
When "Share anonymous usage" is turned on in the app's settings in Garmin Connect (for Kuling and Vind Ride, also on the watch or bike computer itself, where the same setting is called "Share usage"), the app sends small batches of data that can include:
- Which app and app version you are using.
- Your watch model, as a Connect IQ device identifier (for example a part number like
006-B4536-00), not a personal device serial number. - The name of an event that happened in the app, chosen from a fixed, short list (for example, that a session was saved or discarded, or that an error occurred).
- A few small values describing that event: for example which built-in theme or dance type you chose (sent as a number, never a custom name you typed in), whether the optional data screen was shown, how many songs were in a session, or a short, fixed error code and the name of the function where an error happened.
- For Dance and Dance PRO, the app can also send how a workout was stopped, how long it lasted, and how quickly you picked Save or Discard in the menu, always as a coarse range rather than an exact time.
- For Kuling, the app can also send a summary of each session: the sport type, duration in minutes, distance rounded to 100 m, best 2-second speed, share of time planing, number of runs and turns, how many times the safety alerts (drift, last safe time and offshore wind) started, GPS quality figures (rate, rejected samples and gaps), whether gear was selected (never its name), whether the session was saved to Garmin Connect, a few settings as numbers, and the sun state (normal, midnight sun or polar night), and how many wind forecast lookups worked and failed. This log never includes your position. The wind forecast lookup is a separate thing, see "Weather lookups (Vind and Kuling)" below.
- For Vind Ride, the app can also send a summary of each ride that lasted at least one minute: the duration and distance in coarse ranges, which field size was used most, how many weather lookups worked and failed while the field was open, how long the weather data was missing or too old (in coarse ranges), whether the home wind, wind shift and late-home lines were shown, which setting you chose for the turn-around alarm and how many turn-around alarms were shown, whether you were following a course, which wind unit you chose, the share of the ride with a headwind (rounded to the nearest 10 %), and whether the licence was in its trial, paid or locked state. The app cannot tell whether you saved or discarded the ride, so a ride is counted when it ends, either way. None of this includes your position, the time of day, your licence code or your device ID.
- Your watch's time zone offset, so we can show error times correctly for you wherever you are, instead of only in Danish time.
- A random installation number for this app on your watch, on newer app versions with this feature. It is created on the watch itself, is not linked to your name, your Garmin Connect account or any other app, and is used only to count how many different watches use the app. Turning "Share anonymous usage" off removes it from your watch and stops the app from sending it, but any past events already stored on our server follow the same retention period as the rest of the log, see "How long we keep it" below.
We do not collect your name, e-mail address, Garmin Connect account, any custom names you type into the app, your GPS track or the detailed content of your workouts beyond the summary values listed above, your location in this log (the weather lookups of Vind and Kuling are described under "Weather lookups (Vind and Kuling)" below), your heart rate or any other health or sensor data, or your IP address. Your e-mail address and the routes you choose to save are stored only if you use Vind Ride's member page, see "Vind Ride: member page and route analysis".
Weather lookups (Vind and Kuling)
This section is separate from the optional log above. To fetch your weather forecast, Vind and Kuling send an approximate area to our server: a 5-character geohash, which is a grid cell of about 5 km by 5 km (a little narrower from east to west the further north you are). Your exact position is never sent. The watch works out the cell itself, and only the cell leaves the watch.
Kuling only looks up the forecast while the app is running with GPS, to show the wind forecast for your area on the watch. The wind is always shown as a forecast, never as a measurement. You can switch this off with "Wind forecast" in the app's settings, on the watch and in Garmin Connect. When it is off, Kuling makes no lookups and sends no area.
For each lookup our server records a small entry with: the area (the geohash), which app made the lookup (Vind, Vind Ride or Kuling), whether the lookup worked or failed, which tide source was used (Denmark, Norway, the US, or none), how long it took, and the time of the lookup. The entry is not linked to the random installation number or to anything else about you, and it does not include your IP address. The same cell is also used as a label for the temporary copy (cache) of the forecast on our server, which is kept for at most 6 hours.
Vind Ride, the edition of Vind for Garmin Edge bike computers, makes the same lookup. With the lookup it also sends the bike computer's device ID, which our server uses only to check the free trial or subscription. The device ID is stored only as a one-way hash in the licence record, see "Licence and subscription (Kuling and Vind Ride)", and it is never stored or logged together with the approximate area. For Vind Ride, the lookup entry can also show that the device sent no device ID. From Vind Ride 1.2, the answer also contains your PIN for the member page and, if you have sent a plan, the plan's few numbers. See "Vind Ride: member page and route analysis".
The lookup is needed for the forecast, so it happens whether or not "Share anonymous usage" is on. It is not part of that log. The way to avoid it is not to use Vind's weather field, and for Kuling to switch off "Wind forecast".
The forecast comes from MET Norway. We pass on to them the coordinates of the middle of the cell, not your position. Tide times come from Kartverket (Norway), DMI (Denmark) or NOAA (US). They are asked about the nearest tide station, so they receive the station's position and not yours.
These lookup entries are kept for about three months, the period Cloudflare's Workers Analytics Engine stores data, and are then removed automatically.
Licence and subscription (Kuling and Vind Ride)
This section is separate from the optional log above and applies only to our paid apps: Kuling and Vind Ride. To tell your device whether you have a free trial or a paid yearly subscription, the app contacts our server. This happens whether or not "Share anonymous usage" is on.
For each device and app, our server stores:
- A hashed device ID. Your device sends its device ID, and we store only a one-way hash of it (SHA-256, combined with the app name). The raw device ID is never stored or logged.
- A short licence code of 6 characters, which the device shows you so that you can buy the subscription on our website.
- The number of trial trips used (Kuling), or the date of first contact (Vind Ride), so that the free trial ends when it should, also if you reinstall the app.
- The date (not the time of day) of the last contact from the device and of the last change to the record, so that old records can be deleted automatically.
- The subscription status and the date it runs until.
- Stripe's customer ID and subscription ID, so that we can connect a payment to your licence.
We use this data only to deliver the free trial and the subscription: to tell your device whether the trial has ended or the subscription is active, and to connect a payment to the right licence.
The licence is not linked to the random installation number or to anything else in the anonymous log described above, and the two cannot be combined.
For each payment our server also stores the app's name, the amount, the currency and the time, so that we can follow our sales. Stripe's invoice number is stored only as a one-way hash (SHA-256), so that the same payment is not counted twice. The payment record contains no customer ID, subscription ID or licence code, and is deleted automatically two years after the payment.
If you support the work through Buy Me a Coffee, our server receives a notice from Buy Me a Coffee with the amount, the fee, the currency and the time, so that we can follow the support. We do not store your name, your e-mail address or your message. The payment's ID is stored only as a one-way hash (SHA-256), so that the same payment is not counted twice and a refund can be matched. The record is deleted automatically two years after the payment. The payment itself and your details are handled by Buy Me a Coffee and its payment provider, not by us.
The subscription is sold by Stripe as the seller (merchant of record). Your payment details, name, e-mail address, billing address and tax information are collected and held by Stripe, not by us. We never see your card details. Stripe's handling of your data is described in Stripe's privacy policy. If you have had a subscription, the licence record is deleted automatically two years after the subscription ends. A licence that only had a trial is deleted two years after the device last contacted our server. If we move your subscription to a new device, the record for the old device is deleted two years after its last contact. A free licence that we have given you is kept for as long as it applies. Once it has ended or been removed, it is deleted under the same rules as other licences. You can always ask us to delete it sooner by writing to the address under "Contact"; the subscription itself is cancelled with Stripe.
Vind Ride: member page and route analysis
This section applies only if you use the member page at offoverdrive.com/vind-ride/min.
Account and login. The field on your Edge works without an account, including the trial, the purchase and the licence code. Only the member page needs an account, and your account is your e-mail address. You log in with a link that we send to the address. There is no password. The link works for 15 minutes and only once, and we store it only as a one-way hash.
Your e-mail address. We store your e-mail address in your account, written in lower case. We use it only for e-mails about your account: login links that you ask for yourself, a receipt when you delete the account, and a warning before an account you have not used for a long time is deleted. We never send newsletters or ads, and we do not use the address for anything else. The e-mails have no tracking pixel and no rewritten links, and tracking of opens and clicks is turned off at Resend. The address is kept until the account is deleted (see below). If you ask for a login link without using it, no account is created, and the address is deleted together with the link no later than 2 hours after it was sent. We never write the address in our logs, and it is not shown in our own overview.
Resend sends the e-mails. The e-mails are sent by our subcontractor Resend (Resend, Inc., USA). Resend receives your e-mail address and the content of the e-mail, including the login link. The e-mails are sent from Resend's servers in Ireland, but Resend stores information about each e-mail sent, including the recipient's address, in the USA. According to Resend, it is kept for 30 days. Resend is certified under the EU-US Data Privacy Framework.
Your Edge. The first time, you add your Edge with your licence code and a 6-digit PIN, so that we know the Edge is yours. We do not store the PIN; our server works it out from your licence each time it is needed. It reaches your bike computer in the answer to the weather lookup and is then shown in the field's settings in the Connect IQ app. Once the Edge has been added, it gets a new PIN automatically. The "New PIN" button gives you a new one, and the old one stops working. An Edge can belong to only one account. If another account adds it, it moves there, and your account can no longer send plans to it. Your saved routes and choices belong to your account and not to the Edge, so they never go with an Edge you sell or lend out.
After a login we set one cookie that keeps you logged in for 30 days. It is needed for the login and is deleted when you log out or when the 30 days have passed. "Log out" logs you out in all browsers. To stop misuse we count attempts: per sender, using a one-way hash of the IP address, login links per e-mail address, wrong PINs per licence code and attempts to add an Edge per account. After too many attempts we temporarily block further ones. The IP address itself is never stored. The count per sender is deleted no later than the day after, and wrong PINs are counted until the correct PIN is used. We also store the date of your last visit and of any warning, so that an account you no longer use can be deleted (see below).
Analysing a route. You choose a GPX file on the page. Your browser reads the file and works out the wind along the route, so the route itself is not sent to us. To fetch the forecast, the browser sends a shuffled list of the grid cells of about 5 km by 5 km that the route passes through, split into several lookups. We do not log the cells and do not store them with your account. The forecast comes from MET Norway through the temporary copy (cache) on our server, as in the weather field. So that one account cannot use up the day's quota of new forecasts, we count how many your account fetches per day. The count is deleted after 2 days.
What we store, only if you choose it.
- If you press "Add Edge": which licence belongs to your account, the date and the name you may give the Edge.
- If you press "Save route": the route's name and course, simplified so that the points are at least 50 m apart. You can save up to 20 routes.
- If you press "Save choices": your preferred speed and start time.
- If you press "Send to my Edge": a few numbers for the Edge you choose, namely the share of headwind in each direction, whether the start and the end are in headwind or tailwind, and the start time. Your Edge fetches the numbers in its usual weather lookup from 3 hours before the start. They are deleted automatically no later than 24 hours after the planned start.
Your account with your e-mail address, your saved routes and choices are kept until you delete them. If you have not visited the page for 11 months, we send a warning to your address. If you do not come back within 30 days of the warning, the account is deleted with everything in it. If the warning cannot be sent, the account is deleted no later than 13 months after your last visit. When a licence is deleted, the Edge's link to your account and its plan are deleted too. We keep no history of routes you only analyse, and we do not follow individual users on the page. "Delete my account" immediately deletes your account, your e-mail address, your saved routes, your choices, your plans and the links to your Edges, and logs you out. Afterwards we send a receipt to the address, and at Resend the information about the e-mails is then kept for up to 30 days. Your licences and subscriptions are not affected, and the field on your Edges works as before. All of this is tied to your account. We never ask for your name, and none of it is shared with anyone other than Resend, as described above.
Totals. For our own overview we count, per day, how many login links, receipts and warnings we have sent, logins, new and deleted accounts, added Edges, wrong PINs, analyses, saved routes and plans sent there have been in total, and how many accounts exist and how many have been in use in the last week. We also count how many times the member page has been opened and how many times each instruction video on the Vind Ride page has been started, without cookies. The counts are not tied to any account, e-mail address, code or person and are deleted after 400 days.
Why we collect it
This section is about the anonymous usage and error log only. We collect it to find and fix bugs and errors, and to see which features people actually use, so we know what to improve. That is the whole purpose. It is not used for advertising, and we do not build a profile of you or your device. Licence data has its own purpose, described under "Licence and subscription (Kuling and Vind Ride)".
Where it is stored
The data is processed and stored using Cloudflare, a cloud infrastructure provider. Our server (a Cloudflare Worker) runs on Cloudflare's global network, and the database (Cloudflare D1) is set up in the EU. Because Cloudflare operates a worldwide network, individual requests may pass through Cloudflare locations outside the EU as ordinary internet routing, the same way any web request does, but the stored data itself stays in the database region we chose. E-mails about your account on Vind Ride's member page are, however, sent by Resend, which stores information about them in the USA, see "Vind Ride: member page and route analysis".
How long we keep it
This section is about the anonymous log only. Its data is deleted automatically within about 90 days. Our cleanup job runs once every night, so in rare cases a row may live a little past exactly 90 days before it is removed. Licence records follow their own rule, described under "Licence and subscription (Kuling and Vind Ride)". Vind Ride's member page has its own rules, see "Vind Ride: member page and route analysis".
Sharing
We never sell any of this data. The anonymous log is never shared with any third party. It is not linked to any account, name or other personal identifier at any point, so it cannot reasonably be traced back to you. The one exception is the weather lookup of Vind and Kuling, where MET Norway receives the coordinates of the middle of the cell, as described under "Weather lookups (Vind and Kuling)".
Licence records are different. A licence record contains Stripe's customer ID and subscription ID, and at Stripe these IDs are linked to your name, e-mail address and billing address. Stripe sells and processes the subscription, see "Licence and subscription (Kuling and Vind Ride)". If you use Vind Ride's member page, Resend receives your e-mail address in order to send e-mails about your account, see "Vind Ride: member page and route analysis".
Your choice
You can turn this off at any time: open the app's settings in Garmin Connect (or Garmin Connect Mobile), find "Share anonymous usage", and switch it off. For Kuling and Vind Ride you can also do this on the watch or bike computer: open the settings menu and switch off "Share usage". If it is off, the app sends nothing to this log. Kuling's wind forecast lookup is switched off separately with "Wind forecast", see "Weather lookups (Vind and Kuling)" above.
Garmin's own apps and services
This policy only covers what our own server receives from the app on your watch or bike computer and from Vind Ride's member page. Garmin Connect IQ, Garmin Connect and Garmin Connect Mobile collect and handle data separately from this, under Garmin's own privacy policy, which you can find on Garmin's website.
Contact
Questions about this policy or the data we hold: support@holmstadgroup.dk.