Before You Start — Data Privacy Notice

This app uses a third-party AI service to grade your practice responses. Please read and agree before continuing.

When you submit any practice test (Listening, Reading, Writing, or Speaking), your response is sent to an external AI company for analysis and grading. No personal information (name, email, payment details) is ever included.

What is sent to the AI provider

  • • Your practice response text (writing essay or spoken answer transcription)
  • • The IELTS question or prompt you are responding to
  • • Test metadata (skill type, task label, academic/general)

What is never sent

Your name, email address, payment details, device identifiers, or IP address. Only your answer text and its question context are shared.

Who receives this data:

Anthropic (Claude AI)

AI grading — band score, rubric feedback

Privacy

Base44 Platform

Securely routes requests; hosts the app

Privacy

Data is transmitted over HTTPS and used solely to generate your feedback. It is not used to train AI models and is not shared further. You can change this consent at any time in Privacy Policy.

Declining means AI grading features will be unavailable for all sections. You can still use flashcards, skills builders, and all study materials without submitting responses.

App Store Connect — Reviewer Reference

App Store Review Notes

This page is provided to assist Apple App Store reviewers in evaluating the IELTS Masterflow app. It covers every compliance checkpoint, exact navigation flows, demo credentials, and evidence for each privacy/consent requirement.
App: IELTS Masterflow  · Developer: DLR Coaching  · Built: May 2026

Quick Compliance Checklist

App Store Connect privacy labels updated Confirmed
Privacy Policy link reachable in-app & in metadata Confirmed
ATT prompt — not shown (no cross-app tracking) N/A
No tracking before consent (GA4 blocked by default) Confirmed
Microphone usage string present & localised Confirmed
AI consent UI gates all outgoing AI calls Confirmed
IAPs present and content unlocks on purchase Confirmed
Clear review notes with demo credentials Confirmed

Privacy Policy URL

Declared in App Store Connect: ieltsmasterflow.com/PrivacyPolicy (reachable without login, no redirect, loads correctly on iOS Safari).

In-App link

The Privacy Policy is linked in three places inside the app: (a) the footer of every page, (b) the AI Consent modal ("learn more" text), and (c) the Settings / account section in the mobile nav.

Data Types Declared in App Store Connect

Data TypeCollected?Linked to User?Used for Tracking?
Contact Info — EmailYesYesNo
Contact Info — NameYesYesNo
User Content — Written textYes (essays)YesNo
User Content — Audio (transient)Yes — deleted after transcriptionNoNo
Identifiers — User IDYesYesNo
Usage DataYes (anonymised)NoNo
Diagnostics / Crash dataYes (via platform)NoNo
Financial — Purchase historyYes (Apple IAP, via StoreKit)YesNo
Device ID / IDFANo——
LocationNo——
Contacts / Calendar / HealthNo——
Browsing historyNo——
ATT prompt is intentionally absent. IELTS Masterflow does not track users across apps or websites owned by other companies. No IDFA, fingerprinting, or cross-app advertising identifier is collected or shared.

All analytics are first-party and anonymised (Google Analytics 4 with analytics_storage denied by default until the user explicitly accepts analytics cookies). GA4 is isolated to the app's WKWebView and cannot be read by Safari or other apps.

This is explicitly documented in the Privacy Policy §6. If the app's tracking practices change in a future update, an ATT prompt will be implemented before release.

No cookie consent banner is shown. The app was updated to remove the consent banner entirely following Apple's App Store review feedback. There is no user-visible cookie prompt anywhere in the app.

GA4 analytics storage is permanently denied via the Consent API on module load — no analytics cookies are written at any point:

// components/CookieConsent.jsx — applied on module load
if (typeof window !== 'undefined' && window.gtag) {
  window.gtag('consent', 'default', {
    analytics_storage: 'denied',
    ad_storage: 'denied',
  });
}
// No UI rendered — component returns null

Only strictly necessary cookies are used (auth session, Stripe fraud-prevention). These do not require user consent under GDPR or Apple's guidelines as they are essential for the service to function.

No tracking occurs. No cookie banner appears. No ATT prompt is needed.

NSMicrophoneUsageDescription value:

"This app requires microphone access to record your voice notes and audio memos, which are saved directly inside your app history for playback."

Localised strings (Info.plist / Localizable.strings)

LocaleString
en (default)This app requires microphone access to record your voice notes and audio memos, which are saved directly inside your app history for playback.
en-GBThis app requires microphone access to record your voice notes and audio memos, which are saved directly inside your app history for playback.
arيستخدم IELTS Masterflow الميكروفون لتسجيل إجاباتك الشفهية أثناء جلسات تدريب المهارة الشفهية. على سبيل المثال، عند الإجابة على سؤال 'صف رحلة لا تُنسى'، يتم تسجيل صوتك وتحليله بالذكاء الاصطناعي لمنحك تقييماً ونصائح للتحسين. يُحذف الصوت فور النسخ.
zh-HansIELTS Masterflow 使用麦克风在口语练习环节录制您的口头回答。例如,当您回答『描述一次难忘的旅行』之类的提示卡问题时,您的声音将被录制、转录并由 AI 分析,以提供评分和详细的流利度反馈。录音在转录后立即删除。
hiIELTS Masterflow माइक्रोफोन का उपयोग स्पीकिंग अभ्यास सत्रों के दौरान आपके बोले गए उत्तरों को रिकॉर्ड करने के लिए करता है। उदाहरण के लिए, जब आप 'एक यादगार यात्रा का वर्णन करें' जैसे प्रश्न का उत्तर देते हैं, तो आपकी आवाज़ रिकॉर्ड की जाती है और AI द्वारा विश्लेषण किया जाता है। ट्रांसक्रिप्शन के तुरंत बाद ऑडियो हटा दिया जाता है।

When the permission prompt appears:

1
Log in with the demo account below.
2
Tap Speaking in the navigation bar.
3
Select any Part 1 question (e.g. "Describe your hometown").
4
Tap the microphone / "Start Recording" button.
5
iOS displays the NSMicrophoneUsageDescription prompt on first use.

The microphone is only accessed when the user actively taps Record. It is never accessed in the background and is not used for any purpose other than recording the spoken IELTS response.

No data is ever sent to Anthropic (or any AI provider) before the user explicitly taps "I Agree".

How it works (code summary):

// hooks/useAIConsent.js
const CONSENT_KEY = "ielts_ai_consent";

export function hasAIConsent() {
  const record = JSON.parse(localStorage.getItem(CONSENT_KEY) || "null");
  return record?.granted === true;
}

// In Writing / Speaking / DailyQuestion pages:
// Before calling InvokeLLM → check hasAIConsent().
// If false → show <AIConsentModal>.
// Modal "I Agree" button → setAIConsent(true) → resumes submission.
// Modal "Decline" → clears form, nothing is sent.

What the modal shows:

  • Exact fields that will be sent (response text, question prompt, task metadata) with real examples.
  • Prominent green box listing what is never sent (name, email, device ID, IP, audio).
  • Named third parties (Anthropic, Base44) with links to their privacy policies.
  • Link to revoke consent at any time from the Privacy Policy.

Features gated by AI consent:

  • Writing — Submit for Grading (Task 1 & Task 2)
  • Speaking — AI feedback on recorded/typed responses
  • Daily Question — AI coaching feedback on Home dashboard

To test the AI consent flow:

1
Open the app and log in with the demo credentials below. If you have previously used the app, first clear the consent: visit Privacy Policy → Section 5 → tap "Revoke AI Consent".
2
Tap Writing in the navigation.
3
Under "Academic", select any Task 2 prompt (e.g. "Technology — Discuss both views").
4
Type at least one sentence in the essay text area.
5
Tap "Submit for Grading". The AI consent modal appears immediately.
6
Tap "Decline" — no network call is made; the form stays intact.
7
Tap "Submit for Grading" again → tap "I Agree" — AI grading proceeds and feedback is displayed.

To revoke consent:

2
Tap "Revoke AI Consent". The consent record is deleted from localStorage instantly.
3
Next submission will show the consent modal again.
In-App Purchase (StoreKit) is implemented on iOS. Users can subscribe directly within the app using Apple's payment system. The same content is also accessible to subscribers who purchased on the web (guideline 3.1.3(b) — cross-platform access).

Available Plans:

PlaniOS (IAP Product ID)Content Unlocked
Free (default)N/ABasic practice questions, 1 mock test/month, basic band estimate
Basiccom.dlrcoaching.ieltsmasterflow.basic_monthlyUnlimited tests, detailed AI feedback, full 4-criteria band breakdown, progress analytics, timed simulation
Procom.dlrcoaching.ieltsmasterflow.pro_monthlyEverything in Basic + model answer comparisons, weakness analysis reports, Band 9 samples, priority AI grading

How IAP works (iOS):

  • On the Pricing screen, iOS users see "Subscribe with Apple" buttons that invoke StoreKit via a JavaScript → WKWebView message bridge (window.webkit.messageHandlers.iap).
  • On successful purchase, the native layer posts a iap_result message back to the WebView, which updates the user's subscription_tier in the database.
  • Users who subscribed on the web can tap "Restore previous purchases" at the bottom of the Pricing screen to restore access.
  • All gated features unlock immediately after purchase confirmation without requiring re-login.

Cross-platform access (guideline 3.1.3(b)):

Users who subscribed via the web (Stripe) can access their content in the iOS app by logging in. Their subscription_tier is read from the server on every session — no iOS purchase is required for existing web subscribers.

iOS pricing flow for review:

1
Log in → tap Pricing in the navigation.
2
On iOS, each paid plan card shows a "Subscribe with Apple" button.
3
Tapping the button triggers the standard StoreKit payment sheet.
4
After purchase, content unlocks immediately and the button state updates.
5
A "Restore previous purchases" link is shown below the plan grid.

The demo account is on the Free tier. The paywall overlay on the Writing feedback panel (criteria breakdown blurred) is visible after grading. This verifies the purchase gate is active.

DEMO ACCOUNT (Free Tier — all features accessible)

Email: reviewer@dlrcoaching.com

Password: IELTSReview2026!

All features are accessible. AI features require completing the in-app consent flow on first use. Subscription paywall overlays are visible as a Free-tier user.

Complete Review Walkthrough (in order):

Flow A — Cookie / Analytics Consent

1
Open the app fresh or clear site data.
2
The cookie banner appears. Tap "Essential Only" to verify no GA4 fires, or "Accept Analytics" to proceed.

Flow B — AI Consent (Writing)

1
Log in with demo credentials above.
2
Tap Writing → Academic → Task 2 → Select "Technology: Discuss both views".
3
Type a short paragraph (any text is fine for review).
4
Tap "Submit for Grading". AI Consent modal appears.
5
Tap "Decline" — confirm no network call is made, form preserved.
6
Tap Submit again → "I Agree" → AI feedback and band score appear.
7
Observe the paywall overlay on criteria details (Free tier).

Flow C — Microphone (Speaking)

1
Tap Speaking → Part 1 → any question.
2
Tap "Start Recording" (microphone icon).
3
iOS displays the NSMicrophoneUsageDescription prompt (first time only).
4
Allow → record a short spoken response → tap "Stop". Transcription and AI feedback follow (AI consent re-used from Flow B).

Flow D — Daily Question (AI Consent, Home)

1
Tap Home (the GraduationCap icon, or the logo).
2
Scroll to the "Daily Speaking Question" card.
3
Type a response and tap "Submit Answer". If consent was previously granted, AI feedback appears directly. If revoked, the consent modal is shown again.

Flow E — In-App Purchase (iOS)

1
Tap Pricing in the navigation.
2
Each paid plan (Basic, Premium) displays a "Subscribe with Apple" button.
3
Tap a Subscribe button — the standard StoreKit payment sheet appears.
4
Complete or cancel the purchase. On success, content unlocks immediately.
5
Tap "Restore previous purchases" (below the plan grid) to restore a prior Apple subscription.

Flow F — Consent Revocation

2
Tap "Revoke AI Consent". Success message shown instantly.
3
Return to Writing → submit → the consent modal re-appears, confirming revocation was effective.

Flow G — Account Deletion

1
On mobile: tap the hamburger menu (top-right).
2
Scroll to the Account section → tap "Delete Account".
3
A confirmation dialog appears before deletion is executed.
4
After deletion, the user is redirected to the Landing page and all personal data is removed.

Additional Notes for Reviewers

  • The app requires an account to access practice features. Login is via email/password or social login — there is no guest mode for graded features.
  • The Listening and Reading modules currently use a pattern-matching scoring approach (no AI call required). They do not trigger the AI consent modal.
  • Stripe web checkout has been removed from in-app flows. All purchases on iOS are handled exclusively via Apple IAP (StoreKit). No external payment links or Stripe redirects exist in the app.
  • All API calls are made over HTTPS. No plain-text transmission occurs.
  • The app does not use background location, background refresh, push notifications, or any capabilities requiring additional entitlements beyond Microphone access.
  • Audio files are uploaded to a private storage bucket, transcribed, and then immediately deleted. They are never stored persistently and are never forwarded to Anthropic.
  • The app does not contain any user-generated content visible to other users (all practice attempts are private to the individual user).

Questions? Contact: privacy@ieltsmasterflow.com