Skip to main content
Version: 0.1.0

Response Schema

The canonical output format.

The BaseCred Decision Engine returns a DecisionOutput object. This schema is strict and will not change without a major version bump.

JSON Structure

{
"decision": "ALLOW",
"confidence": "HIGH",
"explain": [
"String explanation of why the decision was made",
"Multiple reasons may be provided"
],
"constraints": [],
"retryAfter": null,
"ruleIds": ["rule_id_1", "rule_id_2"],
"version": "1.0.0"
}

Field Definitions

FieldTypeDescription
decisionEnumThe final recommendation. One of ALLOW, DENY, or ALLOW_WITH_LIMITS.
confidenceEnumQualitative certainty: LOW, MEDIUM, HIGH, or VERY_HIGH. Derived from signal coverage and consistency.
explainstring[]Human-readable reasons. Safe to display to end-users.
constraintsstring[]Limitations when decision is ALLOW_WITH_LIMITS. Empty array for ALLOW or DENY.
retryAfternumber | nullSeconds to wait before retrying, for rate-limited or temporary denials. null if not applicable.
ruleIdsstring[]IDs of rules that contributed to this decision. Useful for debugging and auditing.
versionstringEngine version used to produce this decision (SemVer).

Optional Fields

These fields are populated by the progression layer and are not part of the core decision output:

FieldTypeDescription
accessStatusEnum | undefinedRetail-facing access status: eligible, limited, not_ready, or blocked.
blockingFactorsstring[] | undefinedHigh-level, fixable guidance list. Does not expose raw scores.

Decision Values

ValueMeaning
ALLOWSubject meets all requirements for this context.
DENYSubject does not meet requirements. Check explain for reasons.
ALLOW_WITH_LIMITSSubject is allowed with restrictions. Check constraints for details.

Confidence Tiers

TierMeaning
LOWFew signals available. Decision is a best-effort estimate.
MEDIUMPartial signal coverage. Decision is reasonably reliable.
HIGHGood signal coverage. Decision is reliable.
VERY_HIGHFull or near-full signal coverage. Decision is highly reliable.