17 permission groups · 51 perms
Clients, Scheduling, Authorizations, Billing, Reconciliation, Payroll, Users & Settings, Reports, Intake, Clinical, EVV, HR, Compliance, Documents, Help Tickets, Audit, Tools.
Compliance & Security
17 permission groups, 51 distinct permissions, 10 default role templates. RBAC enforced at view dispatch — before any PHI is loaded. Tenant scoping enforced everywhere via a single helper. Audit trail of every CRUD, login, and export.
Role-based access control
Most platforms gate UI elements but leave the underlying URL accessible. Carelytics's
RolePermissionMixin runs the perm check in dispatch() — if a user without
the right perm types the URL, they get a 403 before any database query touches PHI.
Clients, Scheduling, Authorizations, Billing, Reconciliation, Payroll, Users & Settings, Reports, Intake, Clinical, EVV, HR, Compliance, Documents, Help Tickets, Audit, Tools.
Agency Admin · Manager · Scheduler · Biller · Skilled Nurse · Therapist · Clinical Manager/QA · Payroll/HR · Intake/Admissions · Office Staff/Read-Only.
clients.view_assigned_only narrows the queryset for clinicians and aides — they only see clients they're assigned to. Defense in depth, not just UI gating.
visible_clients(user, tenant) is the canonical replacement for Client.objects.all(). Used in every list view, dropdown, autocomplete, and dashboard count.
Holding evv.checkin auto-grants evv.view — you can't perform the action without seeing the surface to navigate to it. Never the reverse.
Caregivers see a separate dashboard — no revenue numbers, no agency-wide KPIs. Routed automatically by clients.view_assigned_only.
Modern authentication
Most home health platforms still ask clinicians to type a TOTP code on every login. We treat the second factor as a problem to solve at the device level — not a hoop the user re-jumps every shift.
Touch ID, Face ID, Windows Hello, hardware keys — all supported via WebAuthn. Once enrolled, login is one biometric tap. No SMS codes, no authenticator app to lose with the phone.
After the first successful MFA on a device, that device is trusted for a configurable window. The clinician's phone stops re-prompting between shifts — but a new browser or a stolen session still pays the full MFA cost.
Lost authenticator? Self-service email recovery code with a 15-minute TTL, single-use, rate-limited. Plus tenant-admin and super-admin reset paths — all audit-logged with the reason.
Clinical drafts saved while offline are encrypted in the browser with WebCrypto — AES-GCM with a per-device key. The PHI never sits in localStorage in the clear, even on a device that's been lost.
TOTP enrollment is required for every user account. The middleware forces enrollment on first login and verification on every fresh session. No opt-out — not even for the agency owner.
The MFA verify, password reset, and email recovery pages render with no sidebar, no nav, no chrome. A half-locked-out session can't peek at navigation, KPIs, or client lists.
Audit trail
Every significant action logs to ActivityLog with user, IP, before/after diffs,
and entity type. Queryable per entity, per user, per action, per date range. Available to
users with the audit.view_activity perm.
Required, not optional
Three things that competitors leave to per-tenant toggles or off-platform workflows. Carelytics ships them on by default, in the platform, audit-logged.
Every Carelytics user enrolls TOTP and verifies on every fresh session. No per-tenant opt-out, no admin override. Three audit-logged recovery paths: email self-recovery, tenant admin reset, super admin reset.
The CMS HETS Trading Partner Agreement is signed inside Carelytics — Settings → Compliance → HETS Attestation. Captures signer name, title, IP, timestamp, exact agreement text + version. Immutable audit log. Required by the CMS 2026-05-11 deadline for Medicare FFS eligibility.
When a CSM views your tenant for support, a sticky red banner appears across every page and every action is logged with session id, reason, and duration. You can see the full impersonation history in your audit log. Standard B2B SaaS pattern (Stripe, Linear, Intercom) — but most home health vendors don't disclose how their support team accesses your data.
HIPAA hygiene
No usernames. allauth-backed. Branded password reset and email-change flows with confirmation links. Every login goes through the mandatory TOTP 2FA gate above.
Signed clinical documents are read-only everywhere. No backdoor edit URLs. No "open the locked form, change a field, hope no one notices."
Agency admins can review forms in preview mode without altering data. Submit and sign actions are CSS+JS-disabled. Single-source-of-truth lockdown — works for every form automatically.
Every email Carelytics sends — invites, password resets, HETS reminders, onboarding nudges — is logged with delivery status. Support can answer "did you receive the X email?" without guessing.
PHI URL prefix scrubber blanks request bodies on clinical surfaces. User dict stripped to id + role. Cookies and auth headers redacted everywhere. Browser session replay only on staging until BAA is signed.
When replay is enabled, maskAllText: true + blockAllMedia: true. No fetch/XHR bodies in the replay timeline. No chart screenshots in error sessions.
What we don't claim