Privacy

What happens to the description you type and the contact details the calculator asks for, in specific terms. It’s a short page because the site collects a small number of things, and every claim on it’s checkable in the code.

The short version

  • The calculator asks for your name and a work email before it shows the estimate. There’s no way past that step, and a company name is optional.
  • Those details are stored together with your description and the estimate they produced, in our own database. There’s no account and no password.
  • Your description reaches an AI provider only when this deployment has a provider key configured. When it doesn’t, a routine on our own server reads it instead and no third party sees it.
  • A shared estimate holds the structured specification, not your description, unless you choose to include it, and it deletes itself after 30 days.
  • Nothing you submit is used to train a model, and no advertising network, tracking script, or cookie is involved anywhere on the site.

What happens when you type a description

Your description goes to this site’s server. There it gets read into a structured specification: the list of platforms, capabilities, integrations, and constraints the estimate is computed from.

What happens next depends on how this deployment is configured. If an AI provider key is configured, the description goes to Anthropic’s API to be interpreted. That runs under commercial API terms, which state that inputs and outputs aren’t used to train their models. If no key is configured, the description is interpreted by a routine running on our own server and isn’t transmitted to any third party. Either way the number itself comes from the same deterministic engine, which sees the specification and never your words.

The interpretation step writes none of your text to storage. When a model is used, the resulting specification is cached for 7 days against a one-way hash of the description, so that reloading the page or reopening your own link doesn’t repeat the work. The hash can’t be turned back into what you wrote, and what sits beside it is the specification instead of the text.

From that point the estimate is calculated in your browser. Answering a follow-up question or changing your mind about one recalculates locally and sends nothing.

The last step before the result asks for your name, a work email, and optionally a company. Submitting that form sends those fields back to the server along with your description and the estimate, and the whole lot is written to our database. The next section describes exactly what that record contains. If the write fails, the estimate is shown anyway. An outage on our side is a poor reason to withhold something you already did the work for.

What’s stored, and where it goes

Three records can be created. The first is written when you submit the form that unlocks the estimate, so anyone who gets that far has one. The other two exist only if you press the button that makes them.

Your contact details and your project
The form before the estimate writes one row into our leads database, tagged so that a lead from this calculator is distinguishable from one that reached us another way. The row holds your name, your email, the company if you gave one, the two-letter country code your request arrived with, and a plain-text summary of the project. That summary is the full picture: your original description, the scope we read out of it, the effort breakdown, the cost drivers, and the unknowns. It exists so that a conversation can start without you explaining the project twice. No expiry is set on that row, so it stays until somebody removes it. If the database is unreachable, the same record goes to backup storage for 180 days instead.
Shared estimates
Pressing Share creates a second record so that a link can be opened by somebody else. It contains the structured specification and the date it was created, under a random identifier that can’t be guessed or walked through to find anyone else’s. Your description is included only if you explicitly choose to include it. The dollar figures aren’t stored at all, since opening a shared link re-runs the engine, and the whole record expires after 30 days and is deleted automatically. There’s nobody to ask about deleting an anonymous link later, so it deletes itself.
Review requests
If you ask for a real engineer to look at the estimate, you’re choosing to send your name and email address, optionally a company and a note, along with the specification. That goes to the team who built this tool, and it’s used to reply to you. It’s retained for 90 days.

Reading a cost guide, or leaving before the form, creates none of these. The record is written at the form and nowhere earlier.

Analytics and cookies

If analytics is enabled on this deployment it measures anonymous product events: a calculator was started, contact details were submitted, an estimate was generated, a link was shared. Every analytics call in this codebase passes through a single file, and the event properties it will accept are restricted to numbers, booleans, and short fixed values. There’s no field a project description or an email address could fit into, which is what turns "we don’t send your words to an analytics provider" from a promise into a property of the code.

There’s no advertising network on this site, no cross-site tracking, and no third-party script watching what you type.

The calculator sets no cookies, requires you to accept nothing, and writes nothing to your browser’s storage. That’s also why refreshing the page loses your place. It’s a real trade-off, and this is the side of it we chose.

What the site doesn’t do with it

Be clear about what the form is: it’s a lead. Your details land in a database. We use it to track people who might want software built. Somebody here can read what you wrote and get in touch about it. That’s the arrangement, and what you get back is the whole estimate, never a teaser.

What the code does with it stops there. Nothing you submit is used to train a model. The only outbound destinations anywhere in this codebase are the interpretation provider described above, and only on a deployment that has a key for one, and the storage that holds the record itself.

Getting something removed

Use the contact form. It’s the “Talk to a person” link in the footer. Send it from the address you used, or send the shared link, and the matching records are deleted. That covers the lead row, which has no expiry of its own, as well as a share link you’d rather not wait out.

Shared estimates go on their own after 30 days and review requests after 90, so for those two the answer is often to wait. The contact details stay until somebody deletes them, which is the honest description of a hand-run process. Nothing about it is automated.

Who runs this, and when this page changes

whatwillmyappcost.com is built and operated by the studio that designs and builds custom mobile and web applications behind it. They wrote the calculator and they hold the details it collects. It’s free because some of the people who use it turn out to need software built. The estimate you get is the same one either way.

If any of the above changes materially, this page changes with it. There’s no version history to consult. So the honest statement is narrow: this page describes how the site works today. It makes no claim about how it always worked.

Related

How we estimate explains what the interpreted specification contains and what the deterministic engine does with it, which is the other half of understanding what happens to your description.