Dynamic product is called dynamic because a proper contract type cannot be guaranteed. The booking gets tied to a standard accommodation type and the description of the room is put in the room_type text field.
All dynamic contracts can be detected by the is_dynamic="true" field in the availability response. If the room_type field is empty but is_dynamic is filled you can get the proper room type in the SYS_CONTRACT_TYPE field.
You can feel free to remove these contracts from the comparison, but please be aware that usually this kind of contract have very good prices. Maybe you could consider a warning, when one of these contracts is selected, asking the user to read carefully the room_type before confirmation.