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

AUTO-REPR-006 End-to-End Example

Assign Service Bay

Try the interactive showcase

Auto RepairBusiness Data + Prepared CriteriaAHP priorities

Decision Overview

Compare service bays using equipment fit, availability, vehicle-size fit, workflow efficiency, safety risk, and setup time.

Compare bays for the same repair order. Verify lift capacity, clearances, equipment certification, and safe working conditions before including a bay; a weighted score cannot waive those requirements. Five inputs use 0–100 scores; setup time is measured in minutes. Higher availability scores mean better availability, not longer waiting time. The result does not reserve a bay or authorize work.

Catalog decision: AUTO-REPR-006. Sector: Auto Repair. Samples are fictional, not operational advice or production observations.

5-Minute Quick Path

  1. Review the three candidates in the interactive showcase.
  2. Start with the first working Business Data request, or send Prepared Criteria when values are already calculated.
  3. Inspect the ranking and rerun with changed inputs or AHP priorities.

Criteria and Scales

Use raw values in the published units. The engine normalizes them. AHP changes importance, not the direction or scale of an input.

IDMeaningUnitValidationDirectionBalanced weight
equipment_fit_scoreEquipment Fit ScoreScorescore_0_to_100maximize30.0%
bay_availability_scoreBay Availability ScoreScorescore_0_to_100maximize25.0%
vehicle_size_fit_scoreVehicle Size Fit ScoreScorescore_0_to_100maximize15.0%
workflow_efficiency_scoreWorkflow Efficiency ScoreScorescore_0_to_100maximize15.0%
safety_constraint_riskSafety Constraint RiskScorescore_0_to_100minimize10.0%
setup_time_minutesSetup Time MinutesMinutesnon_negative_integerminimize5.0%

Data Preparation Guide

Business records → input schema → mapping profile → canonical criteria → ranking.

Use mapping profile auto-repair-assign-service-bay-auto-repr-006 version 1.0.0. These records contain business assessments as well as measurements; this profile renames and reshapes them, but does not infer scores from free text. Govern rating and scoring rubrics before production use.

The showcase collects Prepared Criteria directly. Its sample values match both downloadable request modes below.

Mapping profile · Input schema

Business sourceCanonical criterionTransformation
option.assessment.equipmentFitScoreequipment_fit_scoreDirect value; no unit conversion
option.assessment.bayAvailabilityScorebay_availability_scoreDirect value; no unit conversion
option.assessment.vehicleSizeFitScorevehicle_size_fit_scoreDirect value; no unit conversion
option.assessment.workflowEfficiencyScoreworkflow_efficiency_scoreDirect value; no unit conversion
option.risk.safetyConstraintRisksafety_constraint_riskDirect value; no unit conversion
option.schedule.setupTimeMinutessetup_time_minutesDirect value; no unit conversion

Business Data Mode

Complete illustrative request with three candidates and an explicit decisionVersion. Send it to the decision execute endpoint; do not add an options array to this envelope.

Response identifiers: the current published profile uses root-relative identity paths, so translation returns generated IDs option-1, option-2, and option-3 in input order, with fallback option names. Map these back to the source records by that order. Prepared Criteria retains the explicit source IDs and names. Preserving source identity in Business Data requires a reviewed profile update; this example does not modify the deployed profile.
{
  "decisionId": "AUTO-REPR-006",
  "decisionVersion": "1.0.0",
  "businessData": {
    "requestContext": {
      "sourceSystem": "automotive-profile-factory",
      "correlationId": "factory-auto-repr-006"
    },
    "repairOrders": [
      {
        "optionId": "BAY-A",
        "name": "General service bay",
        "assessment": {
          "equipmentFitScore": 86,
          "bayAvailabilityScore": 96,
          "vehicleSizeFitScore": 92,
          "workflowEfficiencyScore": 88
        },
        "risk": {
          "safetyConstraintRisk": 12
        },
        "schedule": {
          "setupTimeMinutes": 15
        }
      },
      {
        "optionId": "BAY-B",
        "name": "Diagnostic equipment bay",
        "assessment": {
          "equipmentFitScore": 98,
          "bayAvailabilityScore": 72,
          "vehicleSizeFitScore": 94,
          "workflowEfficiencyScore": 92
        },
        "risk": {
          "safetyConstraintRisk": 8
        },
        "schedule": {
          "setupTimeMinutes": 25
        }
      },
      {
        "optionId": "BAY-C",
        "name": "Large-vehicle bay",
        "assessment": {
          "equipmentFitScore": 90,
          "bayAvailabilityScore": 84,
          "vehicleSizeFitScore": 100,
          "workflowEfficiencyScore": 78
        },
        "risk": {
          "safetyConstraintRisk": 10
        },
        "schedule": {
          "setupTimeMinutes": 35
        }
      }
    ]
  }
}

Download Business Data request

Prepared Criteria Mode

The same candidates after direct mapping. This request uses the balanced profile with no named scenario. Do not add businessData to this envelope.

{
  "decisionId": "AUTO-REPR-006",
  "decisionName": "Assign Service Bay",
  "profileId": "balanced",
  "scenarioId": null,
  "options": [
    {
      "optionId": "BAY-A",
      "name": "General service bay",
      "values": {
        "equipment_fit_score": 86,
        "bay_availability_score": 96,
        "vehicle_size_fit_score": 92,
        "workflow_efficiency_score": 88,
        "safety_constraint_risk": 12,
        "setup_time_minutes": 15
      }
    },
    {
      "optionId": "BAY-B",
      "name": "Diagnostic equipment bay",
      "values": {
        "equipment_fit_score": 98,
        "bay_availability_score": 72,
        "vehicle_size_fit_score": 94,
        "workflow_efficiency_score": 92,
        "safety_constraint_risk": 8,
        "setup_time_minutes": 25
      }
    },
    {
      "optionId": "BAY-C",
      "name": "Large-vehicle bay",
      "values": {
        "equipment_fit_score": 90,
        "bay_availability_score": 84,
        "vehicle_size_fit_score": 100,
        "workflow_efficiency_score": 78,
        "safety_constraint_risk": 10,
        "setup_time_minutes": 35
      }
    }
  ]
}

Download Prepared Criteria request

Understanding the Result

Verified local computation, not a hosted API response. The repository TOPSIS engine ranked these exact samples in-process. TOPSIS scores are relative closeness coefficients, not probabilities or confidence percentages.

RankCandidateScore
1Diagnostic equipment bay0.561771
2General service bay0.439551
3Large-vehicle bay0.438328

Winner: BAY-B. Download computation and AHP verification.

Check candidate eligibility and input evidence before acting. Adding or removing candidates can change normalization and the ranking. The showcase displays the actual service response, which may differ when the deployed catalog or configuration differs.

AHP Weights and Sensitivity

Open the paired showcase, choose “Help me generate weights (AHP)”, complete every comparison, and generate consistent weights before running. Option scores describe performance; weights express importance. Read the explanation.

Change one judgment or one measured input at a time, regenerate weights if needed, and compare the winner and score gap. A single unchanged winner is not a formal stability guarantee.

Profiles and Scenarios

The baseline uses balanced and scenarioId: null. Retrieve the deployed decision definition before selecting another profile or named scenario; never assume that “standard” exists. AHP does not override eligibility or safety requirements.

Run the Request

Use either JSON download with your existing authenticated API client. Endpoint and authentication details are in the API Guide. This browser-origin example calls the portal proxy, whose service connection must be configured:

const request = await fetch('/examples/auto-repr-006/business-data-request.json').then(r => r.json());
const response = await fetch('/decisioq-decision-api-proxy.ashx?operation=execute', {
  method: 'POST', headers: {'Content-Type': 'application/json'},
  body: JSON.stringify(request)
});
const result = await response.json();
if (!response.ok) throw new Error(JSON.stringify(result));
console.log(result);

For validation errors, check canonical IDs, required values, units, and current catalog ranges. A transport error is not a decision rejection.

Try the showcase · All examples · Playground