OpenAI
Runs the AI analysis. Policies
- When
- Each scan that passes the limit check.
- Gets
- Photos, note, car details, marked panels, warning signs, location and currency.
- Does not get
- Your random ID, hashes or IP address.
Car Repair Estimate
Dereck Ruzzman runs Car Repair Estimate and decides how your data is used. Under EU and UK law, that makes us the controller of your data. "We", "us" and "our" mean Dereck Ruzzman.
This policy covers the Car Repair Estimate iOS app, our server at api.carsrepairestimate.com and our website at carsrepairestimate.com. The website sets no cookies and runs no scripts.
To reach us, email carrepairestimate@apps.support or tap Contact support in the app's Settings.
You take photos in the app or pick them from your library, up to 4 per scan. The picker gives the app only the photos you choose. We use them to find the damage and price the repair.
The app resizes each photo and sends it to our server, which passes it to OpenAI. Our server holds it in memory while the scan runs and does not store it.
On your phone, full-size photos stay in the app's memory. They are not saved to your phone's storage or your camera roll. After a finished scan the app saves one small thumbnail on your phone. The app does not send that thumbnail to us or to OpenAI, but it can be in your device backups.
Photos can show faces, license plates, addresses and other people. Please keep these out where you can.
You can add a note. The first 2,000 characters go to OpenAI with your photos, to help describe the damage. We do not store the note on our server or your phone. The AI's written findings are stored, though, and they can reflect what your note said.
Please do not put names, injuries or health details in a note.
You can type what car it is, and we use the first 80 characters. The AI can also read the year, make, model and trim from your photos. Car details go to OpenAI and are saved in your estimate.
You can mark damaged panels and tick warning signs, such as a flat tire, leaking fluid, airbags going off, warning lights, or steering and brake problems. Both go to OpenAI. We do not store them as you entered them. Warning signs can add a do-not-drive warning to your estimate, and that saved warning can say you reported them.
We use your location to price labor and parts for where the repair happens. The app does not use GPS and has no location permission.
Each time the app checks your plan with our server, which it does when you open the app and around each scan, our server reads the IP address of your connection and looks up an approximate city and currency in a database on our own server. It sends the answer to your phone. This lookup does not store or log your IP address, and it does not send it to anyone else. If the lookup finds nothing, the app uses the last location it found, or your phone's region setting.
You can change the city and currency in the app's Settings, under Location and currency. You can also change them for a single scan on the details screen. The location and currency set at the time of a scan go to OpenAI and are saved in your estimate.
On first use, the app creates a long random ID and keeps it in your phone's Keychain. It does not contain your name. It stays there if you delete and reinstall the app, and it is included in encrypted backups. It does not sync through iCloud Keychain. In the rare case the Keychain is unavailable, the app stores the ID in its own settings until it can be moved, and deleting the app then removes it.
A new phone gets a new ID, unless you set it up from a backup of your old phone. Restoring your purchase normally brings back your subscription on a new ID, but not your estimate history, which stays under the old ID.
We use it to keep your estimates, count your scans and check your subscription. The app sends it to our server on every call and to RevenueCat. Our server sends it to RevenueCat to check whether you have Pro.
Our database stores a SHA-256 hash of the ID, never the ID itself. Amplitude gets a different hash. A hash is not anonymous: anyone who holds your ID can work it out.
An estimate holds the car, location, severity, any do-not-drive warning, cost and time ranges, photo count, affected parts, line items, possible hidden damage, questions for a shop, and a rough value for your car. We use it to show you the result and bring your history back. It is saved on our server under your hashed ID, and on your phone.
Each scan creates a row with a hashed ID, the plan, the scan's status and a date. These rows run the free estimate and the monthly limit.
Apple takes your payment. We never see your card or bank details. RevenueCat receives purchase records (section 4). Our server only learns whether you have Pro and when that access ends. It saves the plan on each scan-count row.
RevenueCat collects device details, Apple's identifier for vendors (IDFV) and your IP address, and we use these to run purchases. While analytics is on, Amplitude collects the same kinds of data and what you do in the app, and we use that to understand and improve the app. Section 4 lists this.
The switch for analytics is Share app analytics in the app's Settings. If your phone's region setting is in the EU, EEA, UK or Switzerland, it starts off. Everywhere else it starts on, from the first launch. The app goes by that setting, not by where you are. Settings appears once you have a saved estimate, so until then the switch stays as it started. RevenueCat keeps running either way, because subscriptions need it.
Each request logs the method, path, status and time taken. A path can include an estimate ID. Each AI call logs the model, time, token counts and status. Our logging code does not record your IP address, your raw ID, your photos or your note.
Error logs give the error's name and message. If a database query fails, the log holds only an error code, not your hashed ID or the data in that query.
Your answer to "Is everyone OK and away from traffic?" is not sent to our server. But if you tap "Someone is hurt" or the traffic, smoke or fuel option, the app opens an emergency screen, and while analytics is on, Amplitude records that this screen was viewed. The same applies to the do-not-drive screen. So Amplitude can hold a hint that you were in an incident.
We do not ask for your name, email, phone number or postal address. We do not collect GPS location, contacts or card details. The app does not ask for Apple's tracking permission, so it has no access to your advertising identifier (IDFA). If you email us, we get your email address and message, and use them to reply. Our email provider holds them for us.
You need photos to get an estimate, and you must allow AI data sharing. Your note and car details are optional. RevenueCat's device data is collected automatically while you use the app, and so is Amplitude's data while analytics is on.
Estimates are made by an AI model from OpenAI. Before your first scan, the app shows what will be sent and asks you to agree. Nothing goes to OpenAI until you tap Agree and continue.
What OpenAI gets: your photos, note, car details, marked panels, warning signs, location and currency.
What OpenAI does not get: your random ID, either hash, or your IP address. OpenAI sees a connection from our server, not from you.
How long OpenAI keeps it: we tell OpenAI not to store the response. Even so, OpenAI says it can keep inputs and outputs for up to 30 days in abuse monitoring logs, or longer if the law requires. Authorized OpenAI staff and contractors can review flagged content. Images flagged as possible child sexual abuse material are kept for manual review, and OpenAI reports apparent cases to NCMEC.
Training: OpenAI's terms say it does not use API data to train its models unless the customer opts in.
Rejected and failed scans: photos rejected as not a car, too blurry or showing no damage still reached OpenAI, and so did failed scans. They do not use up your plan. A request over your limit is stopped before it reaches OpenAI.
How a figure is made: the AI looks at your photos and details. It lists the damage it can see and damage that may be hidden, with parts prices, labor hours and rates for your location. Our server adds these up into a range. No person checks an estimate before you see it.
An estimate is a guide for you. It makes no decision about you with a legal or similarly significant effect. We do not use it for that, and your shop and insurer make their own decisions.
Turning it off: in the app's Settings, tap AI data sharing. The app will then ask again before your next scan, and nothing is sent unless you agree. This does not recall what was already sent or delete your estimates. Your choice is saved on your phone and, while analytics is on, logged as an Amplitude event. It is not saved on our server. Settings appears only once you have a saved estimate. Until then, the only way to clear your permission is to delete the app.
We do not sell your personal information. The app shows no ads and has no ad network inside it.
The companies below handle data for the app and website. OpenAI, RevenueCat, Amplitude and Railway each publish data protection terms that limit how they may use data they handle for us, and we expect them to protect it to the same standard as this policy. Apple, and Railway for its own usage data, act on their own behalf under their own policies.
Runs the AI analysis. Policies
Hosts our API at api.carsrepairestimate.com, with its database and logs. Privacy policy
Runs subscriptions and tells us who has Pro. Privacy policy
Product analytics, so we can see how the app is used. Privacy policy
Provides the App Store, iOS and iCloud. Privacy policy
Hosts our website at carsrepairestimate.com, including this page. Privacy policy
Receives and stores the emails you send us.
We may add a paywall tool later: its software is already in the app but is not started, so it collects nothing, and we will update this policy before that changes.
The same IDFV goes to RevenueCat and, while analytics is on, to Amplitude, and RevenueCat also holds your raw ID. So the records these companies hold can be linked to each other. Sending Amplitude a hash does not make its data anonymous.
We may disclose data if the law requires it, or to protect people, our service or our rights. If our business is sold or merged, data may pass to the new owner, and this policy will keep applying until you are told otherwise.
If you are in the EU, EEA, UK or Switzerland, these are the legal bases we rely on.
| What we do | Legal basis |
|---|---|
| Make, price, save and restore your estimate | Contract, because you asked for the service. We also ask for your explicit permission before anything goes to OpenAI. That is a separate step in the app, not our legal basis, and turning it off stops future scans only. |
| Run subscriptions and check your plan | Contract. |
| Keep scan-count rows after you delete your data | Legitimate interests: keeping the free estimate and monthly limit fair, and preventing abuse. |
| Keep server logs and protect the service | Legitimate interests: keeping the service running and secure. |
| Analytics through Amplitude | Consent, where your phone's region setting is in the EU, EEA, UK or Switzerland. Analytics stays off there unless you turn on Share app analytics, and you can turn it off again at any time. If your phone's region is set anywhere else, the switch starts on, and we rely on legitimate interests: understanding how the app is used so we can improve it. You can turn it off at any time. |
| Apple ad attribution through RevenueCat | Legitimate interests: measuring our Apple Ads campaigns. You can object, but the app has no switch for this, and Share app analytics does not stop it. |
| Use photos that show other people, their cars or their license plates | Legitimate interests: making the estimate the user asked for, with limited use and no storage on our server. |
| Answer your emails | Legitimate interests: replying to your questions and requests. |
| Meet legal duties | Legal obligation. |
| Data | How long |
|---|---|
| Photos and notes on our server | Not stored. Held in memory only while the scan runs. |
| Photos, notes and scan details at OpenAI | Up to 30 days, or longer if the law requires. See section 3 for flagged content. |
| Estimates on our server | Until you delete them, or 24 months after they were created, whichever comes first. The 24 months applies even if you still subscribe. |
| Scan-count rows on our server | 13 months from the scan. Deleting your data does not remove them. |
| Server logs | Railway keeps them for a period set by our plan with it. Its published periods run from 3 to 90 days. Our code sets no fixed period. |
| Your raw ID in our server's memory | A cache for plan checks. It is not written to the database or logs, and an entry goes when the cache fills or the server restarts. |
| Estimates and thumbnails on your phone | Until you delete them or remove the app. Any backup keeps its own copy. |
| Your random ID on your phone | It stays in the Keychain even after you delete the app. |
| Purchase records at RevenueCat | While we use RevenueCat, unless deleted sooner on request. |
| Analytics at Amplitude | While we need them to understand and run the app and our account with that company is open, unless deleted sooner on request. |
| Emails you send us | Until your question is settled, then only as long as we need a record of it. |
| Data held by Apple and Vercel | Set by those companies. |
A daily job on our server removes estimates and scan-count rows once they pass these limits.
In the app, open Settings, tap Delete my photos and estimates and confirm. This cannot be undone. If our server cannot be reached, nothing is removed and you can try again.
Deleting does not cancel your subscription. You cancel through Apple (see our Terms of Use).
To ask for data at RevenueCat or Amplitude to be deleted, contact us at carrepairestimate@apps.support. We will act on what we can match to you (see below).
Deleting the app stops all new collection. It does not remove data already held by us or the companies above.
Once you have a saved estimate, you can delete your estimates, turn off AI data sharing and change Share app analytics in the app's Settings. Anyone can contact us with a question.
You have the right to:
To stop analytics, turn off Share app analytics in Settings, or leave it off if it started off. Section 4 shows what can still reach Amplitude. RevenueCat keeps running, because subscriptions need it, and the app has no switch for Apple ad attribution. Turning the switch off does not delete what Amplitude already holds. If you email us, we will try to have past records deleted where we can match them to you.
Complaints. You can complain to us at carrepairestimate@apps.support. We will acknowledge your complaint within 30 days, look into it, and tell you the outcome.
You can also complain to a regulator at any time. In the UK that is the Information Commissioner's Office. In the EU, you can complain to the data protection authority where you live, where you work, or where the problem happened.
What we collect and who receives it. We get this data from you, your device and Apple. Section 2 gives our purposes and section 6 gives how long we keep each kind.
| Category | Disclosed for a business purpose to |
|---|---|
| Identifiers: random ID, hashes, IDFV, IP address, transaction IDs, and your email address if you email us | Railway, RevenueCat, Amplitude. Our email provider gets your email address. Vercel sees the IP address of website visitors. |
| Commercial information: purchases and subscription status | RevenueCat, Apple, Amplitude, Railway |
| Internet or network activity: app events and device data | Amplitude, RevenueCat, Railway |
| Approximate location: city or country | OpenAI, Railway. RevenueCat gets your App Store country. Amplitude and RevenueCat can derive location from your IP address. |
| Visual information: photos | OpenAI, Railway |
| Other information you enter: notes, car details, damage areas, warning signs | OpenAI, Railway |
| Inferences: severity and do-not-drive results | Railway. Amplitude gets the severity, and views of the emergency and do-not-drive screens. |
What Amplitude receives depends on Share app analytics, as section 4 describes.
Selling. We do not sell personal information, including that of anyone under 16, and we have not done so in the past 12 months. The Apple ad attribution flow in section 4 is the one advertising-related data flow we set up in the app. The app cannot turn it off. Contact us if you want past records of it removed.
Sensitive information. The app asks whether anyone is hurt, only to show emergency help. We do not send that answer to our server, but while analytics is on, Amplitude records the emergency screen view (section 2). We do not otherwise ask for sensitive information, and we do not use it to infer things about you. A photo or note could contain it if you include it, so please keep it out.
Your rights. You can ask to know what we collect, delete it, correct it, and opt out of any sale or sharing. You can also ask us to limit any use of sensitive information. We will not treat you worse for using these rights. You can use an authorized agent, who must show that you gave permission. We respond within 45 days.
Signals. The app does not read Do Not Track or Global Privacy Control signals. RevenueCat, and Amplitude while analytics is on, collect data about your use of this app over time, as section 4 describes.
Email carrepairestimate@apps.support or tap Contact support in the app's Settings. We reply within one month in the EU and UK.
We hold no name or email for you, and the app does not show you your random ID. So we will tell you what we need to match a request to your data, which may include details from your App Store receipt. If you have never subscribed, we may have nothing to match you with. If we cannot match a request, we will tell you.
A user may photograph a car that shows you, your car or your license plate. We get that photo from the user, and we use it only to make their estimate. Our legal basis is in section 5.
Our server does not store it. OpenAI may keep it, usually for up to 30 days but longer in some cases (section 3). Estimates have no field for faces, license plates or VINs. Because we keep no copy, we cannot search for you in photos.
The rights in section 8 apply to you too. Contact us at carrepairestimate@apps.support with any concern.
Your data leaves your country when you use the app. The safeguards below are the ones named in each company's published data protection terms. You can ask us for a copy at carrepairestimate@apps.support.
| Company and location | Safeguard |
|---|---|
| Railway: our server and database run in Amsterdam, the Netherlands. Railway's main operations are in the US, so logs and support can involve the US. | EU-US Data Privacy Framework or Standard Contractual Clauses, with the UK Addendum. |
| OpenAI: the US and other countries. Flagged content can go to moderation contractors in the Philippines, the US and Canada. | Standard Contractual Clauses or an adequacy decision, with the UK Addendum. |
| RevenueCat: the US, on Amazon Web Services. | Standard Contractual Clauses, with the UK Addendum. |
| Amplitude: the US. | EU-US Data Privacy Framework with the UK Extension, and Standard Contractual Clauses as a fallback. |
| Apple and Vercel | Set out in their own privacy policies. |
The app is not for anyone under 18, and we do not knowingly collect data from them. The app does not ask your age.
Please keep children out of your photos. If you think a child has used the app, contact us at carrepairestimate@apps.support and we will delete what we can match.
No system is perfectly secure. If a breach affects your data, we will tell you as the law requires. We hold no email for you, so we would do this in an app update or on this page.
We review this policy at least every 12 months. If we change it, we will update the date at the top. For a material change, we will tell you in an app update or on this page before it takes effect. If we want to use your data for a new purpose, we will tell you first and ask for your permission where it is needed.
Dereck Ruzzman
carrepairestimate@apps.support