1. Introduction
PFEx (also referred to as "we" or "this App") is a personal finance bookkeeping and management tool. We understand how sensitive financial data is, and our core principle is "local-first, private by default": your data stays on your device by default. We do not operate our own servers, require an account, or force-upload your income/expense data.
2. Information We Process
To function properly, this App processes the following types of information on your device:
- Bookkeeping data: income/expense records, accounts, budgets, categories, tags, notes, and trade/pending-order data that you enter manually; if you enable "record trade location", it also includes the coarse location grid read once on your device at the time of the trade.
- Image attachments: pictures you pick in the AI chat yourself, or that external screenshot intake brings in. They live as compressed copies inside this App's private directory (see Sections 5 and 6).
- Settings & preferences: language, theme (light/dark), up/down color preference, currency, screenshot-intake toggle, record-trade-location toggle, and other local preferences.
- Optional feature configuration: API configuration for a third-party model provider that you fill in yourself for the optional AI report feature (stored only in the device's secure storage; see Section 5).
3. Where Your Data Is Stored
Your bookkeeping data is stored in an encrypted SQLite database on your device (including SQLite3 multiple-ciphers extension encryption), and preferences are stored in local storage. Except in scenarios you explicitly authorize (see Sections 4 and 5), none of your data leaves your device.
4. Do We Collect or Transmit Your Data
By default, we do not collect, upload, or sell any of your personal or financial data. This App has no self-operated servers and does not send your data to third parties through SDKs for analysis or tracking.
The only exception is functionality you explicitly enable (see Section 5), and such transmission still follows the "minimum necessary" principle.
5. Optional AI Research Reports
AI research reports are an optional enhancement that requires you to provide your own API configuration for a third-party large language model provider. The conversational AI ledger assistant uses the same endpoint configuration and follows the same handling principles as this section. The processing principles are as follows:
- API configuration (keys, etc.) is stored only in the device's secure storage and is never uploaded to us or any server.
- When generating a report, only necessary bookkeeping summaries and prompt text are sent to the provider you have chosen, to generate an analysis based on your own data.
- When you attach an image to an AI chat message (picked manually or brought in by screenshot intake), the compressed copy stays in this App's private directory and is sent to that endpoint only when you tap send, as the content of that message; images you never send do not leave your device.
- This processing is governed by the third-party provider's own privacy policy; we recommend you review that provider's privacy policy before use.
- Reports and structured fields (including ratings, target values, etc.) are generated by the model and serve only as an engaging analysis of your personal financial behavior — they do not constitute investment advice. Please do not make any real investment decisions based on the generated content.
- To stop the feature, simply empty the endpoint address and key in Settings and save; from then on no related network request is made, and the entry points that depend on that configuration (AI chat, screenshot intake) fold away.
6. Permissions
This App requests permissions only as needed to implement the relevant features, and follows the "request on use, revocable at any time" principle. Below are the permissions actually requested on Android and iOS, and what each is for:
- Photo library read access:
READ_MEDIA_IMAGES on Android 13 and later, falling back to READ_EXTERNAL_STORAGE on Android 12 and below (declared only up to API 32); photo library access on iOS. It serves exactly two things: "external screenshot intake" (see the box below) and image attachments for questions to the AI ledger assistant. We also declare READ_MEDIA_VISUAL_USER_SELECTED, so on Android 14 and later you can grant access to a selected subset of photos only, and this App still works in that "limited access" state. Photo access is never requested at launch; the system dialog appears only when you explicitly tap "Grant" in Settings.
- Notifications: used for local notifications such as bookkeeping reminders (requires runtime authorization on Android 13 and later).
- Location (foreground, once): a single current-location read when the bookkeeping panel opens, and only if you turned on the "record trade location" toggle. Coordinates stay on your device and are reduced to a coarse grid of roughly 50 km; no place names are stored, no reverse geocoding is performed, nothing is uploaded, and background location is never requested.
- Files & storage: used to choose where backups or exports are saved and to import/export data. On recent Android versions this goes through the system Storage Access Framework (SAF) with a directory you pick yourself, so no broad storage permission is needed.
- Gyroscope / accelerometer: used only for visual UI effects (glow parallax); no physical or environmental data is collected or uploaded.
Scope of "external screenshot intake"
This feature lets you capture a screenshot of a fill confirmation or a bill inside another app (broker, bank, payment) and have it brought into a question to the AI ledger assistant as soon as you return to this App. It performs a single read-only query when the App comes back to the foreground, and:
- It reads only images written within the last 5 minutes that sit in the system screenshots folder (identified by file name and path), at most 3 per scan; it does not read any other photos and does not read videos at all.
- It never scans in the background, registers no media-change listener, and runs no persistent service.
- Matched screenshots are compressed on-device to a 1280px long edge and copied into this App's private directory; the originals in your gallery are neither modified nor deleted.
- Images are sent only when you tap send, as part of that message, to the AI endpoint you configured yourself; they do not pass through our servers.
- The image identifiers used for de-duplication stay on your device. Turning the feature off in Settings, or revoking photo access, silently disables it while everything else keeps working; you can always attach an image manually through the system photo picker.
7. Backup & Export
You can back up or export your data as files within the App, and also export it via the system "share" capability. You choose where backup files are stored (custom directories are supported, following the system SAF storage-permission model). Please keep any files containing financial data securely on your end.
8. Security Measures
- The local database is encrypted using SQLite3 multiple-ciphers encryption.
- Sensitive configuration (such as AI keys) is stored in the system's secure storage.
- All of this App's data lives on your device, so please enable a device passcode and keep your device with you to prevent others from viewing it while unlocked.
9. Your Rights
As an end user, you can:
- View, edit, and delete any bookkeeping data within the App at any time.
- Export, back up, or delete all your data at any time (via "Backup / Export" in the App).
- Revoke any permission at any time in your system settings.
- Turn off "screenshot intake" and "record trade location" in Settings at any time; when you delete an AI message, the image copies attached to it are removed from your device along with it.
- Uninstall the App; related local data will be removed accordingly (unless you previously exported a backup file).
- Contact us for assistance (see Section 13).
10. Children's Privacy
This App is intended for the general public and is not directed to children under 13 years of age (or the applicable legal minimum age in your jurisdiction). We do not knowingly collect personal information from children. If you believe we have inadvertently processed a child's information, please contact us using the details below and we will remove it promptly.
11. Advertising & Third-Party Analytics
This App contains no advertising and integrates no third-party advertising or data analytics SDKs. Your data will not be used for ad targeting.
12. Changes to This Policy
We may update this Privacy Policy from time to time. If a material change is made, we will update the "Effective Date" above and notify you within the App. Continued use of the App constitutes acceptance of the updated policy.
If you have any questions, requests, or concerns about this Privacy Policy or your data, please reach us at:
Email: tech@greyglow.cn
Subject: Please mention "Privacy Policy Inquiry" in the subject line.
Company: GreyGlow Team
Effective Date: November 4, 2026
© 2026 GreyGlow Team. All rights reserved.