The ACK value comes from the data sequence number plus the exact payload byte count.

highlighted = computed this step

The arithmetic is byte count

The data started at 1001 and carried 2 bytes.

1001+2=10031001+2=1003
ACK equals start plus lengthThe toy TCP ACK segment is decoded from exact header bytes.ACK header160 bits / 20 bytes0x01bb9c4000001389000003eb5010100000000000byte 0byte 1byte 2byte 300000001101110111001110001000000byte 4byte 5byte 6byte 700000000000000000001001110001001byte 8byte 9byte 10byte 1100000000000000000000001111101011byte 12byte 13byte 14byte 1501010000000100000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port443destination-port40000sequence-number5001acknowledgment-number1003data-offset5reserved0x0flags0x10window0x1000checksum0x0000urgent-pointer0

The ACK field shows 1003

The ACK header field is 1003, exactly one past the last byte carried by the two-byte payload.

ack=1003\text{ack}=1003
ACK equals start plus lengthThe toy TCP ACK segment is decoded from exact header bytes.ACK header160 bits / 20 bytes0x01bb9c4000001389000003eb5010100000000000byte 0byte 1byte 2byte 300000001101110111001110001000000byte 4byte 5byte 6byte 700000000000000000001001110001001byte 8byte 9byte 10byte 1100000000000000000000001111101011byte 12byte 13byte 14byte 1501010000000100000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port443destination-port40000sequence-number5001acknowledgment-number1003data-offset5reserved0x0flags0x10window0x1000checksum0x0000urgent-pointer0

Why it is not 1002

The first byte is at 1001 and the second byte is at 1002. The next wanted byte is therefore 1003.

1001,1002⇒10031001,1002\Rightarrow1003
ACK equals start plus lengthThe toy TCP ACK segment is decoded from exact header bytes.ACK header160 bits / 20 bytes0x01bb9c4000001389000003eb5010100000000000byte 0byte 1byte 2byte 300000001101110111001110001000000byte 4byte 5byte 6byte 700000000000000000001001110001001byte 8byte 9byte 10byte 1100000000000000000000001111101011byte 12byte 13byte 14byte 1501010000000100000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port443destination-port40000sequence-number5001acknowledgment-number1003data-offset5reserved0x0flags0x10window0x1000checksum0x0000urgent-pointer0

Summary

The ACK number is recomputed from the starting sequence and exact payload byte length.

ACK=1003\text{ACK}=1003
ACK equals start plus lengthThe toy TCP ACK segment is decoded from exact header bytes.ACK header160 bits / 20 bytes0x01bb9c4000001389000003eb5010100000000000byte 0byte 1byte 2byte 300000001101110111001110001000000byte 4byte 5byte 6byte 700000000000000000001001110001001byte 8byte 9byte 10byte 1100000000000000000000001111101011byte 12byte 13byte 14byte 1501010000000100000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port443destination-port40000sequence-number5001acknowledgment-number1003data-offset5reserved0x0flags0x10window0x1000checksum0x0000urgent-pointer0