Bid and ask size for IEX data is not as reported by IEX

These are two records from PCAP IEX:

    symbol                     timestamp flags bid_size ask_size bid_price ask_price
 3:      A 2021-09-03 13:30:01.027520000     0      300        0    177.23      0.00
 4:      A 2021-09-03 13:30:01.189250000     0      300      133    177.23    178.00

IEX documentation clearly states: “Size is the size of the quote represented in number of shares.”

This is from Alpaca:

    sym                           tsi ax     ap an bx     bp bn c z
 1:   A 2021-09-03 13:30:01.027520534  V   0.00  0  V 177.23  3 R A
 2:   A 2021-09-03 13:30:01.189250055  V 178.00  1  V 177.23  3 R A

And here is the same, but for an other symbol:

    symbol                     timestamp flags bid_size ask_size bid_price ask_price
 8:    SEB 2021-09-03 13:46:59.283853000     0        1        0   4143.00      0.00
 9:    SEB 2021-09-03 13:46:59.283889000     0        3        0   4143.00      0.00
10:    SEB 2021-09-03 13:47:43.781775000     0        3        1   4143.00   4255.00

And from Alpaca:

    sym                           tsi ax      ap an bx      bp bn c z
 6: SEB 2021-09-03 13:46:59.283852547  V    0.00  0  V 4143.00  1 R B
 7: SEB 2021-09-03 13:46:59.283888660  V    0.00  0  V 4143.00  3 R B
 8: SEB 2021-09-03 13:47:43.781774794  V 4255.00  1  V 4143.00  3 R B

Anyone can explain the logic, if there is any?

Quote sizes in our API are reported in lots. Stock lot sizes can differ, but the vast majority of stocks has a round lot size of 100.

So the bid size of A in your example is 3 round lots (3 x 100 = 300 shares) and the ask size is 1 lot (133 rounded down).

SEB has a lot size of 1 (which is quite rare), so the lot sizes are exactly the same as the number of stocks.