# Decision logs

The decision log records all decisions that finally led to the final assignment of the order to a facility. It is helpful for understanding why an order was routed to a certain facility. Crucial for this decision is how the [DOMS](https://docs.fulfillmenttools.com/documentation/by-pillar/advanced-order-routing) was configured, meaning which fences and ratings were activated. The decision log is connected to the [routing plan](https://docs.fulfillmenttools.com/documentation/by-pillar/advanced-order-routing/..#routing-plan).

The routing plan contains an array with references to the URL where the decision logs for this routing plan can be retrieved. Each decision log contains information on how a facility performed in the routing process.

* The array `facility` contains the decisions made for every facility.
* In the `statistics` object there are statistics for each fence and rating, e.g., how many facilities were passed or were rejected for a certain fence or which was the maximum or minimum score a facility received in the routing process.
* The `result` quickly summarizes which was the best rated facility and which was the best facility available.

**Example:**\
For facility A, all fences were passed and in the ratings it also was the best rated facility. The other facilities did not have enough stock. The details show that 1 item was expected, while the facilities had no items available.

<details>

<summary>Example of a decision log</summary>

```
{
    "facilityDecisions": [
        {
            "facility": {
                "name": "Facility A",
                "facilityRef": "e02dab98-95dc-4951-b54c-31ff4f7bb58f"
            },
            "availabilities": [
                {
                    "articleTitle": "Shoulder Bag",
                    "requestedQuantity": 1,
                    "stockInformation": {
                        "stock": 6,
                        "stockConsideringOfflineStock": 6,
                        "reserved": 0,
                        "available": 6
                    },
                    "tenantArticleId": "SHOULDER_BAG",
                    "bundleInformation": [
                        {
                            "customServiceNodeId": "UNBUNDLED",
                            "requestedQuantity": 1
                        }
                    ]
                }
            ],
            "orderFences": [
                {
                    "name": "Internal - BlacklistFence",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Preselected facilities",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Service type",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Ensure minimum picking",
                    "decision": "PASSED",
                    "details": []
                }
            ],
            "orderRatings": [
                {
                    "name": "Geodistance",
                    "maxPenalty": 20,
                    "score": 664133.7479457706,
                    "normalizedScore": 0,
                    "details": []
                },
                {
                    "name": "Stock availability",
                    "maxPenalty": 200,
                    "score": 1,
                    "normalizedScore": 0,
                    "details": []
                }
            ],
            "orderLineItemFences": [],
            "rank": 1,
            "totalPenalty": 0,
            "isBestRated": true,
            "isBestAvailable": true,
            "isBestReassignmentCandidate": null
        },
        {
            "facility": {
                "name": "Facility B",
                "facilityRef": "b3fc73b2-df0e-4705-8034-85b2697ea308"
            },
            "availabilities": [],
            "orderFences": [
                {
                    "name": "Internal - BlacklistFence",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Preselected facilities",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Service type",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Ensure minimum picking",
                    "decision": "FAILED",
                    "details": [
                        {
                            "actualValue": "0",
                            "contextReference": {
                                "reference": "SHOULDER_BAG",
                                "routingDecisionContext": "LISTING"
                            },
                            "expectedValue": "1",
                            "decisionType": "FENCE",
                            "reactiveErrorReason": null
                        }
                    ]
                }
            ],
            "orderRatings": [],
            "orderLineItemFences": [],
            "rank": null,
            "isBestRated": null,
            "isBestAvailable": null,
            "isBestReassignmentCandidate": null
        },
        {
            "facility": {
                "name": "Facility C",
                "facilityRef": "c83350ac-371e-4ad3-b2af-3771f3a4a193"
            },
            "availabilities": [],
            "orderFences": [
                {
                    "name": "Internal - BlacklistFence",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Preselected facilities",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Service type",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Ensure minimum picking",
                    "decision": "FAILED",
                    "details": [
                        {
                            "actualValue": "0",
                            "contextReference": {
                                "reference": "SHOULDER_BAG",
                                "routingDecisionContext": "LISTING"
                            },
                            "expectedValue": "1",
                            "decisionType": "FENCE",
                            "reactiveErrorReason": null
                        }
                    ]
                }
            ],
            "orderRatings": [],
            "orderLineItemFences": [],
            "rank": null,
            "isBestRated": null,
            "isBestAvailable": null,
            "isBestReassignmentCandidate": null
        },
        {
            "facility": {
                "name": "FACILITY D",
                "facilityRef": "e49fc721-01b4-40cb-b4cf-dfa36d3d9770"
            },
            "availabilities": [],
            "orderFences": [
                {
                    "name": "Internal - BlacklistFence",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Preselected facilities",
                    "decision": "PASSED",
                    "details": []
                },
                {
                    "name": "Service type",
                    "decision": "PASSED",
                    "details": []
                }
            ],
            "orderRatings": [],
            "orderLineItemFences": [],
            "rank": null,
            "isBestRated": null,
            "isBestAvailable": null,
            "isBestReassignmentCandidate": null
        }
    ],
    "results": {
        "assignedItems": [
            {
                "articleTitle": "Shoulder Bag",
                "quantity": 1,
                "tenantArticleId": "SHOULDER_BAG"
            }
        ],
        "bestRatedFacility": {
            "name": "Facility A",
            "facilityRef": "e02dab98-95dc-4951-b54c-31ff4f7bb58f"
        },
        "bestAvailableFacility": {
            "name": "Facility A",
            "facilityRef": "e02dab98-95dc-4951-b54c-31ff4f7bb58f"
        },
        "bestReassignmentFacility": null,
        "routingPlanStatus": "PLANNED"
    },
    "routingPlanRef": "f5ea2d1c-e613-4533-a919-0b2f6faf0337",
    "statistics": {
        "fenceStatistics": [
            {
                "durationMs": 2.6547759999521077,
                "name": "Internal - BlacklistFence",
                "passedAmount": 233,
                "rejectedAmount": 0,
                "passedPercentage": 100
            },
            {
                "durationMs": 2.729102000128478,
                "name": "Internal - GeoDistanceFence",
                "passedAmount": 233,
                "rejectedAmount": 0,
                "passedPercentage": 100
            },
            {
                "durationMs": 37.36173000000417,
                "name": "Preselected facilities",
                "passedAmount": 233,
                "rejectedAmount": 0,
                "passedPercentage": 100
            },
            {
                "durationMs": 18.877612999873236,
                "name": "Service type",
                "passedAmount": 233,
                "rejectedAmount": 0,
                "passedPercentage": 100
            },
            {
                "durationMs": 883.5412559998222,
                "name": "Ensure minimum picking",
                "passedAmount": 1,
                "rejectedAmount": 232,
                "passedPercentage": 0.4291845493562232
            }
        ],
        "ratingStatistics": [
            {
                "name": "Geodistance",
                "maxPenalty": 20,
                "durationMs": 0.5270390000659972,
                "maxScore": 664133.7479457706,
                "minScore": 664133.7479457706
            },
            {
                "name": "Stock availability",
                "maxPenalty": 200,
                "durationMs": 0.19809900014661252,
                "maxScore": 1,
                "minScore": 1
            }
        ],
        "durationMs": 10.137880000052974
    },
    "version": 1,
    "routingRun": 1,
    "lastModified": "2024-07-04T13:06:15.539Z",
    "id": "8375a514-1152-40b2-8873-7bde493bd738",
    "created": "2024-07-04T13:06:15.539Z"
}
```

</details>

{% hint style="info" %}
More information about the decision logs can be found in the [decision logs REST API documentation](https://fulfillmenttools.github.io/fulfillmenttools-api-reference-ui/#get-/api/routingplans/-routingplanId-/decisionlogs/-routingRun-).
{% endhint %}
