Plans & Billing
Current plan
Starter
For small compliance teams getting started.
$199
/mo
Up to 2 region combos
2 team members
Weekly digest reports
Email alerts
30-day archive
Upgrade to Starter
Most Popular
Professional
Comprehensive regulatory coverage for growing teams.
$499
/mo
15 region combos
15 team members
Real-time + daily + weekly reports
Email, Slack & webhook alerts
API access
1-year archive
Upgrade to Professional
Enterprise
Full coverage with dedicated support for large orgs.
$1,499
/mo
40 region combos
Unlimited team members
Everything in Professional
Custom integrations & SSO
Dedicated account manager
SLA guarantee
Contact Sales
to any dashboard page. * Requires elements with IDs: userInitials, userName, userTier */ (async function loadUserProfile() { const token = localStorage.getItem('regpulse_token') || localStorage.getItem('token') || ''; if (!token) return; try { const res = await fetch('/api/me', { headers: { 'Authorization': 'Bearer ' + token } }); if (!res.ok) return; const data = await res.json(); if (!data.success || !data.subscriber) return; const sub = data.subscriber; const email = sub.email || ''; const company = sub.company || ''; // Derive display name: use company if available, otherwise email prefix const displayName = company || email.split('@')[0]; // Derive initials const parts = displayName.replace(/[^a-zA-Z0-9 ]/g, '').trim().split(/\s+/); const initials = parts.length >= 2 ? (parts[0][0] + parts[parts.length - 1][0]).toUpperCase() : displayName.slice(0, 2).toUpperCase(); const tierLabel = (sub.tier || 'free').charAt(0).toUpperCase() + (sub.tier || 'free').slice(1); const el = (id) => document.getElementById(id); if (el('userInitials')) el('userInitials').textContent = initials; if (el('userName')) el('userName').textContent = displayName; if (el('userTier')) el('userTier').textContent = tierLabel; } catch (e) { /* silent */ } })();