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.
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