An inaccurate age rating misdirects parental controls and content filtering on both platforms. Apple and Google use age ratings to enforce parental control features: a gambling mechanic in a 4+ app bypasses every parental restriction a parent has set. COPPA §312.2 and CCPA §1798.120(c) extend protections to users under 13 — an under-rated app with data collection features triggers child-privacy obligations the developer may not have implemented. Apple rejects apps with gambling or casino mechanics rated below 17+; Google will restrict or remove apps where the rating does not match detected content.
Low because rating mismatches are correctable during review, but a Kids category app with gambling mechanics or ad SDKs is an escalation to COPPA violation territory.
Use Apple's rating questionnaire in App Store Connect to obtain an accurate rating — do not estimate. The questionnaire maps specific content types to specific rating levels and removes the guesswork.
For gambling or casino content, the minimum rating is 17+ on iOS and Teen (13+) with a gambling content disclosure on Android. For apps in the Kids category, the content rating must be 4+ or 9+. Search your codebase for slots, spin, wager, casino, poker in component names or game logic files before submission — any match in a 4+ app is a rejection waiting to happen.
ID: app-store-privacy-data.children-sensitive.age-rating-accuracy
Severity: low
What to look for: Count all relevant instances and enumerate each. Check declared age rating signals: app.json ios.appStoreMetadata.ageRating or equivalent; fastlane/metadata/ios/ rating-related files; fastlane/metadata/android/ IARC classification files; any store-listing/ directory. Compare to actual content: look for violence (damage, kill, weapon, blood, gore in UI components or game logic); gambling (slots, poker, casino, betAmount, wager, spin-to-win, gacha); alcohol/drug references (beer, wine, cannabis, drug in non-health contexts); sexual content indicators (nude, explicit, adult, 18+ in component names); horror themes; strong language (search for profanity in string literals rendered to users). Flag mismatches where the rating appears too low for the detected content, or where a Kids category app (4+/ages-5-and-under) has content that would violate Kids category rules. Also look for simulated gambling features in apps rated for younger audiences — this is a common rejection pattern.
Pass criteria: Declared age rating is consistent with detected content types in the source. At least 1 implementation must be verified. No obvious under-rating or Kids category content violations.
Fail criteria: Not applicable — this is a low-severity informational check. Result is pass, fail (with detail for clear mismatches), or skip.
Skip (N/A) when: No age rating metadata files found and no content markers detected.
Detail on fail: "App declared as 4+ in app.json but source contains casino/gambling mechanics (spin logic in src/games/slots.ts) — gambling content requires 17+ rating" or "Kids category app detected but Ad SDK without child-directed treatment flag initialized — violates Kids category policy"
Remediation: Under-rated apps are rejected; over-rated apps miss their target audience.
Review the configuration in src/ or app/ directory for implementation patterns.