Map the data, people, purposes and parties first; the law follows from them. GDPR can reach a non-EU company that targets or monitors people in the EU, and health data is a special category. HIPAA covers only covered entities and their business associates, but a health app outside HIPAA can still owe breach notices under the FTC Health Breach Notification Rule and consent under state laws such as Washington’s My Health My Data Act. Test technical promises either way.
- Pseudonymized data is still personal data when anyone, including you with your own lookup table, can re-identify it.
- GDPR Article 9 prohibits processing health data unless an Article 9(2) condition such as explicit consent applies; Article 33 requires notifying the authority within 72 hours of becoming aware of a breach.
- The CCPA revenue threshold has been $26,625,000 since 1 January 2025. Regulations in force from 1 January 2026 add cybersecurity audits and risk assessments.
- HIPAA protects health information held by covered entities and business associates. The Security Rule changes proposed in January 2025 were still only a proposal on 10 October 2026.
- Vendors of personal health records and related entities outside HIPAA, including many health apps, fall under the FTC Health Breach Notification Rule, whose amendments took effect on 29 July 2024: an unauthorized disclosure counts as a breach, and people must be told within 60 days.
| Setting | Value | Note | Source |
|---|---|---|---|
| GDPR notice to the supervisory authority | Within 72 hours of becoming aware of a breach, unless it is unlikely to result in a risk to people | — | GDPR Art. 33 |
| GDPR notice to the people affected | Without undue delay when the breach is likely to result in a high risk | — | GDPR Art. 34 |
| HIPAA notice to individuals | Without unreasonable delay and within 60 calendar days of discovering the breach | — | 45 CFR 164.404 |
| FTC Health Breach Notification Rule | Individuals within 60 calendar days of discovery; the FTC at the same time if 500 or more people are affected | — | 16 CFR Part 318 |
| CCPA business revenue threshold | Annual gross revenue above $26,625,000, from 1 January 2025 | One of several criteria in the definition of a business. | CPPA monetary threshold adjustment |
| First CCPA cybersecurity audit report | 1 April 2028, 2029 or 2030, depending on annual revenue | — | CCPA regulations § 7121 |
- Trace one record through every store, export, log and backup, and confirm that deletion reaches each.
- Restore a backup in a test environment and confirm that deleted accounts stay deleted.
- Confirm that the scope record names each party’s legal role for each flow, with the reviewer and date.
- Check that the breach runbook includes every applicable clock: 72 hours under GDPR, 60 days under HIPAA and the FTC rule.
- Applies to
Scoping privacy and health-data engineering work. Geography or encryption alone does not settle legal applicability.
- Part of
- Workflows: Review a design, Build an AppSec program
Learning goals and prerequisites
What you will learn
- Use processing purpose, identifiability and actor relationships to scope privacy questions.
- Compare current CCPA thresholds without treating one criterion as the whole definition.
- Separate HIPAA entity/data scope and proposed rules from a concrete deletion failure.
Before you start
Engineers and privacy reviewers scoping products that handle personal or health data
- Map personal data, purposes, parties, locations and retention before selecting controls.
Refresh first: Data minimization and retention: collect less and prove that deletion works
Go to the guided practicePrivacy scope begins with processing facts: which data, about whom, collected where, for what purpose, under whose decisions, shared with whom, retained how long and protected by which controls. A table of database columns is useful but incomplete if a support export, analytics stream or backup copy is omitted. Roles can differ by purpose: a service may process customer records on instructions while determining its own purposes for billing or marketing. A vendor label does not settle every relationship.
The fictional Fern service has consumer wellness tracking and a separate clinic integration. Both contain health-related fields, but the relationship with a healthcare entity matters for HIPAA analysis. A random account identifier remains linkable when Fern holds the lookup table; calling the records anonymous does not remove identifiability (/domains/identity-crypto/privacy/tokenization-privacy-engineering/ compares the transformations). Start with the full data-flow map and preserve uncertain facts for the appropriate privacy/legal reviewer. Engineers can demonstrate actual collection, deletion and access behavior without pretending that a technical test alone determines legal scope.
The European Commission explains that GDPR can apply through an EU establishment or through offering goods or services to, or monitoring people in, the EU from outside it. Geography of the server alone does not determine applicability. Encryption or pseudonymization does not make re-identifiable data anonymous. Health data is special category data: Article 9 prohibits processing it unless a condition in Article 9(2), such as explicit consent, applies. Once scope is established, lawful purpose, minimization, rights handling and security require their own analysis; one consent checkbox does not resolve every processing purpose. The engineering side of Articles 25, 32 and 35, from defaults to DPIA screening and erasure, is in /frameworks/gdpr-privacy-by-design-engineering/.
For California, use the current CCPA statute, regulations and threshold notice. CPPA lists regulations effective 1 January 2026 and a gross-revenue threshold of $26,625,000 effective 1 January 2025. That figure is one criterion within the legal definition, not a universal exemption for every smaller entity. Other criteria, relationships and data-specific exclusions require review. The fixture deliberately supplies revenue sufficient for arithmetic but omits some legal facts. A useful engineer reports the threshold comparison and missing facts separately instead of declaring the whole organization covered or exempt.
Regulations in force from 1 January 2026 add three duties that need engineering evidence. Each has its own trigger, so record which ones apply and why.
- Cybersecurity audits: an independent audit of the security program for a business that earns half its revenue from selling or sharing personal information, or that meets the revenue threshold and in the previous year processed the personal information of 250,000 or more consumers or households, or the sensitive personal information of 50,000 or more consumers. The first report is due on 1 April 2028 if 2026 revenue was above $100 million, 1 April 2029 if 2027 revenue was $50–100 million, and 1 April 2030 if 2028 revenue was below $50 million.
- Risk assessments: processing that began before the regulations and continues must be assessed by 31 December 2027, with summary information submitted to the CPPA by 1 April 2028.
- Automated decision-making technology used for significant decisions: notice, opt-out and access duties from 1 January 2027.
HHS describes the HIPAA Security Rule as protecting electronic protected health information handled by covered entities and business associates. A direct-to-consumer wellness application is not automatically a covered entity merely because it stores symptoms. A vendor acting for a clinic may have a business-associate relationship, depending on the actual function and facts. A signed contract can document responsibilities, but lack of a contract does not establish that a legally defined role is absent.
The Security Rule changes HHS proposed on 6 January 2025 were still a proposed rule on 10 October 2026. Keep proposal tracking separate from the current rule and any subsequently adopted requirements; do not present proposed technical details as already binding. For the clinic integration, engineering should identify who can read records, service accounts, logs, backups and third parties, and supply access and recovery evidence. A flow outside HIPAA can still carry the duties described in the next section; the scope record should never substitute “no HIPAA” for “no responsibility”.
A consumer wellness app such as Fern’s flow F1 is usually outside HIPAA, but not outside health-privacy law. Three regimes commonly apply to the same data.
- The FTC Health Breach Notification Rule covers vendors of personal health records and related entities that HIPAA does not, including health apps that draw data from several sources. Since the amendments in force from 29 July 2024, sharing health data without authorization counts as a breach, not only a hack. Notify affected people within 60 calendar days of discovery, the FTC at the same time when 500 or more are affected, and prominent media when 500 or more residents of one state are.
- Washington’s My Health My Data Act, in force for most regulated entities since 31 March 2024 and for small businesses since 30 June 2024, requires consent to collect or share consumer health data, including health inferences drawn from other data, and a signed authorization to sell it.
- For people in the EU, GDPR treats the same data as special category data under Article 9 and requires a breach notice to the supervisory authority within 72 hours under Article 33.
Translate a selected commitment into observable behavior. If a reviewed retention policy says delete active account data after an approved request and expire backups within a stated period, test all linked stores and the restore path, as in /domains/identity-crypto/privacy/data-minimization-retention/. A database row deletion does not prove that search indexes, analytics exports and logs were deleted. A backup exception should name access controls, retention and how restored data is re-deleted; indefinite hidden copies contradict a blanket deletion promise.
The fixture's policy uses a 30-day backup expiry as a fictional company commitment, not a universal GDPR/CCPA/HIPAA deadline. The supplied deletion test removes live rows but leaves a named analytics export and restores deleted data from a backup without a tombstone. That test fails the stated technical promise regardless of the eventual legal classification. Record both findings: behavior failure owned by engineering, and applicability/role questions owned by privacy/legal review. This preserves progress without letting unresolved law become a reason to ignore a demonstrated product defect.
Record scope per flow as data: the purpose, the data, whether it includes health data, each party's role, the regimes considered with their status, and the open questions with an owner and a due date. An undetermined role or a regime under review is an honest state, as long as someone owns the question; what the record must not do is leave a gap that reads as “no obligation”.
{
"product": "Juniper sleep coaching (fictional)",
"reviewed_on": "2026-10-10",
"flows": [
{
"id": "S1",
"purpose": "Sleep diary and coaching for consumers in the EU and US",
"data": [
"email",
"sleep diary",
"medication notes"
],
"health_data": true,
"roles": {
"Juniper": "controller"
},
"regimes": {
"GDPR": "applies: offers the service to people in the EU",
"HIPAA": "not applicable: no covered entity or business associate relationship",
"FTC Health Breach Notification Rule": "under review"
},
"open_questions": [
{
"question": "Which Art. 9(2) condition covers medication notes?",
"owner": "privacy counsel",
"due": "2026-10-31"
}
]
},
{
"id": "S2",
"purpose": "Sleep reports for an employer wellness program",
"data": [
"employee ID",
"weekly sleep score"
],
"health_data": true,
"roles": {
"Juniper": "undetermined",
"Employer": "undetermined"
},
"regimes": {
"GDPR": "under review"
},
"open_questions": [
{
"question": "Controller or processor for the employer reports?",
"owner": "privacy counsel",
"due": "2026-11-15"
}
]
}
]
}It rejects unknown role names, undecided roles or regimes with no open question, health data with no regime considered, and questions without an owner or past their due date. Run it when the record changes and on a schedule, so stale questions surface before a launch rather than after.
"""Keep privacy scope decisions explicit: every role, regime and open question has an owner.
Usage: python3 check_scope.py processing-scope.json
"""
import json
import sys
from datetime import date
ROLES = {"controller", "joint controller", "processor", "covered entity", "business associate",
"service provider", "third party", "undetermined"}
with open(sys.argv[1], encoding="utf-8") as f:
scope = json.load(f)
today = date.fromisoformat(scope["reviewed_on"])
problems = []
for flow in scope["flows"]:
fid = flow["id"]
for party, role in flow["roles"].items():
if role not in ROLES:
problems.append(f"{fid}: {party} has unknown role {role!r}")
undecided = [p for p, r in flow["roles"].items() if r == "undetermined"]
undecided += [r for r, v in flow["regimes"].items() if v == "under review"]
if undecided and not flow["open_questions"]:
problems.append(f"{fid}: {', '.join(undecided)} undecided with no open question")
if flow["health_data"] and not flow["regimes"]:
problems.append(f"{fid}: health data with no regime considered")
for q in flow["open_questions"]:
if not q.get("owner") or date.fromisoformat(q["due"]) < today:
problems.append(f"{fid}: question without an owner or past due: {q['question']}")
print("\n".join(problems) or f"{len(scope['flows'])} flows: every open point has an owner and date")
sys.exit(1 if problems else 0)Guided practice
Prepare Fern’s scope worksheet and evaluate its deletion promise from a complete fictional data-flow dossier.
Supplied scenario material
Flow F1: Fern US company targets EU consumers with localized paid wellness service; stores email, symptoms, random account ID; Fern retains lookup mapping IDs to emails.
Flow F2: clinic sends patient records for appointment analytics performed under clinic instructions; whether clinic is covered entity and Fern role require confirmation; proposed business-associate agreement not signed.
Flow F3: Fern reuses selected clinic records for its own product marketing; no approved purpose/authorization record supplied.
California facts: annual gross revenue $27,000,000; does business in California; other business-definition/exemption facts unreviewed. Current supplied threshold $26,625,000.
Policy RET3 (fictional): approved requests delete active data/exports; backup copies expire within 30 days and cannot silently restore deleted records.
Test DEL9: live DB row removed; analytics export still has email/symptoms; day-20 restore resurrects account, no tombstone applied.
Roles: engineer Uma owns deletion; privacy reviewer Vic owns role/purpose review; clinic liaison Wes confirms F2 entity/contract facts.1. Classify identifiability
Decide whether F1 random IDs make the records anonymous.
Expected result and reasoning
No. Fern retains the re-identification mapping, and email/symptoms are also present. Describe this as identifiable/pseudonymized processing as appropriate, not anonymous data. The EU targeting fact warrants GDPR applicability review independent of US server location.
2. Compare the California threshold
Calculate the difference and state the limit of the inference.
Expected result and reasoning
$27,000,000 − $26,625,000 = $375,000 above the supplied current revenue criterion. This supports that criterion only; Vic still reviews the full business definition, roles and exclusions. Do not use the old $25 million figure or assert a complete legal determination.
3. Separate clinic and marketing roles
Explain why F2 and F3 need distinct decisions.
Expected result and reasoning
F2 is processing under clinic instructions and requires covered-entity/business-associate fact review. F3 adds Fern’s own marketing purpose, which cannot inherit authorization from the analytics instruction. Vic/Wes resolve roles and permitted use before that reuse proceeds.
4. Evaluate the deletion test
Apply RET3 to DEL9 without inventing a statutory deadline.
Expected result and reasoning
DEL9 fails RET3: an active analytics export retains the data, and restore resurrects it without deletion enforcement. Day 20 being within the 30-day backup window does not authorize active reappearance. The 30 days is the fictional policy, not a universal legal rule.
5. Write an evidence-and-scope plan
Assign concrete records and keep legal/technical conclusions separate.
Expected result and reasoning
Uma removes all linked active copies and tests a restored backup applying deletion tombstones; expected no active account/export after restore. Vic records GDPR/CCPA/marketing conclusions with current sources; Wes supplies clinic function/entity/contract facts. Report DEL9 failure now while legal scope remains under review.
All facts and policies are fictional.
Save a draft on this device to resume later. Automatic saving begins after you choose Save. Drafts are never sent by this application; use synthetic data.
No draft saved on this device yet.
Sources & further reading
The standards, specifications and documentation behind the guidance above. Each is the evidence for a claim on this page; consult it for detail beyond the defaults and versions listed here.
- European Commission: application of the GDPR
- Regulation (EU) 2016/679 (GDPR), EUR-Lex. OJ L 119, 4 May 2016.
- CPPA: CCPA updates, cybersecurity audit, risk assessment, ADMT and insurance regulations. Approved 22 September 2025; effective 1 January 2026.
- CPPA: updated CCPA monetary thresholds. Effective 1 January 2025.
- HHS: The HIPAA Security Rule and its rulemaking history
- 45 CFR Part 164 Subpart D, breach notification (CFR annual edition, via govinfo)
- 16 CFR Part 318, Health Breach Notification Rule (CFR annual edition, via govinfo)
- Federal Register: Health Breach Notification Rule amendments (via govinfo). 89 FR 47028, published 30 May 2024; effective 29 July 2024.
- Washington State Attorney General: My Health My Data Act
Reference information
- SDLC phase
- PlanningDesignSecurity program
- Role
- Security leaders