# Calculate a Model Object Step Executes a calculation of the step as a background task in the context of the Model Object. Returns two elements within the data array – the JST (Job Status Tracker) object (the calculation status of the newly created calculation) and the updated ModelObject object. Endpoint: POST /optimization.modelcalcexec/{typedId}/{stepName} Security: basic, X-PriceFx-jwt ## Path parameters: - `typedId` (string, required) The typedId of the Model Object you want to recalculate the step for. Example: "123.MO" - `stepName` (string, required) Enter the name of the step you want to calculate. Enum: "definition", "configuration", "results", "projections", "parallel" ## Query parameters: - `toStep` (string) Specify the step name to set the last step of the calculation (all steps before are executed, until toStep is reached). ## Response 200 fields (application/json): - `response` (object) - `response.node` (string) - `response.data` (array) - `response.data.step` (string) - `response.data.totalJobsCount` (integer) - `response.data.jobs` (array) - `response.data.jobs.version` (integer) - `response.data.jobs.typedId` (string) - `response.data.jobs.processingNode` (integer,null) - `response.data.jobs.threadId` (integer,null) - `response.data.jobs.threadUUID` (integer,null) - `response.data.jobs.status` (string) - `response.data.jobs.trackerType` (string) - `response.data.jobs.targetObject` (string) - `response.data.jobs.jobName` (string) - `response.data.jobs.concurrencyKey` (string) - `response.data.jobs.calculationContext` (string) - `response.data.jobs.progress` (integer,null) - `response.data.jobs.cancelRequested` (boolean) - `response.data.jobs.runNumber` (integer) - `response.data.jobs.priority` (integer) - `response.data.jobs.messages` (string,null) - `response.data.jobs.jobSettings` (object) - `response.data.jobs.jobSettings.distributedAction` (string,null) - `response.data.jobs.jobSettings.jobType` (string) - `response.data.jobs.jobSettings.uuid` (string) - `response.data.jobs.jobSettings.calculableObjectTypedId` (string) - `response.data.jobs.jobSettings.queueName` (string,null) - `response.data.jobs.jobSettings.partitionName` (string) - `response.data.jobs.jobSettings.partitionUUID` (string) - `response.data.jobs.jobSettings.enableDirtyTracking` (boolean) - `response.data.jobs.jobSettings.agentOption1` (boolean) - `response.data.jobs.jobSettings.jobSize` (integer) - `response.data.jobs.jobSettings.distributed` (boolean) - `response.data.jobs.createDate` (string) - `response.data.jobs.createdBy` (integer) - `response.data.jobs.lastUpdateDate` (string) - `response.data.jobs.lastUpdateBy` (integer) - `response.data.jobs.calculationResults` (integer,null) - `response.data.jobs.processingStart` (integer,null) - `response.data.jobs.processingEnd` (integer,null) - `response.data.jobs.id` (integer) - `response.data.uniqueName` (string) - `response.data.label` (string) - `response.data.modelClassUN` (string) - `response.data.currentStep` (string) - `response.data.state` (object) - `response.data.state.definition` (object) - `response.data.state.definition.scope` (object) - `response.data.state.definition.scope.Scope` (object) - `response.data.state.definition.scope.Scope.ProductGroups` (array) - `response.data.state.definition.scope.Scope.CustomerGroups` (array) - `response.data.state.definition.scope.Scope.ProductMinRevenue` (integer,null) - `response.data.state.definition.scope.Scope.CustomerMinRevenue` (integer,null) - `response.data.state.definition.scope.Scope.ProductMinMarginPercent` (integer,null) - `response.data.state.definition.scope.Scope.CustomerMinMarginPercent` (integer,null) - `response.data.state.definition.source` (object) - `response.data.state.definition.source.Source` (object) - `response.data.state.definition.source.Source.SegmentationModel` (string) - `response.data.state.configuration` (object) - `response.data.state.configuration.advanced` (object) - `response.data.state.configuration.advanced.Advanced` (object) - `response.data.state.configuration.advanced.Advanced.AutoStop` (boolean) - `response.data.state.configuration.advanced.Advanced.MaxSteps` (integer) - `response.data.state.configuration.advanced.Advanced.Profiling` (boolean) - `response.data.state.configuration.advanced.Advanced.MaxDurationMinutes` (integer) - `response.data.state.configuration.boundaries` (object) - `response.data.state.configuration.boundaries.Boundaries` (object) - `response.data.state.configuration.boundaries.Boundaries.OnInvoiceDiscountMaxPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.OnInvoiceDiscountMinPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.OffInvoiceDiscountMaxPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.OffInvoiceDiscountMinPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.SpecificAdjustmentMaxPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.SpecificAdjustmentMinPercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.InvoicePriceMaxDecreasePercent` (integer) - `response.data.state.configuration.boundaries.Boundaries.InvoicePriceMaxIncreasePercent` (integer) - `response.data.state.configuration.objectives` (object) - `response.data.state.configuration.objectives.Objectives` (object) - `response.data.state.configuration.objectives.Objectives.RevenueMarginMixCoeff` (integer) - `response.data.state.configuration.objectives.Objectives.ProductGroupVolumeTarget` (array) - `response.data.state.configuration.objectives.Objectives.CustomerGroupRevenueTarget` (array) - `response.data.createdByName` (string) - `response.data.lastUpdateByName` (string) - `response.data.submittedBy` (integer,null) - `response.data.submittedByName` (string,null) - `response.data.approvedBy` (integer,null) - `response.data.approvedByName` (string,null) - `response.data.deniedBy` (integer,null) - `response.data.deniedByName` (string,null) - `response.data.submitDate` (string,null) - `response.data.workflowStatus` (string) - `response.data.shotgunEnabled` (boolean)