Privacy Policy - Stay Steady

Last updated: 27 April 2026

Stay Steady (“the App”) is developed by Data Consulting Services. This Privacy Policy explains how we handle your information when you use our app.


Our Privacy Commitment

Stay Steady is designed with privacy as a core principle. Your financial data stays on your device by default. The only data that ever leaves your device does so for clearly described reasons — bank synchronization (only when you initiate it), subscription management, optional iCloud sync, optional anonymous analytics, and optional crash reporting — and only to processors that are bound by GDPR-compliant data processing agreements.


Information We Do NOT Collect

  • We do not store your transactions, budgets, or savings goals on our servers
  • We do not sell, rent, or share your data with advertisers or data brokers
  • We do not use advertising identifiers (IDFA / IDFV)
  • We do not track your location
  • We do not run third-party advertising or marketing SDKs
  • We do not require a marketing profile, name, or phone number

Information You Provide

Account (Optional)

You can use Stay Steady fully without an account. If you choose to create one (e.g. to back up subscription state, sync ML categorization corrections, or restore Pro across devices), we collect:

  • Your Apple ID identifier (an opaque user ID, via Sign in with Apple)
  • Your email if you allow Apple to share it (you may also use the relay address)

Authentication is handled by Supabase, our backend provider (see Third-Party Services below). We never see your Apple password.

Subscription Purchases (Pro Tier)

If you subscribe to Stay Steady Pro, your purchase is processed by Apple. We use RevenueCat to verify the receipt and unlock Pro features across your devices. We never see your card details — Apple handles payment.


Data That Stays on Your Device

Financial Transactions

All imported transactions (from CSV, PDF, OFX, CODA, MT940, receipts, manual entry, or bank sync) are stored locally on your device using Apple’s SwiftData framework with iOS Data Protection encryption. Your transactions are encrypted whenever your device is locked.

Savings Goals & Budgets

Your savings goals, budget limits, and financial preferences are stored locally on your device. This data never leaves your device unless you enable iCloud sync.

Custom Categories & Learned Rules

Categories you create and category rules the app learns from your corrections are stored locally on your device.

App Settings

Your preferences (theme, notifications, alert thresholds, etc.) are stored locally using Apple’s UserDefaults system. If iCloud sync is enabled, settings sync via iCloud Key-Value Store.


Bank Synchronization (Optional, Pro Feature)

Stay Steady can connect to your Belgian bank under PSD2 to import transactions automatically. Bank sync is opt-in. Nothing connects until you tap “Sync Bank” and explicitly authorize a bank.

How It Works

  1. You select your bank in the app and enter credentials directly into the bank’s authorization screen (presented securely via ASWebAuthenticationSession or the bank’s own SDK).
  2. Strong Customer Authentication (SCA — typically itsme, card reader, or app-based confirmation) is performed by the bank itself. We never see your password or 2FA codes.
  3. The PSD2 provider (Yaxi or Tink — see Third-Party Services) returns transaction data for the accounts you authorized.
  4. Transactions are imported into your local device storage. We do not retain a copy on our servers.

What is Transmitted

  • Account identifiers (IBAN, currency) for accounts you authorized
  • Booked transaction data (amount, date, counterparty, description) for the requested period
  • A short-lived signed “ticket” generated by our edge function that authorizes a single PSD2 call

What is NOT Transmitted

  • Your bank password
  • Your 2FA codes
  • Account data for accounts you did not authorize
  • Transactions outside the requested time range

Your Control

  • Bank sync is disabled until you enable it
  • Each PSD2 consent has a fixed duration (typically 90 days, set by Belgian regulation) — after which you must re-authenticate
  • You can revoke a bank consent at any time directly with your bank
  • Disconnecting in the app stops further sync; locally imported transactions remain on your device

iCloud Sync (Optional)

How It Works

If you enable iCloud sync in Settings:

  • Transactions, goals, budgets, and custom categories sync to your private iCloud account via Apple’s CloudKit private database
  • Only you can access this data with your Apple ID
  • Sync is disabled by default — you must explicitly enable it

What Syncs

  • Financial transactions
  • Savings goals
  • Budget configurations
  • Custom categories and rules
  • App settings (via Key-Value Store)

Your Control

  • Enable or disable sync anytime in Settings > Data & Sync
  • Disabling sync keeps existing local data
  • iCloud data can be deleted via Apple’s iCloud settings

Anonymous Feedback (Opt-In)

Category Corrections

When you correct a transaction’s category, you may choose to share anonymous feedback to improve our ML categorization model.

Data collected (only with your explicit consent):

  • Merchant name (e.g., “Colruyt”, “Delhaize”)
  • Original category (ML prediction)
  • Your corrected category
  • Anonymous device identifier (randomly generated hash)
  • App version and ML model version

Data NOT collected:

  • Transaction amounts
  • Transaction dates
  • Account numbers, IBANs, or balances
  • Personal information (name, email, location)

How it works:

  • Feedback requests are HMAC-SHA256 signed for security
  • Sent via HTTPS to our training pipeline (hosted on Supabase, EU region)
  • Aggregated across all consenting users
  • Never sold to third parties

Your control:

  • Opt-in only — we show a consent dialog first
  • Revoke consent anytime in Settings > Privacy
  • Previously sent data cannot be traced back to you

Anonymous Usage Analytics (Optional)

If enabled, Stay Steady sends anonymous, aggregated usage events to Aptabase, an open-source, privacy-focused analytics provider hosted in the European Union.

What we collect (only if you opt in)

  • App launches, screen / feature opens (e.g. settings, savings goals)
  • High-level events (transaction added, goal created, sync started)
  • App version, OS version, device model, locale

What we never collect

  • Transaction amounts, merchants, descriptions
  • Account numbers or IBANs
  • IP addresses (Aptabase explicitly does not log them)
  • Advertising identifiers
  • Persistent device IDs
  • Any account or contact information

How it works

  • Analytics is off by default
  • A rotating session ID (a fresh UUID) is generated locally each time you use the app and resets after one hour of inactivity
  • Events are sent over HTTPS to https://eu.aptabase.com — Aptabase’s data processing happens entirely within the EU
  • You can turn analytics off (or back on) at any time in Settings → Privacy

Crash Reporting (Optional)

To improve stability, Stay Steady may send anonymized crash reports and performance traces to Sentry (EU region).

What is collected

  • Stack traces and exception details when the app crashes or hits a recoverable error
  • App version, OS version, device model
  • Anonymized session replay (UI-only, with text fields and form inputs masked) — limited to error sessions
  • Performance traces (e.g., screen load times) — sampled

What is NOT collected

  • Transaction content, merchant names, amounts, IBANs, or balances
  • Any text you typed into form fields (always masked in session replays)
  • Any image content (always blocked in session replays)

Your control

  • Crash reporting can be disabled in Settings → Privacy
  • Sentry data is hosted in the EU and is bound by a Data Processing Agreement

Permissions We Request

Camera Access (Optional)

Stay Steady can use the camera to scan receipts. Vision OCR extracts merchant, amount, and date from receipt photos. All processing happens on-device — no images are sent to servers.

Photo Library Access (Optional)

If you prefer, you can select receipt photos from your library instead of taking new photos.

Face ID / Touch ID (Optional)

Stay Steady offers optional biometric app lock. Your biometric data is never accessed by the app — authentication is handled securely by iOS.

Notifications (Optional)

Stay Steady can send local notifications (budget alerts, weekly check-ins, payday nudges, savings goal milestones, free trial reminders). Notifications are scheduled locally and never reveal personal financial details on the lock screen.

Network Access (Optional)

Network access is used for:

  • Bank sync (only when you initiate it)
  • Account sign-in and subscription verification
  • iCloud sync (if enabled)
  • Anonymous feedback submission (if consented)
  • Anonymous usage analytics (if enabled)
  • Crash reporting (if enabled)
  • ML model updates (downloaded from our servers)

The app’s core functionality (manual entry, file import, on-device categorization, budgets, goals) works fully offline.


How Your Data Flows

[Bank statement / receipt / manual entry]

            [Local Storage]      ←─ Optional ─→ [Your Private iCloud]

        [On-device ML categorization]

[Bank Login (you) → PSD2 Provider (Yaxi / Tink)]

            [Transactions imported to Local Storage]

[Pro purchase] → [Apple] → [RevenueCat] → [Pro entitlement unlocked]

[Sign in with Apple] → [Supabase Auth (EU)]

[Optional: anonymous events] → [Aptabase EU]
[Optional: crash reports]    → [Sentry EU]

Data Security

On-Device Protection

  • Database encrypted with iOS Data Protection (FileProtectionType.complete)
  • Data encrypted whenever your device is locked
  • Optional biometric/PIN lock for app access
  • PIN stored as SHA-256 hash in iOS Keychain

iCloud Security

  • Uses Apple’s private CloudKit database
  • End-to-end encrypted in transit
  • Only accessible with your Apple ID

Network Security

  • All requests use HTTPS (TLS 1.2+)
  • HMAC-SHA256 signed requests for ML feedback and PSD2 ticket minting
  • No personal identifiers transmitted with anonymous data

Data Retention and Deletion

Your Control

  • Delete individual transactions anytime
  • Delete all data in Settings
  • Data is permanently deleted when you delete it
  • Uninstalling the app removes all local data

iCloud Data

  • Managed through Apple’s iCloud settings
  • Disabling iCloud sync in app does not delete iCloud data
  • Delete iCloud data via Settings > Apple ID > iCloud > Manage Storage

Account Deletion

If you created an account, you can request full deletion (auth record, ML feedback contributions, subscription association) by emailing support@dataconsultingservices.net. We will action the request within 30 days as required under GDPR.


Children’s Privacy

Stay Steady does not knowingly collect any information from children under 13. The app does not require any personal information to function.


Third-Party Services

Stay Steady relies on a small set of carefully chosen processors. All are bound by Data Processing Agreements; none receive your raw transaction data unless explicitly listed here.

ProcessorPurposeRegionData sharedPrivacy Policy
Apple iCloud (optional)Private CloudKit sync of your dataApple regionsYour transactions, goals, budgets — only if you enable syncapple.com/legal/privacy
Apple App Store (when subscribing)Subscription billingApple regionsPurchase receiptapple.com/legal/privacy
RevenueCatSubscription receipt validation, restore Pro across devicesUS (with EU SCCs)Anonymized App User ID, Apple receiptrevenuecat.com/privacy
SupabaseAuthentication (Sign in with Apple), ML model distribution, edge functions for PSD2 ticket signing and ML feedbackEU (Frankfurt)Apple user identifier, optional email, ML correction events (if you opt in)supabase.com/privacy
Yaxi GmbH (Routex) (if you use bank sync)Belgian PSD2 bank connectivityEU (Germany)Bank credentials (entered with the bank, not us), transaction data for authorized accountsyaxi.tech
Tink AB (if you use bank sync, legacy provider)Belgian PSD2 bank connectivity (alternate provider)EU (Sweden)Bank credentials (entered with the bank, not us), transaction data for authorized accountstink.com/privacy-policy
Sentry (if crash reporting is enabled)Crash reports and performance tracesEUStack traces, app/OS metadata, masked session replays of error sessionssentry.io/privacy
Aptabase (if analytics is enabled)Anonymous usage analyticsEUAnonymous events, app/OS metadataaptabase.com/legal/privacy

We do not use Google Analytics, Firebase Analytics, Meta SDK, advertising networks, or any tracking SDK that builds a cross-app or cross-site profile of you.


Changes to This Policy

We may update this Privacy Policy from time to time. We will notify you of any changes by:

  • Updating the “Last Updated” date at the top
  • Posting the new policy on this page

For material changes (new processors, expanded data collection), we will also surface an in-app notice on next launch.


Your Rights

Under GDPR (EU/EEA residents) and similar laws, you have the right to:

  • Access: All your in-app data is accessible within the app. For account or ML feedback data held server-side, email us.
  • Deletion: Delete all in-app data directly within the app. For account/server deletion, email us.
  • Portability: Export your data as CSV or PDF anytime from within the app.
  • Rectification: Edit any transaction or goal in the app.
  • Objection: Disable iCloud sync, bank sync, analytics, crash reporting, and ML feedback at any time.
  • Lodge a complaint: With your local data protection authority. In Belgium, this is the Gegevensbeschermingsautoriteit / Autorité de protection des données.

Contact Us

If you have questions about this Privacy Policy or Stay Steady:

Email: support@dataconsultingservices.net

Website: https://dataconsultingservices.net/apps/staysteady/


Summary

QuestionAnswer
Do you collect my personal data?Only what you provide (optional Apple ID, optional opt-ins). No tracking SDKs.
Where is my financial data stored?On your device. Optionally in your private iCloud. Never on our servers.
Is my data encrypted?Yes — iOS Data Protection on device, TLS 1.2+ in transit, EU-hosted processors.
Do you sell my data?No. We do not have it to sell.
Can I delete my data?Yes, anytime in the app. Account/server data: email us.
Do you use analytics?Only if you opt in (Aptabase, anonymous, EU).
Do you show ads?No.
Do you connect to my bank?Only if you choose to. Strong Customer Authentication is handled by your bank.
Is iCloud sync required?No, it’s optional and off by default.

Stay Steady. Stay in control. Your money, your data, your privacy.