Car Repair Estimate

Privacy Policy

Effective November 6, 2026. See also our Terms of Use.

1Who we are

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.

2What we collect and why

Photos

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.

Your note

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.

Car details

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.

Damage areas and warning signs

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.

Location and currency

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.

Your random ID

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.

Your estimates

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.

Scan-count rows

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.

Purchase data

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.

Device and usage data

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.

Server logs

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 safety answers

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.

Stored on your phone, not on our server

What we do not collect

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.

What you must provide

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.

3AI and OpenAI

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.

4Who gets your data

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.

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.

Railway

Hosts our API at api.carsrepairestimate.com, with its database and logs. Privacy policy

When
Every call between the app and our server.
Gets
All of that traffic, including your random ID and scan data as it passes through. It stores our database and logs. Railway's network sees your IP address, and our code does not control what Railway keeps of that.

RevenueCat

Runs subscriptions and tells us who has Pro. Privacy policy

When
From when you open the app, and on price checks, purchases and restores. Our server also asks it about your plan. Share app analytics does not change this, because subscriptions need it.
Gets
Your raw random ID, IDFV, device model, iOS version, app version and build, preferred languages, App Store country and install method. It sees your IP address on the connection.
Purchase records
Product, price, currency, store country, subscription length, transaction IDs and Apple's purchase data.
Apple ad attribution
Once per install, the app sends RevenueCat a token from Apple. RevenueCat uses it to get attribution data from Apple, which shows whether an Apple Ads campaign led to the install. The app does not ask you about this, and Share app analytics does not stop it.
Does not get
Photos, notes or estimates.

Amplitude

Product analytics, so we can see how the app is used. Privacy policy

When
While Share app analytics is on, from the first launch, before the AI permission screen. The app has no analytics permission screen. Section 2 explains the switch.
Gets
A hash of your ID, IDFV (used as a device ID), device maker and model, iOS version, language, mobile carrier and app version. Amplitude reads your IP address and can work out an approximate location from it. Data goes to Amplitude's US servers.
Events
App installs, updates, opens, closes and sessions. Screens viewed, including the emergency and do-not-drive screens. Scans started, finished and failed, with the severity, photo count and free or full access. Technical error text, which can include our server's address. Photo quality checks, problem screens such as a blurry photo or a used-up limit, paywall views and closes, subscribe taps with the plan, whether you have Pro, plan changes, AI permission given or withdrawn, and report tabs, parts opened and exports.
With the switch off
The app records no analytics events. Events recorded before you turned it off can still upload. Amplitude's software still asks Amplitude's servers for its settings, and it can send technical diagnostics such as device model, iOS version, app version and crash details. These carry none of your IDs, but Amplitude sees your IP address on the connection.
Does not get
Photos, notes, car text, prices or revenue.

Apple

Provides the App Store, iOS and iCloud. Privacy policy

Gets
Your payments and subscriptions, which Apple runs. Your device backups, if you have them on, which can hold your saved estimates, thumbnails, settings and random ID. Apple also creates the ad attribution token described above.
Your choices
The share sheet, Maps, Phone, Mail, your browser, Apple's subscription page and iPhone Settings open only when you tap them, and those apps then handle what you do there.

Vercel

Hosts our website at carsrepairestimate.com, including this page. Privacy policy

When
When you open a page on carsrepairestimate.com.
Gets
Your IP address and browser details, as any web host does.
Does not get
Anything from the app.

Our email provider

Receives and stores the emails you send us.

When
Only if you email us.
Gets
Your email address, your message and anything you attach.

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.

How these records connect

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.

Other disclosures

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.

5Legal bases

If you are in the EU, EEA, UK or Switzerland, these are the legal bases we rely on.

What we doLegal basis
Make, price, save and restore your estimateContract, 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 planContract.
Keep scan-count rows after you delete your dataLegitimate interests: keeping the free estimate and monthly limit fair, and preventing abuse.
Keep server logs and protect the serviceLegitimate interests: keeping the service running and secure.
Analytics through AmplitudeConsent, 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 RevenueCatLegitimate 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 platesLegitimate interests: making the estimate the user asked for, with limited use and no storage on our server.
Answer your emailsLegitimate interests: replying to your questions and requests.
Meet legal dutiesLegal obligation.

6How long we keep data

DataHow long
Photos and notes on our serverNot stored. Held in memory only while the scan runs.
Photos, notes and scan details at OpenAIUp to 30 days, or longer if the law requires. See section 3 for flagged content.
Estimates on our serverUntil 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 server13 months from the scan. Deleting your data does not remove them.
Server logsRailway 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 memoryA 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 phoneUntil you delete them or remove the app. Any backup keeps its own copy.
Your random ID on your phoneIt stays in the Keychain even after you delete the app.
Purchase records at RevenueCatWhile we use RevenueCat, unless deleted sooner on request.
Analytics at AmplitudeWhile 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 usUntil your question is settled, then only as long as we need a record of it.
Data held by Apple and VercelSet by those companies.

A daily job on our server removes estimates and scan-count rows once they pass these limits.

7How to delete your data

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.

What this removes

What stays on our side

What stays on your phone

What stays elsewhere

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.

8Your rights

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.

EU and UK

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.

California

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.

CategoryDisclosed for a business purpose to
Identifiers: random ID, hashes, IDFV, IP address, transaction IDs, and your email address if you email usRailway, RevenueCat, Amplitude. Our email provider gets your email address. Vercel sees the IP address of website visitors.
Commercial information: purchases and subscription statusRevenueCat, Apple, Amplitude, Railway
Internet or network activity: app events and device dataAmplitude, RevenueCat, Railway
Approximate location: city or countryOpenAI, Railway. RevenueCat gets your App Store country. Amplitude and RevenueCat can derive location from your IP address.
Visual information: photosOpenAI, Railway
Other information you enter: notes, car details, damage areas, warning signsOpenAI, Railway
Inferences: severity and do-not-drive resultsRailway. 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.

How to make a request

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.

9If you appear in a photo

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.

10International transfers

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 locationSafeguard
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 VercelSet out in their own privacy policies.

11Children

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.

12Security

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.

13Changes to this policy

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.

14Contact

Dereck Ruzzman
carrepairestimate@apps.support