← Spendrift

Privacy Policy

Last updated: September 19, 2026

This Privacy Policy describes how Spendrift ("we," "our," or "us") handles information when you use the Spendrift mobile application (the "App"). By using the App, you agree to this policy.
1

Summary

Spendrift is designed so your day-to-day financial records—such as transactions, accounts, and categories—are stored on your device. We do not upload your complete transaction database to servers we control for centralized hosting of your financial records.

Some optional features send content you choose (for example a bank statement file, a voice recording, a receipt image, or a bank SMS you capture with Shortcuts) to independent third-party artificial intelligence ("AI") services so the App can interpret that content and help you enter transactions. Those providers process the data you send according to their own policies.

Separately, production App Store and TestFlight builds may send product analytics, crash diagnostics, push-notification metadata, and limited device census fields to services we configure to improve reliability and the product. Those flows do not include your full transaction ledger. Details are in Sections 7–11 below.

2

Data Stored on Your Device

Your transaction history and related information you save in Spendrift are kept in local storage on your device (the App's on-device database in a shared App Group container). Spendrift does not upload that database to servers we control or to other third-party backends for the purpose of storing your financial records on our behalf.

If you use Apple's device backup services (for example iCloud Backup for your iPhone), copies of your App data may be included in that backup as part of how Apple protects your device. That handling is governed by Apple's privacy practices and your device settings—not by Spendrift operating a separate cloud copy of your data.

Pending bank SMS captures wait in a separate on-device inbox. That inbox is deleted if you remove the App.

3

Third-Party AI Services

The App uses third-party AI models to power certain features. We do not name individual providers here; those providers may change over time. When you use a feature that relies on AI, the minimum content needed to perform that feature is sent to the AI provider over the network, usually through our backend, which acts as a proxy and does not store your transaction database.

4

Import Statement Feature

Spendrift offers an optional "Import Statement" (or similar) flow that lets you select a bank or card statement file (for example a PDF) so the App can suggest transactions to add.

Bank statements can contain highly sensitive information, including but not limited to account details, balances, merchant names, and transfer descriptions. When you use this feature, the statement file you select is transmitted to a third-party AI service so it can read the document and return structured suggestions (such as amounts, dates, and descriptions). That means sensitive information contained in the file may leave your device and be processed by the AI provider.

The App requires you to acknowledge this before you can proceed with import. You should only use this feature if you accept that risk. We are not responsible for the AI provider's processing, retention, or security practices; you should review that provider's terms and privacy policy where available.

5

Voice, Receipt, and Other AI-Assisted Entry

If the App offers voice, receipt scan, or similar input that is interpreted by AI, your audio, receipt image, or other input is sent to a third-party AI service for processing so the App can extract transaction details. Do not use these features with content that includes information you are unwilling to share with an external AI provider.

6

Bank SMS Auto-Import (Optional)

Spendrift can optionally capture bank SMS text via an iOS Shortcuts personal automation you configure yourself. Captured message bodies are stored temporarily on your device, then sent to a third-party AI service when you open the App so they can be converted into transactions.

Before storage and upload, Spendrift redacts long digit runs (keeping only the last four digits) and strips OTP-like content when possible. Setting up the Shortcuts automation is how you opt in: captured messages are parsed when you open the App. You should only set this up if you accept that redacted SMS text may leave your device for AI processing. Message bodies are never sent to analytics or crash-reporting tools.

7

Spendrift Pro and Apple Purchases

Spendrift may offer optional paid features ("Spendrift Pro") billed through Apple's In-App Purchase system. Payment and subscription management are handled by Apple, not by Spendrift directly. We do not receive your payment card number.

The App may store entitlement state on your device (for example whether Pro is active or a trial is in progress) to unlock features and enforce usage limits. We may send coarse subscription status (such as free, trial, pro, or lapsed) to push-notification and analytics providers for product messaging and measurement. We do not send individual transaction amounts, notes, or your full ledger for billing purposes.

8

Product Analytics

In App Store and TestFlight builds (not in local developer or Simulator installs), the App may use a third-party product analytics service to understand how features are used—for example app opens, screen navigation, whether onboarding completed, which capture methods were used (manual, voice, PDF, and similar categories), notification permission outcomes, and Spendrift Pro funnel events.

Analytics is designed to avoid personal financial content: we do not intentionally send transaction amounts, notes, or bank SMS bodies as analytics properties. Category and account names may be included in limited catalog events (such as when you create a category) to improve defaults; you choose those names.

The analytics SDK may also receive standard device and app metadata (such as iOS version, device model, app version, and approximate location derived from IP address by the analytics provider). Traffic may be sent through our first-party backend ingest proxy rather than directly from the device to the analytics vendor.

Session replay may be enabled: the analytics provider can capture screenshots of the App interface during a session so we can see where flows break. That can include on-screen text visible at the time of capture (which may include amounts or labels you are viewing). Password fields are masked by the SDK. Replay is tied to the same analytics configuration as other product events in production builds.

Each install uses an anonymous analytics identifier. We do not operate user accounts in the App and do not call analytics "identify" with your name or email.

9

Crash and Error Diagnostics

In non-Debug production builds, the App may send crash reports, error events, and technical breadcrumbs to a third-party error monitoring service. These reports are intended for engineering diagnosis, not for storing your finances.

Diagnostics use the same stable device identifier as other services (see Section 11). They may include stack traces, app version, device type, and low-cardinality tags about which feature failed (for example voice or PDF import). Diagnostic traffic may be tunneled through our backend. Debug builds do not send diagnostics to the cloud service.

10

Push Notifications

The App supports local reminders you configure (for example daily spend nudges) using Apple's on-device notification APIs. Those schedules and your choices stay on the device unless you use a feature that explicitly syncs settings elsewhere.

The App may also use a third-party push delivery service for optional remote campaigns (for example tips or feedback requests). If you grant notification permission, that service receives a push token and a stable device identifier we assign. We may sync notification permission status and subscription identifiers to our backend so delivery state stays consistent.

For targeting, the App may send compact, non-financial tags to the push provider—such as whether you completed onboarding, coarse transaction-count buckets, which capture methods you have used, app and iOS version, locale, notification permission status, and coarse Spendrift Pro plan status. These tags are not your transaction list.

You can turn off remote notifications in iOS Settings at any time. Local reminders can be disabled in App settings.

11

Device Identifier, Census, Feedback, and Our Backend

Stable device identifier. On first use, the App creates a random device identifier stored in the iOS Keychain. It is used to correlate analytics, diagnostics, push delivery, feedback, and install census records for the same install. It is independent of your name, email, or Apple ID and is not derived from your transaction data.

Install census. When the App launches, it may send a small JSON record to our backend: device identifier, optional analytics anonymous id, device model identifier, iOS version, and app version. Our backend stores this in a database (Supabase) to record first install and last launch times and to link systems operationally. This is not a copy of your transactions.

Notification state. When push services initialize or the App returns to the foreground, we may send device identifier, app version, notification permission status, and push subscription identifiers to the same backend for delivery bookkeeping.

In-app feedback. If you submit the optional in-app feedback survey, we send your answers, optional written notes, optional screenshot, app version, locale or region if available, and your device identifier to our backend for storage so we can read and improve the product. Do not include passwords, full account numbers, or other secrets in notes or screenshots.

AI proxy. Our backend forwards AI requests (voice, statements, receipts, SMS parsing) to model providers and returns structured results. It is not designed to persist your ledger as a hosted database.

Ingest proxy. Our backend also forwards analytics and (in production) mobile crash envelopes to the configured third-party vendors so traffic uses our domain. The proxy does not expand what the App already chose to send.

12

What We Do Not Do (Transaction Database)

Except as described in Sections 3–6 for the specific content you send for AI processing, and except for the operational, analytics, diagnostics, push, census, and feedback flows in Sections 7–11, Spendrift does not store your complete transaction database on third-party application servers for our own centralized hosting of your financial data. Routine use of the App—adding, editing, and viewing transactions—relies on your on-device store.

13

Security

We design the App to keep your data under your control on your device. No method of electronic storage or transmission is completely secure. You are responsible for protecting access to your device and your Apple ID.

14

Children

The App is not directed at children under 13 (or the minimum age required in your region). We do not knowingly collect personal information from children.

15

Changes

We may update this Privacy Policy from time to time. The "Last updated" date at the top will change when we do. Continued use of the App after changes means you accept the updated policy.

16

Contact

If you have questions about this Privacy Policy, contact us at: me@ronakpunase.dev