Revision C of the AD5686R/AD5685R/AD5684R datasheet shows the transfer function of the device as
Vout = Vref * Gain * (D / (2^n))
It then goes on to say that the valid code ranges are as follows:
0 to 4,095 for the 12-bit device.
0 to 16,383 for the 14-bit device.
0 to 65,535 for the 16-bit device.
And when Gain is 1, DAC outputs have a span from 0V to Vref. When Gain is 2, outputs have a span of 0V to 2*Vref.
If the valid code ranges and DAC outputs listed are correct, then I think that the transfer function should read:
Vout = Vref * Gain * (D / ((2^n) - 1))
Using given transfer function with a Gain of 1, Vref of 2.5V, and n = 12, a code of 4095 would yield a Vout of only 2.499V. A code of 4096 (not valid) would be needed to result in a Vout of 2.5V.
Using revised transfer function with same assumed values, a code of 4095 results in a Vout of 2.5V.
The AD5686/AD5684 datasheet (Rev B) shows the same discrepancy.