Privacy Policy
Effective 13 October 2026. Last updated: 18 October 2026
FXPatternLab is operated by MACRO RESEARCH TECHNOLOGIES LTD, registered in England and Wales (company number 17301851). We are responsible for the personal information processed to provide our app and connected services. Contact us at support@macroresearchtechnologies.co.uk.
Your privacy at a glance. You can open FXPatternLab without entering a name, email address or password. Connected features use a private technical identity. Drawings and chart layouts stay on your device. Optional app usage analytics and separately optional crash reporting are off by default. Eligible Free users may see AdMob banner advertisements in supported builds, subject to applicable privacy choices. Member access does not include ads. Apple or Google handles store payments. You can control available privacy choices and request deletion of service data.
1. Information we use
This policy covers FXPatternLab on iOS and Android, its connected services, and this policy website. The features available to you can depend on your app version, permissions, store and service availability.
| Information | Use and source |
|---|---|
| Private service identity | The app creates or retains a Firebase identity to protect service access, associate service preferences, verify membership and process deletion requests. This technical identity is separate from your Apple or Google store account. Older installations may retain an existing identity. |
| Device and notification records | Installation identifiers, push delivery tokens, enabled topics, notification preferences and service notification history are used for the connected notification features you choose. Your operating system controls notification permission. |
| Membership and purchases | Membership status, product identifiers, relevant transaction references and verification results are used to establish store entitlements and handle subscription support. These come from the purchasing store and its verification services. We do not collect your full card number or bank payment details. |
| Service and security information | Requests to our infrastructure can include IP addresses, app/version information, timestamps, request outcomes and device/app integrity checks. These support delivery, troubleshooting, abuse prevention and deletion-request records. |
| Optional usage analytics | If you enable it, Google Analytics for Firebase processes usage events, a resettable app-instance identifier, basic app/device information and general geographic information derived from IP addresses. See section 3. |
| Optional crash reporting | If you separately enable crash reporting, Firebase Crashlytics processes diagnostic information such as crash stacks, app version, device model, operating system and crash installation identifiers to help us investigate failures. Reporting is off by default and disabled in debug builds. |
| Support correspondence | We receive your email address, message and any information you choose to send when contacting support. Please avoid sending unnecessary personal information. |
Device-only content: Personal chart drawings, layouts, favourites, watchlists, recent selections and cached chart content are stored locally in the current native app. Cross-device drawing synchronisation is not provided. Local chart content is separate from connected service records. We do not upload your drawings through optional analytics. The app does not request precise GPS location.
2. Why we process information
Where UK or European data-protection law applies, we use the following bases:
- Providing the service you request: Private service identity, membership verification and enabled notification preferences are necessary to provide connected features and fulfil the service relationship with you. Without the necessary technical records, some connected features cannot operate.
- Legitimate interests: We use proportionate service/security records and support correspondence to protect the service against misuse, diagnose failures and respond to requests. Our interests are operating a reliable service, protecting users and resolving support or payment disputes.
- Consent: Optional app analytics and separately optional crash reporting operate when you choose to enable them. You may withdraw either choice through the app's privacy controls. Declining optional diagnostics does not prevent membership or alert use.
- Legal obligations: We may retain or disclose necessary records to comply with applicable legal requirements and process your data-protection requests.
FXPatternLab provides educational chart study. It does not make automated lending, employment, insurance or similar decisions about you.
3. Optional analytics and crash reporting
Usage analytics is off by default. If enabled in More, Google Analytics for Firebase helps us understand feature use and improve the app. It may collect screen interactions, app lifecycle events, basic device/app information, approximate geography and store purchase events supported by the SDK. General geography is not your precise GPS location.
Our custom app analytics events exclude account IDs, purchase proofs, chart content and notification text. App analytics advertising personalisation is disabled. Firebase Performance Monitoring is not included in the native app.
Store revenue and campaign measurement: FXPatternLab's Google Analytics property is linked to our Google Ads account for measurement, and the FXPatternLab Android app is linked to Google Play for in-app purchase and subscription-revenue reporting. Google can process eligible event, conversion and store-revenue data through these integrations under the applicable choices, platform rules and Google's terms. These links do not enable personalised advertising, create a campaign or override your app choices. The optional app-analytics switch does not grant advertising user-data consent: advertising storage, advertising user-data and advertising-personalisation consent remain denied in our app Analytics integration. Measurement for users who decline consent is limited to what Google and the platform permit with those denied settings; individual ad attribution is not guaranteed.
Purchase checks and entitlement restoration are separate from optional analytics. We distinguish a new checkout, a pending verification and restored ownership. On iOS, an eligible paid production checkout may be measured using the verified StoreKit transaction after our service accepts it. On Android, Google Play and Firebase provide the monetary purchase stream; we do not add a second manual revenue event. Sandbox purchases, offer-code redemption and restoring existing ownership are not deliberately reported by our custom checkout code as new paid acquisition conversions. Local duplicate-prevention records retain only a bounded set of transaction hashes, not receipts or payment details; they are not uploaded as custom-event parameters.
Crash reporting is a separate, optional choice and is off by default. In More → Privacy & data, you can enable Firebase Crashlytics to help diagnose app failures. Debug builds do not send these reports. Turning crash reporting off stops future collection and requests deletion of unsent reports; it does not erase reports already received by Google. Declining crash reporting does not restrict Free or Member access. Where consent is required, you may withdraw it through the same control. See Firebase privacy information for diagnostic data and retention details, or contact us about previously received reports.
Turning analytics off stops future optional analytics collection and resets the local analytics identifier. It does not automatically erase data already received by Google. Contact us if you want to request deletion of previously collected information; locating a record may require an available identifier. See Google's privacy policy and Google Analytics app-data information.
Advertising
Availability: Supported iOS and Android builds include Google Mobile Ads (AdMob) and Google's User Messaging Platform (UMP). Banner advertising may appear in Overview, chart pages and Study for eligible Free sessions. Older builds and store-billing test builds may not display ads. Member sessions and sessions whose access is still being checked do not qualify for ads. Ad availability is not guaranteed, and ads do not block access to entitled charts or lessons.
Your choices: UMP checks privacy requirements and presents the required choices before an ad request is permitted. Where required, you can revisit them through More → Privacy & data → Ad privacy choices. Analytics and Crashlytics choices are separate; their switches do not control advertising processing. Refusing optional consent does not remove your chart entitlement.
Advertising data: When enabled and permitted, Google's advertising SDK can process network addresses and approximate location, device or app identifiers, diagnostic information, ad impressions and interactions for ad delivery, measurement and fraud prevention. Our integration requests non-personalised ads, disables publisher first-party IDs and does not send account IDs, purchase proofs, chart content, drawings or notification text as ad targeting. It does not request access to the iOS advertising identifier and removes Android advertising-ID permission. Non-personalised ads do not mean no technical data is processed. See Google's iOS and Android SDK disclosures and privacy policy.
We do not sell personal information for money or request cross-app behavioural advertising. Advertising requests require a verified eligible Free session and permission from the applicable privacy flow. Development builds use non-billable test ad units.
4. Service providers and sharing
- Google Firebase and Google Cloud: Service infrastructure, technical identity, app-integrity checks, data storage, messaging, optional analytics and separately optional crash reporting.
- Apple: iOS store billing, transaction verification and Apple Push Notification service.
- Google Play: Android store billing and transaction verification.
- Google AdMob and UMP: These services handle applicable privacy choices and permitted Free-tier banner ad delivery, measurement and fraud prevention as described above.
- Support and professional service providers: Processing necessary correspondence and, where required, legal, accounting or security matters.
Providers receive information needed for their role. Store operators also process purchases under their own policies. We may disclose necessary information where required by law, to protect rights or investigate abuse. See Firebase privacy and security information, Apple's privacy policy and Google's privacy policy.
5. International processing and security
Our providers operate internationally. Information may be processed outside the UK or your country, including in the United States. Google's published Firebase information describes its EU–US Data Privacy Framework certification and UK Extension for covered transfers, alongside its service-specific data-processing terms. The applicable protection depends on the provider, service and destination. Contact us for information about the safeguards applicable to your information and how to obtain a copy.
Technical identity, access controls and app-integrity checks help protect connected service data. No storage or transmission method can guarantee absolute security. Please do not email passwords, access tokens, raw store receipts, purchase tokens or card details.
6. How long information is retained
Google subscription recovery: The recovery service retains encrypted purchase tokens while a subscription can recover. Once Google's current subscription API confirms terminal expiry, the encrypted token is scheduled for removal after 60 days from the first confirmation. A hold, pause, cancellation of future renewal, local expiry estimate or API outage does not start that clock. A subsequent verified renewal clears the old deadline. Deleting one installation removes its link; a token needed by another linked installation remains. Deletion of the final linked installation removes the encrypted token independently of store cancellation. Minimal private anti-replay or retirement references may remain without a customer UID; they do not contain the encrypted credential. Recovery availability depends on the purchasing store and app version; this retention rule applies when an encrypted recovery token is retained.
See our subscription terms, support page and deletion instructions. Operator, support and this recovery-token rule were confirmed on 8 October 2026.
Retention depends on the purpose and type of information. We use these criteria:
- Service identity and preferences: The time needed to maintain connected service access and preferences, followed by eligible cleanup when a verified deletion request is completed.
- Membership and transaction references: The time needed to verify entitlement, resolve payment disputes and meet applicable legal obligations. Store operators maintain their own purchase records.
- Security, support and deletion records: The time needed to resolve the relevant issue, confirm request handling, prevent abuse or meet a legal requirement. Information subject to an unresolved dispute or legal obligation may be retained until that purpose ends.
- Optional analytics: The applicable Google Analytics property retention controls and Google's service policies. Turning analytics off does not erase historical data. Contact us for the current setting relevant to your request.
- Optional crash diagnostics: Firebase Crashlytics retention under its service policy. Disabling the switch requests deletion of unsent reports, not reports already received by the service.
- Device-only content: Until you clear it, remove the app or it is otherwise removed by your device. Device backups are controlled by your operating system and backup choices.
Removal from live systems and provider backups can occur at different times. Provider retention details are available in the linked Firebase information. We do not promise immediate erasure of every backup or store record.
7. Your choices and service-data deletion
In More → Privacy & data, you can disable optional app analytics and crash reporting separately or clear device-only saved content. Notification topics and quiet hours are controlled in notification settings; your operating system controls notification permission. These controls do not cancel store subscriptions.
Request deletion in the app
- Open More → Privacy & data → Delete service data, where available for your connected service.
- Read the confirmation and submit the request.
- Use Check deletion status to confirm completion. A pending request is not confirmation that cleanup has finished.
Request deletion outside the app
Email support@macroresearchtechnologies.co.uk with the subject FXPatternLab service data deletion. Say whether the app is still installed, its version and platform, and any deletion-request reference already shown by the app. You do not need an email address previously used to sign in.
We must verify ownership and locate the private service record before processing a request. A store account alone does not identify an anonymous Firebase identity. If you removed the app and have no reference, contact support; an unidentified record may not be locatable without further verification. Do not send credentials or raw purchase proofs.
Completed eligible cleanup removes the associated service identity, preferences, registered devices and notification history. Device-local drawings and layouts are separate: follow the completion instructions or clear local content yourself. We will explain any applicable legal, dispute or security retention exception.
Deletion, clearing local data, uninstalling and cancelling a subscription are separate actions. A deletion request does not cancel a store subscription or issue a refund. Cancel through the purchasing store to stop future renewals. You may request deletion while a subscription is active.
8. Your privacy rights
Depending on your location and applicable law, you may request access, correction, deletion, restriction or a portable copy of your personal information. You may withdraw consent for optional analytics at any time without affecting processing already carried out lawfully.
Right to object: Where we rely on legitimate interests, you can object to that processing by contacting us. We will consider your circumstances and the applicable legal requirements.
Contact the address below to exercise a right. We may need proportionate information to verify ownership and identify the relevant private record. We do not require you to send passwords. You can complain to the UK Information Commissioner's Office or your local data-protection authority.
9. Children, this website and changes
FXPatternLab is intended for adults aged 18 and over and is not directed at children. If you believe a child has provided personal information, contact us.
This policy website uses no analytics scripts, advertising scripts or cookies set by us. Firebase Hosting processes technical request information, including IP addresses, to deliver and protect the website under its published service policy. Visiting linked third-party websites is subject to their policies.
We will update this policy when practices change and revise the date above. Material changes will be communicated through appropriate app or service notices where required.
10. Contact
MACRO RESEARCH TECHNOLOGIES LTD
England and Wales · Company number 17301851
support@macroresearchtechnologies.co.uk
macroresearchtechnologies.co.uk