ExecType.Calculated vs OrdStatus.Calculated

Is there a general rule when one is to be preferred over the other?

When ExecType conveys the reason for the ExecutionReport message and OrdStatus conveys the current status of an order then to me it does not make sense to have OrdStatus.Calculated together with anything other than ExecType.Calculated.

I could not find the Calculated status in this diagram https://www.fixtrading.org/online-specification/order-state-changes/#order-state-change-matrices-for-exchanges or in the included scenarios.
Maybe it should really be handled like “Done for day” which is conveyed in ExecType and OrdStatus at the same time?

Thanks in advance!

Hello, so for some context OrdStatus.Calculated is described as follows here: https://www.fixtrading.org/online-specification/order-state-changes/

Order has been completed for the day (either filled or done for day). Commission or currency settlement details have been calculated and reported in this execution message

So it’s likely one of the last FIX messages on that order chain. I’m not sure if there is a general rule, but I think that in most cases you are right to state that OrdStatus.Calculated would be the same as ExecType.Calculated.

However, according to the “Order State Precedences” section, a Done for Day should take precedence (Precedence 9) over Calculated (Precedence 8). So I interpret that as, and I could be wrong, if there was a DFD that came prior to the Calculated message, then the OrdStatus should remain as Done for Day while the ExecType would be Calculated.

2 Likes

Agree with @simon.chen. The order status may remain unchanged from its value in the previous ExecutionReport(35=8). The Order State Precedences determine the actual status to be conveyed whereas ExecType is always the trigger for the given ER. Precedence was defined to result in the most relevant information about an order to be provided.

1 Like

Thanks @simon.chen and @hanno.klein for your replies.

So let’s give an example. Is it possible to have an ExecReport with ExecType=TRADE with an OrdStatus=CALCULATED?

In the “Order State Precedences” table it is shown that CALCULATED has a higher precedence than FILLED or PARTIALLY FILLED. So if the settlement details are calculated at the same time as the trade happened (that would probably mean in the same transaction) then the aformentioned combination could be possible?

In reality I would probably expect that there are separate ExecReports for conveying the FILL and CALCULATED status. Does that make sense?

Thanks in advance

@christophjohn, yes, I think so. That is the purpose of the precedence – folding several states into one:

(PARTIALLY_FILLED, CALCULATED) -> CALCULATED
(FILLED, CALCULATED) -> CALCULATED

On the other hand, I admit that I also would expect two messages for the systems behind.

Cheers, Jörg

1 Like

That depends on the system architecture behind this. Can the commission etc. be calculated immediately after the trade? If so, then why send more than you need? ExecType=F (Trade) is implicitly given by LastQty(32)>0. EP188 tried to address some of the issues related to the “verbosity” of the workflow in high performance environments (e.g. exchanges). Ease of use is a different objective and may lead to sending two messages back-to-back even if commission etc. can be calculated immediately. It also depends on the capabilities of your counterparty.

And this is the place where I need to advertise FIX Orchestra that allows you to define not only messages but also workflows showing exactly what goes back and forth and with which fields and values. :wink:

2 Likes