Every rule below is read out of the code that does the grading. Change a rule without republishing this page and our own tests fail.
The point of the product is that a claim is only as good as how it was established. So the method has to be inspectable too — otherwise "we grade honestly" is one more thing you would have to take our word for.
Someone typed it. No artifact, nothing to check — the answer a questionnaire produces.
A policy, a certificate, or a flag your application sent. Real evidence that Avowa did not witness itself: a PDF says so, or your code says so.
Avowa read it from the system that would know — your cloud account, your identity provider, the inference call itself. Nobody had to tell us.
A licensed practitioner examined the evidence and signed an opinion. Only an unmodified or qualified opinion raises a claim to L4; an adverse opinion or a disclaimer is sealed and published, and raises nothing.
A claim counts as proven at verifieddocumentedl4_attested — and nowhere else.
Avowa currently grades 118 claims across 20 connectors.
The SDK sits in your inference path. Some facts it works out for itself; the rest your application tells it. Those are not the same thing and are never graded the same, so here is the actual split.
Read off the call. Nobody had to declare them.
agent_run_keyautonomy_depthendpointerrorfallback_modelinjection_suspectedlatency_msmcp_methodmcp_servermodelpii_detectedretriestool_calledtools_invokedtools_offeredSigned and timestamped in transit, which proves the message was not tampered with. It proves nothing about whether the claim is true, so it sits above a questionnaire answer and below an observation.
action_authorizedaction_blockedaction_classaction_loggedagent_runai_disclosedapproval_requiredapproved_by_humanblocked_categorydecision_loggedeval_scorefairness_checkedgroundedguardrailguardrail_blockedhuman_reviewedinjection_blockedmodel_pinnedoutput_validatedpii_redactedrate_limitedrationale_presentrefusedsystem_prompt_protectedtool_authorizedtrain_on_datauncertainty_flaggedCoverage needs a denominator. We hold the complete control list for 3 of 13 frameworks:
For the other 10 —
SIGCAIQISO 27001NIST AI RMFEU AI ActOWASP LLMMITRE ATLASGDPRDPDPACCPA / CPRA — we report the claims we map and
assert no coverage percentage at all, because we cannot establish what we would be
a percentage of.
50 calls before "we saw none" is reported as evidence of absence. Below it the observation stands, but it cannot satisfy a control.
10 agent runs before any pattern in agent behaviour is called a pattern. One run is an anecdote, and a card that looks equally confident over 1 run and 400 is the failure this floor exists to prevent.
Human-approval rates are measured over consequential actions only —
writeexternalfinancial — never over read-only calls, which would inflate the number and
prove nothing.
`send_email` might post a newsletter or wire a payment instruction. The SDK sees a string. Consequence is the vendor's own classification, recorded as theirs — and an unclassified tool stays unknown, never 'harmless'.
Agent runs are correlated by a key the SDK derives. Calls without one are counted and dropped rather than bundled — inventing a sequence the agent never took would be the worst output this system could produce.
Coverage needs a denominator. Where Avowa holds the catalogue it reports controls evidenced out of the standard's own total; everywhere else it reports what it mapped and asserts no percentage at all.
An unclassified tool, an unanswered scope question, a control nothing reaches — each is reported as unknown. Defaulting to the harmless reading would let saying nothing buy a clean result.
Avowa does not write your policies, and does not sit in your allow/deny path. An independent grader cannot also be the graded thing.
db.CLAIMS, db.PROVEN_STATUSES,
connectors.RUNTIME_OBSERVED, connectors.RUNTIME_ASSERTED,
connectors.MIN_ABSENCE_SAMPLE, connectors.MIN_SCOPING_RUNS,
db.ASSURING_OPINIONS. · avowa.ai