DecisioQ System Architecture Decision Concepts Decision List API Guide Client Kit Developer Center Decision Studio Quick Start Playground End-to-End Examples

AUTO-UCD-008 End-to-End Example

Determine Trade-In Value supports consistent, data-driven Used Car Dealership decisions using vehicle, market, customer, inventory, pricing, and reconditioning information.

Automotive Used Car Dealership Trade-In Appraisal TOPSIS
IdentityIssue bearer token
CatalogDiscover decision metadata
ProfileSelect weights and scenario
ExecuteRun deterministic ranking
ExplainReview result context

Overview

AUTO-UCD-008, Determine Trade-In Value, compares candidate trade-in appraisal options using vehicle fit, market demand, gross margin potential, reconditioning cost, compliance risk, and customer value.

Decision ID
AUTO-UCD-008
Decision Name
Determine Trade-In Value
Decision Preparation Model
used-car-dealership-determine-trade-in-value-auto-ucd-008 version 1.0.0
Default Profile
balanced
Runnable Scenario
standard_retail
Catalog
DKR-AUTO-RUNTIME-001, version 13.9.3
API Compatibility
7.4.0 or later Prepared Criteria Mode execution flow
The deterministic Decision Service ranks the options. The explanation object is explanatory only and must not choose, rerank, or override the deterministic result.

5-Minute Quick Path

Goal

determine trade-in value using decision fit, market demand, margin potential, reconditioning cost, compliance risk, and customer value.

Recommended mode

Business Data Mode when you have ordinary operational records.

You provide

Candidate records matching the published input schema and Decision Preparation Model.

DecisioQ returns

A ranked recommendation with the winning option and score evidence.

First working request →

Understanding This Decision

Determine Trade-In Value helps a used-car dealership compare ways to handle a trade-in appraisal before committing to a valuation path. The decision is useful when an appraisal team needs a repeatable recommendation that balances retail fit, market demand, expected margin, reconditioning burden, compliance exposure, and customer value.

Business question

Which trade-in appraisal option should be recommended in the selected Used Car Dealership context?

Expected outcome

A recommended option or ranked set of options with the criteria that most influenced the result.

Typical users

Used-car managers, appraisal teams, inventory planners, sales managers, and integration teams building trade-in workflows.

Decision boundary

Use this decision to rank submitted candidate options. It does not discover missing options and does not replace dealership approvals, compliance checks, or professional appraisal judgment.

Assumptions: submitted options represent real options, values use the units and scales requested by the catalog, and the selected profile and scenario reflect the intended dealership priorities.

Criteria

Criterion IDs are intentionally stable machine identifiers. Display labels are for users; request values should be keyed by canonical criterionId.

Criterion IDNameDirectionWeightValidation
determine_trade_in_value_vehicle_fit_scoreDetermine Trade In Value Fit Scoremaximize20score_0_to_100
determine_trade_in_value_market_demand_scoreMarket Demand Scoremaximize17score_0_to_100
determine_trade_in_value_gross_margin_potentialGross Margin Potentialmaximize17non_negative_currency
determine_trade_in_value_reconditioning_or_process_costReconditioning / Process Costminimize16non_negative_currency
determine_trade_in_value_compliance_risk_scoreCompliance Risk Scoreminimize15score_0_to_100
determine_trade_in_value_customer_value_scoreCustomer Value Scoremaximize15score_0_to_100

Data Preparation Guide

Loading criterion-specific integration guidance...

Constraint Processing

This decision currently has no catalog-defined hard constraints. All validated candidates proceed to criteria-based ranking.

Verified Catalog ConstraintStatusEffect
None returned by Decision Catalog for AUTO-UCD-008No hard constraints definedCandidate eligibility is determined by request validation; all validated candidates are ranked by criteria.
Eligible and Excluded Candidates
{
  "constraintSummary": {
    "definedConstraintCount": 0,
    "activeConstraintCount": 0,
    "eligibleOptionCount": 3,
    "excludedOptionCount": 0,
    "eligibleOptions": [
      "OPTION-001",
      "OPTION-002",
      "OPTION-003"
    ],
    "excludedOptions": []
  }
}
Constraint Handling Pattern
const constraints = decisionDetail.constraints || [];
if (constraints.length === 0) {
  // No catalog-defined hard constraints.
  // Submit all validated candidates for criteria-based ranking.
}

const summary = response.constraintSummary;
const excluded = response.decisionResult?.excludedOptions || [];

Excluded candidates do not participate in ranking because hard constraints are evaluated before scoring. For AUTO-UCD-008, no candidates are excluded by catalog-defined constraints because Decision Catalog currently defines none for this decision.

Decision Preparation Model

The published Decision Preparation Model validates and transforms illustrative Business Data into the canonical criteria required by AUTO-UCD-008 before Decision Service applies ranking.

Profile ID
used-car-dealership-determine-trade-in-value-auto-ucd-008
Version
1.0.0
Options Path
$.salesOpportunities
Option ID Path
$.optionId
Display Name Path
$.name
Client Business Data PathTransformationCanonical Criterion IDUnitValidation
option.assessment.determineTradeInValueFitScoredirect valuedetermine_trade_in_value_vehicle_fit_scoreScoreInput Contract
option.assessment.marketDemandScoredirect valuedetermine_trade_in_value_market_demand_scoreScoreInput Contract
option.financial.grossMarginPotentialdirect valuedetermine_trade_in_value_gross_margin_potentialCurrencyInput Contract
option.financial.reconditioningProcessCostdirect valuedetermine_trade_in_value_reconditioning_or_process_costCurrencyInput Contract
option.risk.complianceRiskScoredirect valuedetermine_trade_in_value_compliance_risk_scoreScoreInput Contract
option.assessment.customerValueScoredirect valuedetermine_trade_in_value_customer_value_scoreScoreInput Contract
Illustrative Business Data
{
  "requestContext": {
    "sourceSystem": "automotive-profile-factory",
    "correlationId": "factory-auto-ucd-008"
  },
  "salesOpportunities": [
    {
      "optionId": "SALES-008-01",
      "name": "Determine Trade-In Value Option 1",
      "assessment": {
        "determineTradeInValueFitScore": 4811.0,
        "marketDemandScore": 76.0,
        "customerValueScore": 2026.0
      },
      "financial": {
        "grossMarginPotential": 16374.0,
        "reconditioningProcessCost": 37407.0
      },
      "risk": {
        "complianceRiskScore": 88.0
      }
    },
    {
      "optionId": "SALES-008-02",
      "name": "Determine Trade-In Value Option 2",
      "assessment": {
        "determineTradeInValueFitScore": 12274.0,
        "marketDemandScore": 84.0,
        "customerValueScore": 7148.0
      },
      "financial": {
        "grossMarginPotential": 24695.0,
        "reconditioningProcessCost": 53110.0
      },
      "risk": {
        "complianceRiskScore": 79.0
      }
    }
  ]
}
Prepared Option Values
{
  "optionId": "SALES-008-01",
  "name": "Determine Trade-In Value Option 1",
  "values": {
    "determine_trade_in_value_vehicle_fit_score": 4811.0,
    "determine_trade_in_value_market_demand_score": 76.0,
    "determine_trade_in_value_gross_margin_potential": 16374.0,
    "determine_trade_in_value_reconditioning_or_process_cost": 37407.0,
    "determine_trade_in_value_compliance_risk_score": 88.0,
    "determine_trade_in_value_customer_value_score": 2026.0
  }
}
This example illustrates the published request structure. Adapt it to your organization and validate it against the Input Contract.

Profiles and Scenarios

This example selects a Profile for evaluation emphasis and a Scenario for operating context. Discover both from the selected Decision Catalog definition.

Profile IDNamePurpose
balancedBalancedBalances vehicle fit, market demand, profitability, cost, compliance risk, and customer value.
profit_focusedProfit FocusedPlaces extra emphasis on gross margin potential and cost control.
risk_controlRisk ControlPlaces extra emphasis on title, compliance, condition, and operational risk control.
customer_valueCustomer ValuePlaces extra emphasis on customer fit, customer value, and market demand.
Scenario IDNameUse When
standard_retailStandard Retail CaseNormal used-car dealership operating conditions for Determine Trade-In Value.
margin_pressureMargin PressureCompetitive pricing, auction costs, reconditioning spend, or aged inventory creates pressure to protect gross margin.
high_compliance_riskHigh Compliance RiskTitle, disclosure, financing, warranty, certification, or customer-risk factors require stronger compliance controls.
fast_turn_inventoryFast-Turn InventoryFaster inventory movement, shorter cycle time, or quicker customer conversion is prioritized.
Use standard_retail in runnable examples because it is present in the active Decision Catalog scenario list for AUTO-UCD-008.

Business Data Mode

Start here when your application has operational data. DecisioQ applies the published Decision Preparation Model to produce the required criteria.

Business DataDomain records
Preparation ModelValidate and transform
Prepared CriteriaDecision-ready values
DecisionRank candidates
Illustrative certified Business Data request
{
  "decisionId": "AUTO-UCD-008",
  "businessData": {
    "requestContext": {
      "sourceSystem": "automotive-profile-factory",
      "correlationId": "factory-auto-ucd-008"
    },
    "salesOpportunities": [
      {
        "optionId": "SALES-008-01",
        "name": "Determine Trade-In Value Option 1",
        "assessment": {
          "determineTradeInValueFitScore": 4811.0,
          "marketDemandScore": 76.0,
          "customerValueScore": 2026.0
        },
        "financial": {
          "grossMarginPotential": 16374.0,
          "reconditioningProcessCost": 37407.0
        },
        "risk": {
          "complianceRiskScore": 88.0
        }
      },
      {
        "optionId": "SALES-008-02",
        "name": "Determine Trade-In Value Option 2",
        "assessment": {
          "determineTradeInValueFitScore": 12274.0,
          "marketDemandScore": 84.0,
          "customerValueScore": 7148.0
        },
        "financial": {
          "grossMarginPotential": 24695.0,
          "reconditioningProcessCost": 53110.0
        },
        "risk": {
          "complianceRiskScore": 79.0
        }
      }
    ]
  }
}

Download Business Data request

Prepared Criteria Mode

Use this mode when your application already calculates decision-ready values keyed by authoritative criterion IDs. Prepared Criteria go directly to the decision.

Download Prepared Criteria request

For Prepared Criteria Mode, send decisionId, selected profile/scenario IDs, and option values keyed by canonical criterion ID.

Prepared Criteria Mode JSON
{
  "decisionId": "AUTO-UCD-008",
  "profileId": "balanced",
  "scenarioId": "standard_retail",
  "algorithm": "TOPSIS",
  "weightStrategy": "Expert",
  "runSensitivity": false,
  "requestContext": {
    "correlationId": "auto-ucd-008-demo-001"
  },
  "options": [
    {
      "optionId": "OPTION-001",
      "name": "Retail Trade Option",
      "values": {
        "determine_trade_in_value_vehicle_fit_score": 86,
        "determine_trade_in_value_market_demand_score": 92,
        "determine_trade_in_value_gross_margin_potential": 3200,
        "determine_trade_in_value_reconditioning_or_process_cost": 900,
        "determine_trade_in_value_compliance_risk_score": 22,
        "determine_trade_in_value_customer_value_score": 84
      }
    },
    {
      "optionId": "OPTION-002",
      "name": "Wholesale Backup Option",
      "values": {
        "determine_trade_in_value_vehicle_fit_score": 78,
        "determine_trade_in_value_market_demand_score": 73,
        "determine_trade_in_value_gross_margin_potential": 4100,
        "determine_trade_in_value_reconditioning_or_process_cost": 1600,
        "determine_trade_in_value_compliance_risk_score": 35,
        "determine_trade_in_value_customer_value_score": 76
      }
    },
    {
      "optionId": "OPTION-003",
      "name": "Certified Retail Option",
      "values": {
        "determine_trade_in_value_vehicle_fit_score": 91,
        "determine_trade_in_value_market_demand_score": 85,
        "determine_trade_in_value_gross_margin_potential": 2300,
        "determine_trade_in_value_reconditioning_or_process_cost": 650,
        "determine_trade_in_value_compliance_risk_score": 18,
        "determine_trade_in_value_customer_value_score": 88
      }
    }
  ]
}

Execute

cURL
curl -X POST "https://dde.vinquery.com/api/v1/decide" \
  -H "Authorization: Bearer ${DECISIOQ_TOKEN}" \
  -H "Content-Type: application/json" \
  -H "X-Correlation-Id: auto-ucd-008-demo-001" \
  --data @auto-ucd-008-execute.json

The Decision Service validates the request, retrieves authoritative criteria, constraints, profiles, scenarios, and validation metadata from Decision Catalog, applies hard constraints, ranks eligible options, and returns the decision result plus execution metadata.

Understanding the Result

Verified Local Result

Recommended option: SALES-008-02

Scores are relative TOPSIS closeness coefficients within this candidate set, not probabilities.

RankOptionIDScore
1Determine Trade-In Value Option 2SALES-008-020.702541
2Determine Trade-In Value Option 1SALES-008-010.297459

The ranking was calculated in-process with DecisioQ.DecisionEngine.Services.TopsisEngine from the published canonical request. It is not a hosted API capture. Download evidence.

The successful response includes both the deterministic decisionResult and a top-level explanation object. The explanation adds context but does not select, rerank, recalculate, or override the ranking.

Illustrative contract shape — not runtime output
{
  "service": "decisioq",
  "version": "7.6.3",
  "requestId": "0HNE...",
  "operation": "Decide",
  "success": true,
  "decisionType": "AUTO-UCD-008",
  "decisionVersion": "13.9.3",
  "timestampUtc": "2026-07-18T00:00:00Z",
  "decisionResult": {
    "winner": "OPTION-001",
    "confidence": 72.4,
    "ranking": [
      {
        "optionId": "OPTION-001",
        "score": 0.8421,
        "breakdown": {
          "determine_trade_in_value_vehicle_fit_score": 0.20,
          "determine_trade_in_value_market_demand_score": 0.17,
          "determine_trade_in_value_gross_margin_potential": 0.17,
          "determine_trade_in_value_reconditioning_or_process_cost": 0.16,
          "determine_trade_in_value_compliance_risk_score": 0.15,
          "determine_trade_in_value_customer_value_score": 0.15
        },
        "normalizationBreakdown": {}
      }
    ],
    "excludedOptions": []
  },
  "explanation": {
      "summary": "The selected trade-in option provided the strongest overall trade-in valuation fit.",
      "whyRecommended": "It combined strong vehicle fit and market demand with acceptable reconditioning cost, compliance risk, and customer value.",
      "keyDrivers": [],
      "tradeoffs": [],
      "competitors": [],
      "sensitivitySummary": "Sensitivity analysis was not included in this response.",
      "scenarioSummary": "The standard retail scenario was selected.",
      "risks": [],
      "nextSteps": [],
      "assumptions": []
  },
  "constraintSummary": {
    "definedConstraintCount": 0,
    "activeConstraintCount": 0,
    "eligibleOptionCount": 3,
    "excludedOptionCount": 0,
    "eligibleOptions": [
    "OPTION-001",
    "OPTION-002",
    "OPTION-003"
    ],
    "excludedOptions": []
  },
  "warnings": [],
  "requestContext": {
    "correlationId": "auto-ucd-008-demo-001"
  }
}
WinnerThe selected option ID in decisionResult.winner.
RankingAll eligible options ordered by score.
BreakdownCriterion-level evidence for the ranking.

Sensitivity Analysis

runSensitivity is an optional execution flag supported by both Business Data Mode and Prepared Criteria Mode. Set it to true when the client wants recommendation-stability information in the same response. The sensitivity engine analyzes the prepared criteria produced by either input path, perturbs criterion weights by controlled factors, and reports whether the winner remains stable.

Sensitivity Result Shape
{
  "sensitivityResult": {
    "stableWinner": true,
    "winner": "OPTION-001",
    "mostSensitiveCriterion": "determine_trade_in_value_market_demand_score",
    "confidence": 95,
    "criterionImpacts": {
      "determine_trade_in_value_market_demand_score": 0.1842
    },
    "winnerChangeCounts": {
      "determine_trade_in_value_market_demand_score": 0
    }
  }
}

Use sensitivity output to decide whether a recommendation is robust enough for automation or should be reviewed by a person.

Scenario Analysis

Use a published scenario only when it matches the operating context: standard_retail, margin_pressure, high_compliance_risk, fast_turn_inventory. Compare the winner, ranking gap, and key trade-offs with the baseline run.

Explanation of Decision Result

Every successful response includes a provider-neutral top-level explanation object. It explains the already-finalized deterministic result and does not change the ranking.

Explanation Shape
{
  "explanation": {
      "summary": "The selected trade-in option provided the strongest overall trade-in valuation fit.",
      "whyRecommended": "It combined strong vehicle fit and market demand with acceptable reconditioning cost, compliance risk, and customer value.",
      "keyDrivers": [],
      "tradeoffs": [],
      "competitors": [],
      "sensitivitySummary": "Sensitivity analysis was not included in this response.",
      "scenarioSummary": "The standard retail scenario was selected.",
      "risks": [],
      "nextSteps": [],
      "assumptions": []
  }
}
Explanation output is supporting context. Business-facing pages should render the explanation, warnings, assumptions, and limitations without provider branding.

Tracing and Logs

Use request identifiers to connect client, catalog, and execution activity during support or integration testing.

X-Request-Id
Optional client-supplied request ID. If omitted, the server generates one.
X-Correlation-Id
Optional client correlation value propagated from Decision Service to Decision Catalog.
requestContext.correlationId
Optional payload value echoed in the response and used for tracing.
configurationUsed
The authoritative effective weight strategy, ranking algorithm, profile, scenario, sensitivity setting, and source for each value.
diagnostics
Safe execution counts returned only when responseOptions.includeDiagnostics is true.

Integration Examples

These examples demonstrate the current DecisioQ flow:

  1. Request jwtToken from https://identity.vinquery.com/connect/token.
  2. Load AUTO-UCD-008 metadata from https://dks.vinquery.com/decisioncatalog/decisions/AUTO-UCD-008.
  3. Execute a Prepared Criteria Mode at https://dde.vinquery.com/api/v1/decide.

Set these environment variables before running any companion example:

Environment variables
DECISIOQ_CLIENT_ID
DECISIOQ_CLIENT_SECRET

Optional:
DECISIOQ_IDENTITY_URL=https://identity.vinquery.com/connect/token
DECISIOQ_DKS_URL=https://dks.vinquery.com
DECISIOQ_DDE_URL=https://dde.vinquery.com

Download the source files directly:

Troubleshooting

SymptomLikely CauseWhat to Check
401 UnauthorizedMissing, expired, or invalid bearer token.Request a fresh jwtToken from Identity and send it as Authorization: Bearer ....
Decision not foundThe decision ID is not in the active catalog.Load /decisioncatalog/decisions/AUTO-UCD-008 and confirm the ID is published.
Validation failedA required criterion value is missing or outside its rule.Use canonical criterion IDs and keep score values in the expected range.
HTML error responseAn upstream hosted service failed before returning JSON.Check service health and server logs for Identity, Decision Catalog, or Decision Service.

Production Checklist

Security

Keep API Consumer credentials and jwtTokens on the server side. Use HTTPS, short-lived bearer tokens, and an API Consumer linked to a DecisioQ account for usage accounting.

Catalog

Load decision metadata from Decision Catalog and cache cautiously. Refresh when catalog versions change.

Request Quality

Use canonical criterion IDs, validate value ranges, and send at least two candidate options.

Operations

Send correlation IDs, record request IDs, and monitor non-JSON upstream failures.

Explanation

Display explanation text as supporting context only. Never let generated explanation text override deterministic results.

User Experience

Show business labels to users and keep raw execution trace collapsed for advanced diagnostics.

Next Steps

Review Decision Concepts for criteria, weights, profiles, scenarios, confidence, and sensitivity; use the API Guide for transport details; and return to the examples library to compare related workflows.