Last updated: 2025-01-15

Data Privacy Details

Technical deep-dive on data flows, retention, and your rights — for privacy professionals and technical users.

Relationship to Privacy Policy

This document provides technical detail supplementing our Privacy Policy. The Privacy Policy is the controlling document for user-facing commitments; this page is for transparency, audits, and technical integration reviews.

Data Flow Diagram

┌─────────────┐     HTTPS/TLS 1.2+      ┌──────────────┐ │   Browser   │ ──────────────────────▶ │  CDN / Edge  │ │  (Client)   │ ◀────────────────────── │  (Static)    │ └─────────────┘   HTML/JS/CSS/Fonts     └──────────────┘ │ │  All calculator logic executes HERE │  (React + TypeScript, no server calls) ▼ ┌─────────────┐ │ LocalStorage│ │  (Client)   │ ──▶ country, theme preferences only └─────────────┘ NO DATA SENT TO BACKEND API NO ANALYTICS EVENTS FIRED NO THIRD-PARTY TRACKING

Data Inventory

Data ElementLocationRetentionPurposeLegal Basis
Financial inputsBrowser memory (JS heap)Session onlyCalculator functionContract performance (user request)
Calculation resultsBrowser memory (JS heap)Session onlyDisplay to userContract performance
Country preferenceLocalStorage: 'country'1 yearRemember localeLegitimate interest
Theme preferenceLocalStorage: 'theme'1 yearRemember dark/lightLegitimate interest
HTTP request logsEdge server (CDN)30 daysSecurity, DDoSLegitimate interest (security)

No Personal Data in Calculator Context

By design, Money.Holdings calculators process anonymous numerical inputs only. We do not collect:

  • Names, emails, phone numbers
  • Account numbers, SSN/NINO/TFN
  • IP-linked financial profiles
  • Behavioral data (keystrokes, timing, scroll depth)

If you enter personally identifiable information into a calculator field (e.g., typing your name in "Loan Amount"), it remains in your browser memory and is never transmitted. We strongly advise against this.

Subprocessors

We engage the following subprocessors for infrastructure only. None receive calculator inputs.

SubprocessorServiceLocationData Access
Vercel / Netlify / Cloudflare PagesStatic hosting, edge networkGlobal (US, EU, APAC)HTTP logs only
Google FontsFont delivery (Lora, Inter, JetBrains Mono)GlobalIP, User-Agent (browser cache)
CDN (jsDelivr, unpkg, Cloudflare)Library delivery (React, Three.js, Recharts)GlobalHTTP logs only

International Transfers

Static assets are served from global edge networks. HTTP logs may be processed in the US, EU, or APAC depending on the edge node. No personal data is in these logs.

  • GDPR: No Art. 46 transfer mechanism needed (no personal data transferred)
  • UK GDPR: Same — no restricted transfer
  • APPs: No cross-border disclosure of personal information

Retention & Deletion

Automatic

  • Session data: Cleared on tab close / navigation
  • LocalStorage: Expires after 1 year of inactivity
  • CDN logs: 30-day rolling deletion

User-Initiated

  • Clear site data in browser settings
  • Use "Reset Preferences" in footer (planned)
  • Email legal@ for log deletion request

Your Rights — Technical Implementation

Access / Portability

No personal data held → no data to export. Calculator results can be copied from UI or exported via table "Export" button (CSV).

Rectification

Not applicable — no stored personal data to correct. Update inputs in calculator directly.

Erasure (Right to be Forgotten)

Clear browser data. Email legal@ to request CDN log purge (30-day max retention anyway).

Restriction / Objection

Object to CDN logging by using a VPN/Tor. No profiling occurs to object to.

Automated Decision-Making

None. Calculators are deterministic mathematical tools, not automated decisions under GDPR Art. 22.

Security Controls

  • HTTPS everywhere (HSTS preload eligible)
  • Content Security Policy: script-src 'self'; object-src 'none'; frame-ancestors 'none'
  • X-Frame-Options: DENY
  • Referrer-Policy: strict-origin-when-cross-origin
  • Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), microphone=(), payment=(), usb=()
  • No inline scripts (nonce-based CSP)
  • Dependency scanning: npm audit + Snyk/GitHub Dependabot

Incident Response

In the unlikely event of a security incident affecting user data:

  1. Detect via CDN anomaly alerts
  2. Assess scope (logs only — no calculator data at risk)
  3. Contain: Rotate edge credentials, purge caches
  4. Notify: 72-hour GDPR/UK GDPR notification if personal data affected (unlikely)
  5. Post-incident review published in correction log

DPIA / PIA Status

A Data Protection Impact Assessment was conducted. Conclusion: No high risk — no personal data processed, no profiling, no automated decisions, no sensitive data. DPIA available on request to legal@money.holdings.

Contact

DPO / Privacy technical questions: privacy@money.holdings