Available · v1

Policy Evaluation

Send a policy in plain language and a request with its facts. Get back a decision, a suggested action, and the exact rules that drove it, quoted from your policy.

  • Evaluates only the policy you supply
  • Quotes rules word for word, so every result is traceable
  • Approvals, exceptions, and conflicts go to a person
  • Missing facts are reported, never assumed
Request body
{
  "policy": {
    "id": "refund-policy",
    "version": "1.0",
    "text": "Refund requests are permitted within 30 days of delivery. Requests after 30 days require manager approval."
  },
  "request": {
    "description": "Customer requests a refund",
    "facts": {
      "days_since_delivery": 45
    }
  }
}
Response · 200 OK
{
  "request_id": "req_9rTk4MvWq1BzLs6D",
  "decision": "requires_review",
  "suggested_action": "request_approval",
  "requirements": [
    {
      "rule": "Requests after 30 days require manager approval.",
      "status": "requires_review"
    }
  ],
  "missing_information": [],
  "policy": {
    "id": "refund-policy",
    "version": "1.0"
  }
}
The problem

Policies are written for people, not code

Refund rules, expense limits, warranty terms, and approval procedures live in plain language. Encoding each one as custom logic is slow and brittle, and the documents change.

Rule-by-rule evaluation
The policy is split into rules, and each is checked for whether it applies and whether the request meets it.
Conservative decisions
Compliant, non-compliant, requires review, or insufficient information. Conflicts, exceptions, and ambiguity never produce a definitive answer.
Traceable results
Requirements and missing information quote your policy exactly. Nothing is paraphrased or invented.
Use cases

Where teams use it

  • Refund eligibility
  • Expense reimbursement
  • Warranty pre-screening
  • Internal approval rules
  • Customer service procedures
Integrate

One HTTP call

const response = await fetch("https://kovca.io/api/v1/policy/evaluate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.KOVCA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "policy": {
      "id": "refund-policy",
      "version": "1.0",
      "text": "Refund requests are permitted within 30 days of delivery. Requests after 30 days require manager approval."
    },
    "request": {
      "description": "Customer requests a refund",
      "facts": {
        "days_since_delivery": 45
      }
    }
  }),
});

if (!response.ok) {
  const { error, request_id } = await response.json();
  throw new Error(`${error.code}: ${error.message} (${request_id})`);
}

const { decision, suggested_action, requirements, missing_information } = await response.json();
  • Data Quality Intelligence

    Find missing values, contradictions, and semantic inconsistencies in structured business records.

  • Scope Intelligence

    Check whether a requested change is within an agreed statement of work, excluded, or needs a change request.

  • Content Intelligence

    Evaluate user-generated content against your platform rules and get a structured moderation recommendation.