Draft: this policy is not yet in effect.

ttfriday Privacy Policy

This policy explains what data ttfriday (the "App") handles when you use it, why, who receives it, where it is kept, how long it is kept, and how you can exercise your rights. It describes what the current version of the App actually does; if that changes, we will update this policy first.

If this English version and the Traditional Chinese version differ, the Traditional Chinese version prevails. This policy is not legal advice.

1. Who we are

The App is developed and operated by the individual developer WEI KAI LIAO ("we", "us"), who is responsible for the data described in this policy.

Contact: support@ttfriday.com (we accept contact by email only; we do not provide a phone number or postal address)

2. What data we handle

You can use the App without signing in: viewing the sample trip, creating trips that stay only on your phone, and tracking expenses all work without an account. You only need to sign in to invite travel companions, join someone else's trip, or sync a trip across several phones. We never ask for your phone number, address or location. The current version touches the following data:

When you sign in (with Apple or Google)

What is stored on our servers once you sign in

Data that stays on your phone

Data that leaves your phone

We do not collect precise or approximate location, contacts, your photo library, profile photos, health data, payment data, advertising identifiers or passwords. The App has no ads and no cross-app tracking; apart from the diagnostic information the Android text-recognition component sends to Google (see section 5), it has no third-party analytics (Sentry receives only crash and error reports so we can fix bugs; it does no usage analytics), and we do not sell any data.

3. How we obtain it

Apart from these, we do not obtain or buy data about you from any other source.

4. Why we handle it

DataPurpose
City codeReturn the weather forecast for that city
AI request text, interface languageGenerate trip suggestions and return them to you
Installation ID, IP addressEnforce daily usage limits, prevent abuse and attacks, keep the service available
Exchange-rate request (no parameters)Return current exchange rates
Technical records such as request time, result and durationTroubleshoot problems and confirm the service is working
Crash reports, device information, crash-reporting installation codeFind and fix the code problems that cause crashes and errors
Account identifiers, email addressLet you sign in, recognize the same account on different phones, and confirm it's you when you ask to delete your account on the web or by email. We do not send marketing email
NameLet the host and other members recognize you in trips you join
Hash of the sign-in credentialKeep you signed in and detect stolen credentials
Trips, suggestions, member expenses, memberships, invitesSync your trips and let members of the same trip plan and track expenses together
Reports, blocks, suspension recordsHandle abuse and inappropriate content and protect other users
Email address and content of messages to supportReply to you

We do not use this data for any purpose other than those listed above.

If you prefer not to provide this data: if you do not use the weather, AI trip suggestion or exchange-rate features, the corresponding data is not sent. The rest of the App (trips, expenses, etc.) keeps working, and weather and rates fall back to built-in or previously fetched values. If you do not sign in, there is no account data and your trips are not uploaded; the trade-off is that you cannot invite companions, join someone else's trip or sync across phones.

5. Who we share data with

Each of the following receives only what is needed for that feature:

RecipientWhyWhat it receives
Amazon Web Services (AWS)Hosts our server, the account and trip database, daily backups (Amazon S3), content delivery network (CloudFront), firewall and secret storageEvery request that passes through our server, and your IP address; the account and trip data in section 2 (including backups)
Sentry (Functional Software, Inc.)Receives crash and error reportsCrash reports, device information and a random installation code generated by the crash reporting component; not your name, email address, account identifier, IP address, trips or expenses
Apple (Sign in with Apple only)Identity verification for Sign in with Apple; revoking the App's authorization when you delete your accountYou interact with Apple directly when signing in; our server only downloads Apple's public verification keys (no data about you), and on account deletion sends Apple the authorization data needed to revoke access
Google (Sign in with Google only)Identity verification for Sign in with GoogleYou interact with Google directly when signing in; our server only downloads Google's public verification keys and sends no data about you to Google
Amazon Bedrock (AWS's AI service), using the Claude model developed by AnthropicGenerates AI trip suggestionsYour AI request text and interface language. Not your IP address or installation ID
OpenWeatherProvides weather forecastsQueried by our server with the city's coordinates only; no data about you
Frankfurter (an open exchange-rate service)Provides exchange ratesQueried by our server, which sends only the list of currencies; your phone does not connect to Frankfurter, so it does not receive your IP address or any data about you
CloudflareManages the ttfriday.com domain and forwards mail sent to support@ttfriday.com to usThe email you send (including sender address and content)
The email service we use to receive and reply to mailStores and replies to support emailYour email and our reply
Google (Android only; the component is installed with the App and may send while the App is running, not only when you use "Scan receipt")On-device text recognition componentThe photo is not sent; the component sends diagnostic information to Google over an encrypted connection, for diagnostics and usage analytics: device information (manufacturer, model, OS version), app information (package name and version), performance metrics, and a per-installation identifier used only for diagnostics (one is created for each installation; it is not intended to identify you or your phone)

About AI trip suggestions: according to AWS's public documentation, Amazon Bedrock does not store model inputs or outputs by default, and the model developer (Anthropic) cannot access them. We have also turned off logging of AI request content. Please do not put personal details such as ID numbers or phone numbers in your AI request text.

According to Frankfurter's public statement, it does not log personal data, IP addresses or request URLs. According to OpenWeather's public policy, it does not store API request parameters or IP addresses.

We require or select service providers that provide the same or equivalent protection of data as described in this policy. Except where required by law, we do not provide data to anyone else.

6. Where data is stored

Data is stored primarily in the United States; content delivery network nodes are located worldwide.

Specifically: our server, the account and trip database and its backups are in the AWS US East (Northern Virginia) region; AI trip suggestions are processed in AWS data centers in the United States; the content delivery network receives your request at the node nearest to you; crash reports are stored in Sentry's data center in the United States. Frankfurter, OpenWeather, Cloudflare and our email provider process data according to their own infrastructure, which may be outside your country or region.

7. Who other than you can read this data

Plainly:

Who sees what in a shared trip

ContentHostMembers of that tripAnyone else
The trip itself (places, times, expenses the host records, notices)Sees and can editSees, cannot editCannot see
Member list (names, initials avatar, host or member)SeesSeesCannot see
Your email address and account identifiersCannot seeCannot seeCannot see
Suggestions made by membersSees allSees their own and the outcomeCannot see
Expenses members record themselvesSees; can edit or deleteSees; can edit or delete only their ownCannot see
Who reported or blocked whomCannot seeCannot seeCannot see

8. How long we keep it

DataWhereRetention
Trips and expensesYour phoneUntil you delete them in the App, clear the App's data or uninstall it
Sign-in credentialYour phone's Keychain / KeystoreUntil you sign out, delete your account or uninstall
Account identifiers, name, email addressOur serverUntil you delete your account
Trips you host, memberships, suggestions, member expensesOur serverUntil the host deletes the trip or the account (see section 9); only the 3 most recent conflicting versions are kept per trip
Hash of invite link codesOur serverLinks expire after 30 days; deleted with the trip or account
Hash of the sign-in credentialOur serverExpires after 60 days without use; revoked immediately on sign-out or account deletion
Reports, blocks, suspension recordsOur serverUntil the account concerned is deleted
Daily backups of all server data aboveAmazon S3 (US East, encrypted at rest)Each backup is deleted automatically after 30 days
Cached rates and weather, installation IDYour phoneUntil you clear the App's data or uninstall it
Hashes of the installation ID and IP address (computed with a key that changes daily; cannot be reversed)Our serverDeleted after 48 hours
Weather forecast cache (no personal data)Our serverDeleted after 48 hours
Technical records (time, request number, feature, result, duration; no IP, AI content, installation ID, account identifier or invite link code)Our serverUp to 14 days
AI request text and generated suggestionsPassed through our server, not storedDiscarded after processing
Support emailEmail serviceDeleted within 30 days after the matter is resolved
Crash reportsSentry (United States)Deleted automatically after at most 90 days

Our server does not keep your raw IP address. The firewall and content delivery network use IP addresses in real time to block abnormal traffic.

Backups exist to restore data if the server fails; up to the most recent 24 hours of changes could be lost. Data you delete is removed from the server database immediately, but copies remain in backups already taken and disappear completely only when those backups are deleted automatically at the end of their 30-day retention (cloud storage usually carries out automatic deletion within one or two days after that). Until then we do not use backups for any other purpose; if we ever have to restore from a backup, we delete again any data you had asked us to delete.

9. Your rights

You may ask us to: let you see or review your data, give you a copy, supplement or correct it, stop collecting, processing or using it, or delete it.

Deleting your account

Write to support@ttfriday.com. We will reply within a reasonable time.

10. Children

The App is not designed for children under 13, and we do not knowingly collect personal data from children. If you believe a child has given us data, write to us and we will delete it.

11. Changes to this policy

If this policy changes, we will update the version and effective date at the top of this page and keep every previous version available. Material changes (for example, a new recipient of your data) will be reflected in this policy before they take effect.

Change log:

Previous versions: 1.0 and 1.1 were internal drafts that were never published, so there is no earlier version to view.

Version 1.2 · Effective on the date the App is first published in an app store