Fields at a glance
| Field | Type | What it holds |
|---|---|---|
id | string (uuid4) | The durable handle. Store it. |
tenant_id | string | The tenant the record belongs to |
task_id | string or null | Your task id, or null when the request named none |
created_at | string (UTC timestamp) | When the record was made |
question | string | The question, as modelled |
recommended_option | OptionVerdict | The recommendation, with reasons |
alternatives | array of OptionVerdict | The other options, ranked, each with reasons |
assumptions | array of strings | Every guess the engine made: a horizon read from the question, a value filled in, a param it did not model |
confidence | object | How confidently the question was classified |
coverage | object | How much of the input grid you supplied, and the evidence behind it |
uncertainty | object | Calibration status and how decisive the margin is |
feasibility | object | Which options meet every hard constraint |
authorization | object | Always not_authorized: a record never permits an action |
evidence_refs | array of strings | The evidence sources the engine read |
applicability_limits | array of strings | What the decision does not cover, such as options that were not listed |
evaluation_status | string | unevaluated until an outcome is recorded against the decision. There is no route for recording outcomes yet. |
reversal_conditions | array of objects | The changes that would flip the recommendation |
modelled_constraints | object | The numbers the model actually used |
inputs_digest | string (SHA-256 hex) | Digest of the canonical inputs; the basis of idempotency |
engine_version | string | The scorer that produced it, today ge-decisions/1.1.0 |
Recommendation and alternatives
recommended_option and each entry of alternatives share one shape:
| Field | Meaning |
|---|---|
option_id, label | The option as you sent it |
score | A weighted score from 0 to 1 that ranks options under these inputs. Not a probability. |
feasible | False when the option breaks a hard constraint |
reasons | Plain sentences, for example “Costs ₹8.70 lakh over 24 months, within the ₹10 lakh budget (87% of it).” |
Feasible options always rank above infeasible ones. An infeasible option's score is halved. If nothing is feasible, the least-bad option is returned, feasibility.status is infeasible, and the record says the constraints should be reviewed.
Five assessments, never averaged
The record answers five different questions in five separate objects. Nothing combines them into one number, and none of them authorizes anything.
- confidenceWas the question understood?
Intent and domain classification confidence from GodEngine's parse stage.
sourceisunavailablewhen the parse did not run. - coverageHow much did you tell it?
How much of the option-by-dimension grid was given rather than defaulted, how many evidence items and numeric facts there are.
freshnessisnot_assessed: evidence carries no collection time yet. - uncertaintyHow settled is the ranking?
calibration_statusisuncalibratedandmethodisscenario_comparison.model_confidenceis an internal diagnostic, not a probability. - feasibilityDoes it meet the hard limits?
Whether the recommendation meets every hard constraint, which options do, and each infeasible option's violations.
- authorizationMay anyone act on it?
Always
not_authorizedwithexecutable: false. Acting needs a separate authorization bound to an execution plan.
What the numbers mean
coverage.dimension_coverage: the share of option-by-dimension cells you supplied;defaulted_cellscounts the ones filled with a neutral 0.5.uncertainty.decisiveness: how far the top feasible option leads the next one, from 0 to 1. With one feasible option it is 1, because the constraints decided; with none it is 0.score_marginis the raw gap, or null.uncertainty.model_confidence: a mix of decisiveness, the parse confidence, whether the recommendation is feasible and, when the review ran, whether it agreed. Use it for monitoring, not as odds.feasibility.infeasible_options: a map from option id to violations:over_budget,misses_deadline,above_max_risk,excluded.
Read thisThe honest measure of how settled a choice is lives in reversal conditions, not in any confidence figure.
Reversal conditions
Each condition is found by re-running the scorer with one input changed, so it is exact for this model. Every entry has kind, condition and then as sentences, plus the numbers behind them.
| kind | Found by | Extra fields |
|---|---|---|
budget_at_least | The nearest budget above the modelled one at which the recommendation changes | threshold, currency, switches_to |
budget_below | The nearest budget below it at which the recommendation changes | threshold, currency, switches_to |
horizon | Half and double the horizon, when recurring costs make the horizon matter | threshold, switches_to |
dimension | The smallest change in one dimension that lets the runner-up overtake | dimension, option_id, threshold |
[
{"kind": "budget_at_least", "threshold": 4500000, "currency": "INR", "switches_to": "buy",
"condition": "Budget rises to at least ₹45 lakh", "then": "'Buy outright' becomes the recommendation."},
{"kind": "budget_below", "threshold": 870000, "currency": "INR", "switches_to": "outsource",
"condition": "Budget falls below ₹8.70 lakh", "then": "'Outsource' becomes the recommendation."},
{"kind": "dimension", "dimension": "upside", "option_id": "outsource", "threshold": 0.458,
"condition": "'Outsource' upside is at least 0.46", "then": "'Outsource' overtakes 'Lease'."}
]
Modelled constraints
modelled_constraints shows the numbers behind the ranking, so a reviewer can check the arithmetic without re-running anything.
currency,horizon_monthsandhorizon_source(for examplequestion).budget: amount, currency, basis, where it came from (a constraint or an evidence source) and a display string such as₹10 lakh.options.<id>: upfront, monthly and total cost, budget use, whether it is within budget, violations, andignored_params.weights: the normalised weight of each active dimension, anddimension_forces: the engine force each dimension is tagged with.numeric_evidence: the numeric facts read from the evidence.model:engine_version, a summary of the parse,llm_review(disabled,appliedorfailed) and anynudgesthe review applied.
How a decision is made
Parse the question
The question goes through GodEngine's own parse stage on its fast path. Its horizon (“over the next 2 years” becomes 24 months) sets the cost horizon. Cost-sensitive domains raise the affordability weight; medical, legal, policy, cybersecurity and insurance domains raise the risk and compliance weights.
Normalise
Amounts, recurring costs, durations and levels become numbers. Every guess is written down as an assumption.
Score
A weighted sum over the active dimensions. Affordability is
1 − 0.6 × cost / budget; without a budget, the dearest option is the reference.Apply hard constraints
Over budget, past the deadline, above
max_riskor excluded makes an option infeasible: ranked below every feasible option, score halved.Find reversal conditions
Re-run the scorer at nearby budgets, at half and double the horizon, and with one dimension moved, to find where the answer flips.
Report five assessments
Confidence, coverage, uncertainty, feasibility and authorization, each in its own object.
Optional review
When a deployment switches it on, a language-model review may add reasons and assumptions (prefixed
Review:) and nudge a feasible option by at most ±0.05. It can never make an infeasible option win. If it fails, the record falls back to the numbers and saysfailed.
With the review off, the scorer is deterministic: the same inputs give the same body. Check modelled_constraints.model.llm_review to see which path a record took.
Scoring dimensions
Base weights apply to the dimensions the options actually give, and are then normalised. The parse stage and risk_tolerance tilt them; a weight you send in constraints.weights replaces that dimension's weight before normalising.
| Dimension | Engine force (key) | Base weight |
|---|---|---|
affordability | Cost (cost) | 0.25 |
upside | Feedback Momentum (feedback) | 0.30 |
risk | Coherence Decay (decay) | 0.20 |
speed | Feedback Momentum (feedback) | 0.10 |
reversibility | Exploration Drive (exploration) | 0.10 |
fit | Directed Intelligence (psi) | 0.15 |
compliance | Ethics Gradient (ethics) | 0.10 |
The force tags come from GodEngine's engine vocabulary and appear in the record as modelled_constraints.dimension_forces.
Full example
The documented response to the quick start request. Long lists are cut where you see …; the inputs are made up.
{
"id": "6f1c…",
"tenant_id": "org_a",
"task_id": "task-7f3a",
"created_at": "2026-10-04T09:12:44.120Z",
"question": "…",
"recommended_option": {"option_id": "lease", "label": "Lease", "score": 0.5756, "feasible": true,
"reasons": ["Costs ₹8.70 lakh over 24 months, within the ₹10 lakh budget (87% of it).", "…"]},
"alternatives": [
{"option_id": "outsource", "score": 0.5408, "feasible": true, "reasons": ["…"]},
{"option_id": "buy", "score": 0.3074, "feasible": false,
"reasons": ["Costs ₹45 lakh over 24 months, over the ₹10 lakh budget by ₹35 lakh.", "…"]}
],
"assumptions": ["Horizon of 24 months read from the question (\"2 year\").", "…"],
"confidence": {"intent": "decision", "intent_confidence": 0.8,
"domains": [{"name": "financial", "confidence": 0.71}], "source": "resolve_parse"},
"coverage": {"score": 0.758, "dimension_coverage": 0.917, "defaulted_cells": 1,
"evidence_items": 2, "numeric_evidence_items": 2, "freshness": "not_assessed",
"freshness_note": "Evidence carries no collection time, so its freshness is not assessed."},
"uncertainty": {"calibration_status": "uncalibrated", "method": "scenario_comparison",
"model_confidence": 0.746,
"model_confidence_is": "an internal diagnostic, not a calibrated probability",
"decisiveness": 0.43, "score_margin": 0.0348, "review_agrees": null,
"description": "Scores rank these options under the inputs given; they are not probabilities. …"},
"feasibility": {"status": "feasible", "recommended_option_feasible": true,
"feasible_option_ids": ["lease", "outsource"],
"infeasible_options": {"buy": ["over_budget"]}},
"authorization": {"status": "not_authorized", "executable": false,
"reason": "A decision record is advice. Acting on it needs a separate authorization bound to an execution plan; this service grants none."},
"evidence_refs": ["finance", "cfo"],
"applicability_limits": ["Holds only for the 3 options given; an option not listed was not considered.", "…"],
"evaluation_status": "unevaluated",
"reversal_conditions": ["… see above …"],
"modelled_constraints": {
"currency": "INR", "horizon_months": 24, "horizon_source": "question",
"budget": {"amount": 1000000, "currency": "INR", "basis": "total_over_horizon",
"source": "finance", "display": "₹10 lakh"},
"feasible_option_ids": ["lease", "outsource"],
"options": {"lease": {"upfront_cost": 150000, "monthly_cost": 30000, "total_cost": 870000,
"budget_utilisation": 0.87, "within_budget": true, "violations": []}},
"weights": {"affordability": 0.2688, "upside": 0.3226, "risk": 0.3011, "speed": 0.1075},
"dimension_forces": {"affordability": "cost", "upside": "feedback", "risk": "decay", "speed": "feedback"},
"numeric_evidence": ["…"],
"model": {"engine_version": "ge-decisions/1.1.0", "parse": {"intent": "…", "domains": ["…"]},
"llm_review": "disabled", "nudges": {}}
},
"inputs_digest": "…",
"engine_version": "ge-decisions/1.1.0"
}
The wording inside authorization.reason is the service's own. Here “advice” means a model's recommendation; it is not professional, financial or legal advice.