How Calethia Compares
Most comparisons in this category are about getting to SOC 2, and on that everyone is roughly the same. The useful question is what happens in year three, when you need something the tool was never designed to express.
The real three-way choice
In practice most mature programs end up running two of these at once: a platform for what it covers, and a spreadsheet for everything else.
| Question | Calethia | Config-based platform | In-house |
|---|---|---|---|
| Time to first SOC 2 report | Weeks | Weeks | Months |
| Write a control the vendor never anticipated | Python function in your repo | Yes, but you maintain everything | |
| Connect a homegrown or internal system | Connector SDK | File a feature request, then wait | Yes, but you maintain everything |
| Add a framework nobody has productized | Map onto the common control spine | Yes, by hand | |
| Cost of adding your Nth framework | Mapping work, coverage starts high | Re-tag everything, if supported at all | Full re-derivation |
| Handling a long list of control exceptions | One-line import per exception, versioned in Git | Per-control exception UI, doesn't scale | Tracked by hand, easy to lose |
| Can you read the logic behind a passing control? | |||
| Evidence signed and independently verifiable | RSA-SHA256, RFC 3161 timestamps | Vendor-attested | |
| Keep policy documents where your team already reads them | Link a Google Doc or Confluence page; drift checked against live control results | Authored and kept in their app | Yes, but nothing reconciles them |
| Continuous monitoring without you maintaining it | |||
| Self-hosted option | Yes, on GCP |
Calethia is an early-stage platform and some of the above is still being built. Where that's true we have said so in the cell rather than in a footnote.
Detailed Comparisons
Where each approach is strong, and where it runs out of room.
The Config-Based Platforms
The category leaders, and they're genuinely good at what they're built for. If your goal is a SOC 2 report on a deadline and you don't expect your requirements to get unusual, they will serve you well and you should not switch just to switch.
Where it runs out of room
- You get a fixed menu of checks, and anything not on the menu has nowhere to go
- You can't read the logic behind a control, so a check that never fails looks like a check that passes
- Anything they haven't built is a feature request, so your audit date depends on their roadmap
- Exceptions are managed one control at a time in their UI, so a long exception list becomes its own maintenance project
- Vanta ships a Claude Code plugin that opens remediation pull requests, so treat AI-assisted fixes as table stakes rather than a differentiator
What Calethia does instead
- Controls are Python you own, so there's no requirement you can't express
- Every check is readable, so you can tell detection from decoration
- A common control spine means your Nth framework is mapping work, not a rewrite
- If you're carrying an extensive list of custom exceptions, that's a one-line import, not a per-control UI workflow
- You can write what you need yourself, so our roadmap is never your blocker
Where Programs Actually End Up
Not a product anyone chooses, but the most common thing a mature compliance program is actually running. It shows up as the overflow: the controls the platform couldn't express, tracked by hand alongside it. The sophisticated version is a warehouse table, which is still a spreadsheet.
Where it runs out of room
- Infinitely flexible, and entirely unmonitored
- Every check is a person remembering to look
- No evidence trail an auditor can independently verify
- The maintenance burden lands on the person who built it, and leaves when they do
What Calethia does instead
- The same flexibility, but the checks run on a schedule
- Evidence is signed and timestamped, not a screenshot in a folder
- It lives in Git, so it survives the person who wrote it
- One system for the standard 80 percent and the bespoke 20 percent
The NIST Specification
OSCAL (Open Security Controls Assessment Language) is a government-backed data format for describing security controls, assessments, and compliance documentation. It's a specification, not a product, and it isn't really a competitor so much as a thing people ask about.
Where it runs out of room
- OSCAL defines how to describe controls in XML or JSON
- It requires tooling to be useful, since OSCAL itself doesn't run anything
- Designed for documentation and data exchange, not enforcement
- Calethia could export to OSCAL format in the future
What Calethia does instead
- Policies execute and produce evidence, they don't just describe
- Python with IDE support instead of verbose XML or JSON
- Automated evidence collection and cryptographic signing
- A running platform rather than a format you still have to build against
When you should not pick Calethia
We would rather say this here than three weeks into an evaluation.
You need the report and nothing else
If compliance is a gate to clear on the way to a deal and you have no intention of doing anything more with it, an incumbent will serve you well and the switching cost here is pure downside.
One tag, many frameworks
This is what keeps the Nth framework cheap. The policy is mapped to a control, and the control is already mapped to every framework that asks for it.
Example: MFA Enforcement Policy
Tagged once against the common control spine
from calethia import ResourceTypes, Result, Severity, policy
from calethia.ccf import CCF
from calethia.github import organization
@policy(
id="github.org.admin_mfa_required",
name="Organization Admins Have MFA Enabled",
severity=Severity.CRITICAL,
resource_types=[ResourceTypes.GitHub.ORGS_MEMBER],
frameworks=[CCF("access-mfa")],
)
def check_admin_mfa(ctx: organization.Context) -> Result:
"""Verify every org admin has 2FA enabled."""
for member in ctx.list_members():
if not member.is_admin:
continue
if member.two_factor_enabled:
ctx.pass_(member.to_resource(), "MFA enabled")
else:
ctx.fail(member.to_resource(), "No MFA")
return ctx.result()Test it with your hardest control
Take one requirement to whoever else you're evaluating, and then bring it to us. Whichever tool can express it wins, and that's a shorter evaluation than a feature matrix.