---
title: Output formats
description: Review the output formats for the predictions DataRobot returns in a columnar table format.
---

# Output format {: #output-format }

DataRobot returns predictions in a columnar table format. Each example value is followed by the data type it belongs to. The columns returned are determined by model type, as described below.

!!! note
    DataRobot allows prediction output to many different databases that all have unique versions of a string (e.g., some may call it `TEXT` while others may call it `VARCHAR`).
    As a result, Datarobot cannot provide implementation-specific data types.


## Regression models {: #regression-models }

<table>
<th colspan="2" style="text-align:center;"> Prediction label</th>
<tr>
<td><b>Column name</b></td>
<td no-i18n="true">&lt;target_name&gt;_PREDICTION</td>
</tr>
<tr>
<td><b>Data type</b></td>
<td>Numeric</td>
</tr>
<tr>
<td><b>Example name</b></td>
<td no-i18n="true">revenue_PREDICTION</td>
</tr>
<tr>
<td><b>Example value</b></td>
<td no-i18n="true">493822.12</td>
</tr>
<tr>
<td><b>Description</b></td>
<td>The predicted value.</td>
</tr>
</table>


## Binary classification models {: #binary-classification-models }

<table>
<tr>
  <th colspan="2" style="text-align:center;">Positive label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">&lt;target_name&gt;_&lt;positive_label&gt;_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Numeric</td>
  </tr>
    <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">isbadbuy_1_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">0.28</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The float probability of the positive label.</td>
  </tr>
</table>


<table>
<tr>
  <th colspan="2" style="text-align:center;">Negative label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">&lt;target_name&gt;_&lt;negative_label&gt;_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Numeric</td>
  </tr>
    <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">isbadbuy_0_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">0.72</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The float probability of the negative label.</td>
  </tr>
</table>

<table>
  <th colspan="2" style="text-align:center;"> Prediction label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">&lt;target_name&gt;_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">isbadbuy_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">0</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The predicted label of the classification.</td>
  </tr>
</table>

<table>
  <th colspan="2" style="text-align:center;">Threshold label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">THRESHOLD</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Numeric</td>
  </tr>
  <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">THRESHOLD</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">0.5</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The float prediction threshold used for determining the label.</td>
  </tr>
</table>

<table>
<tr>
  <th colspan="2" style="text-align:center;">Positive class label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">POSITIVE_CLASS</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">POSITIVE_CLASS</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">1</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The label configured as the positive class.</td>
  </tr>
</table>

## Multiclass classification models {: #multiclass-classification-models }

<table>
  <th colspan="2" style="text-align:center;">Prediction label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">&lt;target_name&gt;_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td><b>Example name</b></td>
    <td no-i18n="true">species_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td>lion</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The predicted label of the classification.</td>
  </tr>
</table>

<table>
  <th colspan="2" style="text-align:center;">Prediction class label (for each class)</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">&lt;target_name&gt;_&lt;class_label&gt;_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Numeric</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>The float probability for each class.</td>
  </tr>
</table>

<table>
  <th colspan="2" style="text-align:center;">Example classifications</th>
<tr>
<th>Example name</th>
<th>Example value</th>
  </tr>
  <tr>
    <td no-i18n="true">species_cat_PREDICTION</td>
    <td no-i18n="true">0.28</td>
  </tr>
  <tr>
    <td no-i18n="true">species_lion_PREDICTION</td>
    <td no-i18n="true">0.24</td>
  </tr>
  <tr>
    <td no-i18n="true">species_lynx_PREDICTION</td>
    <td no-i18n="true">0.48</td>
  </tr>
</table>

## Time series models {: #time-series-models }

!!! note
    These output columns are available for time series regression, classification, and anomaly detection models.

Time series model columns | Description | Data type |
------------------------- | ----------- | --------- |
<SERIES_ID_COLUMN_NAME> | Contains the series ID the row belongs to.<br> <br>Functions as a passthrough column and returns the unaltered column name and values provided in the scoring data. | Text |
FORECAST_POINT | Contains the forecast point timestamp.<br><br>Unless you request [historical time series predictions](batch-pred-ts#time-series-batch-prediction-settings), the output value is the same for all rows with the same forecast point (but different for each unique forecast distance). | Date |
<TIME_COLUMN_NAME> | Contains the time series timestamp.<br><br>Functions as a passthrough column and returns the unaltered column name and values provided in the scoring data. (This returns the same value as the `originalFormatTimestamp` field returned by time series models.) | Date |
FORECAST_DISTANCE | Contains the numeric forecast distance returned by time series models. | Numeric |

## Prediction status {: #prediction-status }

<table>
  <th colspan="2" style="text-align:center;">Prediction status label</th>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">prediction_status</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>A row-by-row status containing either <code>OK</code> or a string error message describing why the prediction did not succeed.</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td>Could not convert date field to date format YYYY-MM-DD</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td>OK</td>
  </tr>
</table>

## Prediction warnings {: #prediction-warnings }

If prediction warnings are enabled for your job, DataRobot returns an additional column.

<table>
  <th colspan="2" style="text-align:center;">Prediction warnings label</th>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">IS_OUTLIER_PREDICTION</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>Whether the prediction is outside the calculated prediction boundaries.</td>
  </tr>
</table>

<table>
  <th colspan="2" style="text-align:center;">Example values</th>
  </tr>
 <tr>
    <th>Column</th>
    <th>Example value</th>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text</td>
  </tr>
  <tr>
    <td no-i18n="true">IS_OUTLIER_PREDICTION</td>
    <td>True</td>
  </tr>
  <tr>
    <td no-i18n="true">IS_OUTLIER_PREDICTION</td>
    <td>False</td>
  </tr>
</table>


## Deployment approval status {: #deployment-approval-status }

If the approval workflow is enabled for your deployment, the output schema will contain an extra column showing the deployment approval status.

<table>
  <th colspan="2" style="text-align:center;">Deployment status label</th>
  </tr>
  <tr>
    <td><b>Column name</b></td>
    <td no-i18n="true">DEPLOYMENT_APPROVAL_STATUS</td>
  </tr>
  <tr>
    <td><b>Data type</b></td>
    <td>Text/td>
  </tr>
  <tr>
    <td><b>Description</b></td>
    <td>Whether the deployment was approved.</td>
  </tr>
  <tr>
    <td><b>Example value</b></td>
    <td no-i18n="true">PENDING</td>
  </tr>
</table>

## Prediction Explanations {: #prediction-explanations }

You can request Prediction Explanations be returned with your predictions by setting the `maxExplanations` job parameter to a non-zero value. You can also set thresholds for computing explanations. If you do not configure a threshold, DataRobot computes explanations for every row.

<table>
  <th colspan="4" style="text-align:center;">Prediction Explanation parameters</th>
 <tr>
    <th>Job parameter</th>
    <th>Description</th>
    <th>Example value</th>
    <th>Data type</th>
  </tr>
  <tr>
    <td no-i18n="true">maxExplanations</td>
    <td>Optional. Compute up to this number of explanations.</td>
    <td no-i18n="true">10</td>
    <td>Integer</td>
  </tr>
  <tr>
    <td no-i18n="true">thresholdHigh</td>
    <td>Optional. Limit explanations to predictions above this threshold.</td>
    <td no-i18n="true">0.5</td>
    <td>Float</td>
  </tr>
  <tr>
    <td no-i18n="true">thresholdLow</td>
    <td>Optional. Limit explanations to predictions below this threshold.</td>
    <td no-i18n="true">0.15</td>
    <td>Float</td>
  </tr>
</table>

If Prediction Explanations are requested, DataRobot returns four extra columns for each explanation in the format `EXPLANATION_<n>_IDENTIFIER` (where `n` is the feature explanation index, from 1 to the maximum number of explanations requested). The returned columns are:

<table>
<thead>
  <th colspan="3" style="text-align:center;">Prediction Explanation columns</th>
  <tr>
    <th>Column</th>
    <th>Description</th>
    <th>Data type</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td no-i18n="true">EXPLANATION_<n>_FEATURE_NAME</td>
    <td>The feature name this explanation covers.</td>
    <td>Text</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_<n>_STRENGTH</td>
    <td>The feature strength as a float.</td>
    <td>Numeric</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_<n>_QUALITATIVE_STRENGTH</td>
    <td>The feature strength as a string, a plus or minus indicator from <code>+++</code> to <code>---</code>.</td>
    <td>Text</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_<n>_ACTUAL_VALUE</td>
    <td>The feature associated with this explanation.</td>
    <td>Text</td>
  </tr>
</tbody>
</table>

### Prediction Explanation examples {: #prediction-explanation-examples }

<table>
  <tr>
    <th style="width: 55%;">Name</th>
    <th>Value</th>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_FEATURE_NAME</td>
    <td no-i18n="true">loan_status</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_ACTUAL_VALUE</td>
    <td>Charged Off</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_STRENGTH</td>
    <td no-i18n="true">1.380291221709652</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_QUALITATIVE_STRENGTH</td>
    <td>+++</td>
  </tr>
</table><table>
  <tr>
    <th style="width: 55%;">Name</th>
    <th>Value</th>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_FEATURE_NAME</td>
    <td no-i18n="true">loan_status</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_ACTUAL_VALUE</td>
    <td>Fully Paid</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_STRENGTH</td>
    <td no-i18n="true">-1.2145340858375335</td>
  </tr>
  <tr>
    <td no-i18n="true">EXPLANATION_1_QUALITATIVE_STRENGTH</td>
    <td>---</td>
  </tr>
</table>

## Passthrough columns {: #passthrough-columns }

Passthrough columns you request are passed verbatim. If they conflict with any of the above names, the job is rejected.

## Association ID {: #association-id }

If your deployment was configured with an [association ID for accuracy](accuracy-settings), all result sets will have that column passed through from the source data automatically.

## Output filters {: #output-filters }

Use the following job configuration properties to control whether to display only specific class probabilities or none at all.

<table>
<th colspan="4" style="text-align:center;">Output filter parameters</th>
 <tr>
    <th>Job parameter</th>
    <th>Description</th>
    <th>Example value</th>
    <th>Data type</th>
  </tr>
  <tr>
    <td no-i18n="true">includeProbabilities</td>
    <td>Optional. Include probabilities for all classes; defaults to <code>true</code>.</td>
    <td>true</td>
    <td>Boolean</td>
  </tr>
  <tr>
    <td no-i18n="true">includeProbabilitiesClasses</td>
    <td>Optional. Include only probabilities for classes listed in the given array; defaults to an empty array <code>[]</code>.</td>
    <td>['setosa', 'versicolor']</td>
    <td>Boolean</td>
  </tr>
  <tr>
    <td no-i18n="true">includePredictionStatus</td>
    <td>Optional. Include the <code>prediction_status</code> column in the output; defaults to false.</td>
    <td>true</td>
    <td>Boolean</td>
  </tr>
</table>


!!! note
    For binary classification, `includeProbabilities` also controls the `THRESHOLD` and `POSITIVE_CLASS` columns.

## Column name remapping {: #column-name-remapping }

If your use case has a strict output schema that does not match the DataRobot output, you can rename and remove any columns from the output using the `columnNamesRemapping` job configuration property.

<table>
 <th colspan="3" style="text-align:center;">Output column name remapping parameters</th>
 <tr>
    <th>Job parameter</th>
    <th>Description</th>
    <th>Example value</th>
  </tr>
  <tr>
    <td no-i18n="true">columnNamesRemapping</td>
    <td>Optional. Provide a list of items to remap (rename or remove columns from) the output from this job. Set an outputName for the column to null or false to ignore it.</td>
    <td><code>[{'inputName': 'isbadbuy_1_PREDICTION', 'outputName':'prediction'}, {'inputName': 'isbadbuy_0_PREDICTION', 'outputName': null}]</code></td>
  </tr>
</table>
