Legal

Privacy Policy

Last updated: August 13, 2026

Overview

ZW Studio LLC ("we," "us," or "our") respects your privacy. This Privacy Policy explains how our mobile apps handle information, including current products such as BenefitTrove (Credit Card Benefits Tracker), Coastful, IDFrame, Myredient, Loomday, Costfolio, and Colorwild.

Information We Do Not Collect

We do not require accounts and do not operate a centralized database of personal data. Across our apps, ZW Studio LLC does not collect:

One important exception applies to analytics and advertising measurement: our apps use Google's analytics and, except where stated below, ad-measurement tools (Google Analytics for Firebase and Google Ads) to understand how each app is used and to measure the effectiveness of advertising we run to promote it. This involves app-usage and standard device data — never your photos, financial records, card credentials, scans, receipts, or dietary profile. Consent and opt-out controls vary by app and region as explained under Analytics and Advertising Measurement and in each app-specific section.

Some apps include optional features that transmit user-typed content (such as a dietary profile) to a third-party AI service on a per-request basis. These flows are disclosed in the per-app sections below.

Analytics and Advertising Measurement

To understand how our apps are used and to measure the effectiveness of advertising we run to promote them, all of our apps — BenefitTrove, Coastful, IDFrame, Myredient, Loomday, Costfolio, and Colorwild — use Google Analytics for Firebase. BenefitTrove, Coastful, IDFrame, Myredient, Loomday, and Colorwild additionally share selected conversion events with Google Ads; Costfolio does not currently run ads or share data with Google Ads. The information involved is limited to app-usage data — for example, which screens or flows you reach and whether a purchase is started or completed — together with a randomly generated app-instance identifier and standard device and usage information (app version, device model, operating system, language, and approximate location at the country/region level derived from your IP address). Google processes this data as our service provider, in accordance with Google's Privacy Policy and How Google uses information from apps that use its services, and retains it only for a limited period (by default, up to 14 months).

This measurement never includes the content you create in an app. Specifically:

Platform identifiers (iOS and Android)

Your privacy choices (consent & opt-out)

Privacy choices depend on the app and the countries where it is offered. In apps distributed in the European Economic Area, the United Kingdom, or Switzerland, we present a consent choice where required. In IDFrame, Coastful, and Colorwild that choice is presented as the app's own consent sheet and can be reviewed or changed from Settings → Allow analytics; other supported apps may use Google's User Messaging Platform and expose a Manage privacy choices option. BenefitTrove is currently offered only in the United States; its privacy-preserving analytics and advertising measurement are enabled by default and it does not provide an in-app analytics toggle. You can also use applicable system-level privacy and advertising controls. For any privacy request, contact us at the email below.

BenefitTrove (Credit Card Benefits Tracker)

BenefitTrove is a manual organizer for U.S. credit card benefits and rewards. It does not require an account and does not connect to a bank, card issuer, or financial-data aggregator. The cards you choose, custom cards, benefit selections, redemption amounts and history, reminders, point values, and other settings are stored in the app's private storage on your device. We do not request or collect your card number, bank login, card-issuer username or password, transactions, or statements. Deleting the app removes this locally stored information unless your device platform preserves it in a device backup.

Card catalog and data updates

BenefitTrove downloads a curated card catalog from Google Cloud Firestore. The catalog contains public product information such as benefit rules, earning categories, annual fees, transfer partners, and review timestamps; your wallet and redemption history are not uploaded with catalog requests. Firebase App Check uses Apple's App Attest to help verify that requests come from the genuine app. Google necessarily processes technical request information such as IP address, device or app attestation data, and network logs to operate and secure these services.

Benefit reminders and remote alerts

Ordinary benefit-expiration reminders are scheduled locally on your device. If you opt into remote benefit-change or transfer-bonus alerts, BenefitTrove uses Firebase Cloud Messaging (FCM) and Apple's Push Notification service (APNs). Firebase and Apple process an app-installation or device push token and the notification topics you choose so they can deliver messages. A topic may correspond to a selected card definition, airline or hotel partner, and your chosen silent or vibrate delivery style. ZW Studio LLC does not keep a separate list that maps those tokens or topic memberships to your name, email, or an account because BenefitTrove has no user accounts.

You can disable either alert type, change the selected transfer partners, or turn off notifications in iOS Settings. The app asks Firebase to unsubscribe from topics you remove; delivery can still be affected by network conditions, Apple or Google services, device settings, Focus modes, and notification permissions. Notification text may be visible on your lock screen according to your iOS notification-preview settings.

Analytics and advertising measurement

BenefitTrove uses Google Analytics for Firebase and Google Ads as described above. Production analytics includes coarse interaction and conversion events such as completing onboarding, adding a supported or custom card, enabling a reminder, marking or undoing a benefit redemption, opening Best Card, viewing or dismissing the paywall, beginning checkout, completing a verified purchase, and receiving or opening a remote alert. Notification analytics identifies only whether the alert was a benefit change or transfer bonus, the silent or vibrate style, and whether it was a test message. It does not include the selected card, benefit, airline, hotel, redemption amount, point value, or reminder threshold. Purchase events may include the App Store product identifier, displayed price and currency, and transaction identifier to prevent duplicate purchase logging. Analytics is disabled in debug builds, simulator runs, UI tests, and other developer runs so development traffic does not enter production reporting.

BenefitTrove Pro (subscription)

BenefitTrove Pro is offered as an auto-renewing monthly or annual subscription and unlocks unlimited wallet cards, custom point values, benefit-change alerts, and transfer-bonus alerts. Purchases, renewals, cancellations, and refunds are processed by Apple's App Store; ZW Studio LLC does not receive your payment card details. The app uses StoreKit to verify your entitlement, and Restore Purchases asks Apple to check prior purchases.

Coastful

Coastful is a FIRE (Financial Independence, Retire Early) calculator and personal net worth tracker. Financial records (assets, liabilities, mortgages, snapshots), FIRE assumptions, goals, and settings entered in the app are stored on the user's device. Coastful does not require users to create an account before using core functionality. The app does not connect to bank accounts, brokerages, or any financial data provider — users enter and update their own asset values. Optional biometric authentication (Face ID, Touch ID, or Android biometric prompt) can be enabled to gate access to the app on each launch; the authentication is handled entirely by the underlying platform and no biometric data is received by Coastful.

Like our other apps, Coastful uses Google Analytics for Firebase and Google Ads to measure usage and the effectiveness of advertising we run for it — see Analytics and Advertising Measurement above. Your financial records are never collected or included in analytics; only anonymous interaction events and standard device information. For users in the EEA, the UK, and Switzerland this is subject to the in-app consent choice described there.

Coastful Pro (in-app purchase)

Coastful Pro unlocks Coast FIRE simulation, what-if scenarios, unlimited assets, and optional iCloud sync (iOS only). It is sold as an auto-renewing monthly subscription and a one-time lifetime purchase. Purchases and subscriptions are processed entirely by the platform store (Apple's App Store or Google Play); ZW Studio LLC does not receive your payment card details. The "Restore Purchases" action queries your platform store account to verify previous purchases; no store-account details are retained by us.

Optional iCloud sync (Pro, iOS only)

If you turn on iCloud sync — a Coastful Pro feature available on iOS and off by default — your financial records are kept in step across your own Apple devices through your personal iCloud account using Apple's CloudKit. That data lives in your private iCloud, is governed by Apple's Privacy Policy, and ZW Studio LLC has no access to it. Turning the feature off stops syncing; your on-device data remains.

Multi-currency exchange rates

When you select an app currency different from your assets' currencies, Coastful fetches the day's reference exchange rates from api.frankfurter.dev — an open, MIT-licensed source based on the European Central Bank's published reference rates. These requests are anonymous and contain no user information, financial records, or device identifiers — only a generic request for the current rate table. Rates are cached on-device for up to 24 hours so the app works offline; no rate or user data is shared with any other party. You can disable this network call by leaving the app currency set to the same currency as your assets.

Exports and imports

Coastful supports exporting and importing your own financial data as local files. These files are not encrypted by Coastful. Exports never leave your device unless you choose to share, save, or transfer the file through platform-provided services or your own storage. Imports are validated and processed on-device only.

IDFrame

IDFrame is a passport photo utility app. It requests access to the camera and photo library only so users can capture, import, and save passport photos. Image processing — including face detection, positioning, background removal, and print-sheet generation — runs entirely on-device. No photos or image data ever leave your device or are sent to our servers.

Recents (on-device history). Finished photos you save are also kept in a "Recents" history inside the app's private storage on your device, so you can re-download or print them again later. This history never leaves your device, is excluded from analytics, and can be deleted in the app at any time; it is removed entirely when you delete the app.

Like our other apps, IDFrame uses Google Analytics for Firebase and Google Ads to measure usage and the effectiveness of advertising we run for it — see Analytics and Advertising Measurement above. No photo, face, or biometric data is ever included in analytics; only anonymous interaction events. For users in the EEA, the UK, and Switzerland this is subject to the in-app consent choice described there, shown as IDFrame's own consent sheet and changeable at any time from Settings → Allow analytics.

Myredient

Myredient is an ingredient intelligence app. Image capture, OCR, and matching against our curated regulatory database all run on-device. When you scan a barcode, only the product barcode number is sent to a public food database (such as Open Food Facts or USDA) — no personal information is included with that lookup.

Dietary preferences and scan history are stored on your device. Scan history is never transmitted off the device and can be cleared at any time from Settings → History → Clear scan history. Dietary preferences are also stored locally, but they are additionally transmitted with each AI request — both scan analysis and follow-up questions — for Pro subscribers who use the AI features. See "AI features" below.

Like our other apps, Myredient uses Google Analytics for Firebase and Google Ads to measure usage and the effectiveness of advertising we run for it — see Analytics and Advertising Measurement above. The photos you capture, your scan results and scan history, and your dietary profile are never included in analytics; only anonymous interaction events. For users in the EEA, the UK, and Switzerland this is subject to the in-app consent choice described there.

AI features (Pro subscribers only)

Pro subscribers can use two AI-powered features: a short plain-language summary on each scan, and a follow-up chat where you can ask free-text questions about a product you just scanned. Both are powered by Google Gemini through a Cloud Run proxy operated by ZW Studio LLC, which forwards the request to Google's Gemini API and returns the result.

Each request carries an app-wide authentication token; we do not attach a device identifier, user account, location, name, email, or scan-history context. The proxy does not retain ingredient text, questions, preferences, or results after the response is returned. Google's handling of the data it receives is governed by Google's API terms. You can stop using AI features at any time from Settings.

Reporting a scan result

If a scan looks wrong, you can tap "Report this result" on a result screen to send it to us for review. This is an explicit, per-scan action — nothing is sent unless you choose to submit a report. When you do, we receive the scanned product's details (such as its barcode or name, the ingredient text, the parsed nutrition, the additives and flags that were shown, and the AI summary if one was generated), the optional note you write, and basic diagnostics about your app and device (app version, operating-system version, device model, app language, and which AI backend was used). Your dietary profile is never included in a report. Reports are stored by ZW Studio LLC using Google Cloud (Firestore) so we can investigate data-quality issues and improve the app; they are not used for advertising and are not tied to your identity. Each scan can be reported once.

Myredient Pro (in-app purchase)

Myredient Pro is sold as an auto-renewing subscription — monthly or annual — optionally with a free trial. Purchases and subscriptions are processed entirely by the App Store or Google Play; ZW Studio LLC does not receive your payment card details. The "Restore Purchase" action queries your store account to verify previous purchases; no store-account details are retained by us.

Saved follow-up conversations are stored on your device alongside the scan they belong to. You can clear a single conversation from within the follow-up chat, delete an individual scan (and its conversation) from your history, or clear all history from Settings.

Loomday

Loomday is a birthday, anniversary, and special-day reminder and keepsake app. Its core features are free and ad-free, and it does not require an account. Optional Loomday Pro features are available through an auto-renewing monthly subscription or a one-time lifetime purchase, processed entirely by Apple's App Store or Google Play. ZW Studio LLC does not receive your payment card details. The people, dates, notes, and settings you add are stored on your device. Loomday does not operate a cloud account or sync your data to our servers.

Photos and memories. Loomday lets you attach photos to the days you track. With your permission, it links to photos in your device's photo library by storing only a local reference (a pointer) to each one — the original photos stay in Photos, and Loomday does not copy, upload, or transmit your images. If you remove a photo from your library, it simply stops appearing in Loomday.

Contacts import. With your permission, Loomday can read your contacts so you can pick a person and import their birthday (including lunar birthdays) when creating a reminder. This happens entirely on your device; your contacts are not uploaded, and Loomday only stores the entries you choose to add.

Notifications. Reminders are delivered as local notifications scheduled on your device. No reminder content is sent to us or to any third party to deliver them.

Like our other apps, Loomday uses Google Analytics for Firebase and Google Ads to measure usage and the effectiveness of advertising we run for it — see Analytics and Advertising Measurement above. Loomday also uses Firebase Crashlytics to receive crash reports and basic diagnostics such as the app version, device model, operating-system version, and stack trace so we can fix stability problems. The people, dates, notes, photo links, imported contacts, notification text, and memories in Loomday are never collected or included in analytics or crash reports. For users in the EEA, the UK, and Switzerland this measurement is subject to the in-app consent choice described there.

Costfolio

Costfolio is a receipt and expense organizer for iPhone, iPad, and Mac. It does not require an account. The receipts you add — photographs, PDFs, amounts, merchants, dates, notes, and categories — are read and stored on your device. Receipt text recognition (OCR) and categorization run locally; the contents of your receipts are never sent to our servers.

Optional iCloud sync (Pro). If you turn on iCloud sync, your receipts are synced across your own devices through your personal Apple iCloud account using Apple's CloudKit. That data lives in your private iCloud, governed by Apple's Privacy Policy; we have no access to it.

Analytics. Costfolio uses Google Analytics for Firebase to measure usage and improve the app — see Analytics and Advertising Measurement above for how that data is handled. Unlike our other apps, Costfolio does not run ads and does not share data with Google Ads, and it does not use Apple's advertising identifier (IDFA) or show the App Tracking Transparency prompt. The contents of your receipts are never included in analytics. For users in the European Economic Area, the United Kingdom, and Switzerland, analytics is off by default and is enabled only if you opt in — via a prompt on first launch and a toggle in Settings → Share anonymous analytics, which you can change at any time. Elsewhere it is on by default and can be reviewed in the app's settings.

Costfolio Pro (in-app purchase). Costfolio Pro is a one-time, non-consumable purchase (no subscription). Purchases are processed entirely by Apple's App Store; ZW Studio LLC does not receive your payment card details. The "Restore purchase" action queries your App Store account to verify previous purchases; no store-account details are retained by us.

Colorwild

Colorwild turns a typed idea into a printable black-and-white coloring page for children to color by hand. It is designed to be operated by a parent or guardian — children color the printed page and are not intended to use the app themselves. Colorwild does not require an account. The coloring pages you generate, the pages you save to your library, and your settings are stored on your device, alongside a ready-made library of pages bundled with the app.

How pages are generated (AI)

To draw a custom page, the text prompt you type (for example, “a dragon riding a bike”) together with the chosen age level, paper size, and language is sent, per request, to Google Gemini through a Cloud Run proxy operated by ZW Studio LLC, which forwards the request to Google's Gemini API and returns the generated line-art image. A short co-design chat uses the same service to suggest kid-appropriate ideas. Prompts are screened by a content filter to keep results child-appropriate.

Each request carries an anonymous, randomly generated device or subscription identifier, so we can apply usage limits and, for subscribers, confirm an active subscription. We do not attach your name, email, precise location, a child's name or details, or any sign-in account. The proxy does not retain your prompt or the generated image after the response is returned. Google's handling of the data it receives is governed by Google's API terms.

Usage limits and credits

To enforce daily generation limits and to honor paid credit balances across reinstalls, our Cloud Run backend (using Google Cloud Firestore) keeps a small, anonymous record keyed to the randomly generated device or subscription identifier described above — a per-day generation count and, if you buy credit packs, your remaining credit balance and the identifiers of purchases already applied. This record contains no name, email, location, child details, prompt text, or generated image; it is only counters tied to an anonymous identifier, kept solely to run the service.

Reporting a page

If a generated page looks inappropriate or wrong, you can tap the report button to send it to us for review. This is an explicit, per-page action — nothing is sent unless you choose to submit a report. When you do, we receive the reason you select and the text prompt that produced the page, together with the anonymous identifier above; we do not receive a child's name or any personal details. Reports are stored by ZW Studio LLC using Google Cloud (Firestore) so we can review content quality and safety; they are not used for advertising and are not tied to your identity.

Analytics and crash reporting

Like our other apps, Colorwild uses Google Analytics for Firebase and Google Ads to measure usage and the effectiveness of advertising we run for it — see Analytics and Advertising Measurement above. The ideas you type, the pages you generate, and your saved library are never included in analytics; only anonymous interaction events and standard device information. Analytics does not use Apple's advertising identifier (IDFA), and for users in the EEA, the UK, and Switzerland it is subject to the in-app consent choice described there, shown as Colorwild's own consent sheet and changeable at any time from Settings → Allow analytics.

Colorwild also uses Firebase Crashlytics (a Google service) to receive crash reports and diagnostic information — for example the type of error, a stack trace, and basic device state (app version, device model, and operating-system version) — when the app crashes or encounters an error, so we can find and fix stability problems. This crash and diagnostic data never includes your prompts, generated pages, or saved library, and it follows the same in-app analytics consent choice, so opting out of analytics also turns it off.

Printing and saving

Pages are printed through the standard iOS print system or saved as a PDF or image via the share sheet; you choose when and where to print or save. Saved pages remain on your device.

Colorwild Pro and credits (in-app purchases)

Custom page generation beyond a free allowance is available through Colorwild Pro (an auto-renewing subscription, optionally with a free trial) or one-time consumable credit packs. Purchases are processed entirely by Apple's App Store or Google Play; ZW Studio LLC does not receive your payment card details. The “Restore Purchases” action queries your platform-store account to verify previous purchases; no store-account details are retained by us.

Data Storage

Data you create in our apps is generally stored locally on your device using standard mobile app storage and photo-library access patterns. Information may leave your device when you explicitly export, back up, share, enable an optional cloud feature, request an AI feature, submit a report, or enable a remote service such as BenefitTrove alerts. Independently, the analytics, attribution, catalog, App Check, push-notification, and purchase-verification services described in this policy process the limited technical and event data needed for those functions.

Biometric Authentication

If an app offers optional biometric protection such as Face ID or Touch ID, authentication is handled by the underlying platform frameworks. We do not receive, store, or transmit biometric data.

Third-Party Services

We do not currently display third-party advertisements inside our apps and do not sell data to data brokers. All of our apps use Google Analytics for Firebase; all except Costfolio also use Google Ads for the advertising-measurement purposes described in the Analytics and Advertising Measurement section above. Google acts as our service provider for that data and processes it under Google's terms and privacy policy. Depending on the app, Google services may also provide cloud storage, AI, App Check, and push messaging. App distribution, payments, backups, notifications, and device-level services are provided by Apple or Google and are governed by their applicable terms and privacy policies.

In-App Purchases

If an app offers in-app purchases or tips, payment processing is handled by the platform store — Apple's App Store on iOS, or Google Play on Android. ZW Studio LLC does not collect or store payment card details. When you tap "Restore Purchases," the app queries your store account to confirm previous purchases. We do not receive or retain your store account details.

Children's Privacy

Our apps are not directed to children under 13, and we do not knowingly collect personal information from children.

Your Rights Under CCPA, GDPR, and Similar Laws

Our apps do not require accounts and do not collect personal data such as your name, email address, or financial account credentials. They do use the analytics and service-provider tools described above. Where an app is offered in the EEA, the UK, or Switzerland, users are given the applicable consent controls described above. BenefitTrove is currently offered only in the United States. We do not "sell" or "share" personal information for cross-context behavioral advertising as those terms are defined under the California Consumer Privacy Act (CCPA). To make an access, deletion, correction, or other privacy request, or to ask about data processed by our service providers, contact us at the email below. Because our apps generally do not use accounts, we may be unable to associate an app-instance identifier or push token with a particular person.

Changes to This Policy

We may update this Privacy Policy from time to time. When we do, we will revise the "Last updated" date on this page.

Contact Us

If you have questions about this Privacy Policy, please contact us at:

ZW Studio LLC
Email: privacy@zwstudiollc.com