# forge.types.CheckResult

```python
forge.types.CheckResult(margin_required: float, free_margin_after: float, projected_profit: float | None, reject_reason: RejectReason | None, max_affordable_lots: float = 0.0) -> None
```

What the engine would say about an order sent now.

``margin_required`` is the margin the order would hold. ``free_margin_after`` is what is left
of the equity once it is held. ``projected_profit`` is the gross profit at ``tp`` and ``None``
without one. ``reject_reason`` is the refusal the engine's submission checks would give, or
``None`` when none would. ``max_affordable_lots`` is the largest size, in lots, that the free
margin before this order would pay for, on the lot step and under the broker's maximum, the
run's lot cap and the risk cap (``0.0`` when not even the minimum lot fits): the same figure
the run's margin refusal record gives for an order that is then refused.

Since Forge API 1.
