How Minecraft horse breeding works
Breed two tamed horses with a golden carrot or golden apple. The foal rolls health, jump strength and movement speed separately. Each roll starts at the parents midpoint, then shifts by a spread of the difference between the parents plus 0.3 of that stats full range, times a random factor from -0.5 to +0.5. Most foals land near the middle. A few beat both parents. Some come out worse.
A wild horse rolls each stat once inside the ranges below. Breeding is how you push a line toward the maximum, because the foal inherits from its parents instead of rolling from scratch. Donkeys use the same stat math. A horse bred with a donkey makes a mule. Skeleton and zombie horses cannot be bred.
Stat ranges from the current Horse wiki
Health is 15 to 30 HP (7.5 to 15 hearts). jump_strength is 0.4 to 1.0, which clears about 1.153 to 5.92 blocks with vanilla gravity. movement_speed is 0.1125 to 0.3375, about 4.74 to 14.23 blocks per second. Those jump heights replace older 5.3-block figures that still appear on some pages.
The offspring formula
For each stat the game clamps the two parents into range, takes their midpoint, then adds spread times ((r1 + r2 + r3) / 3 - 0.5). Spread is the absolute difference of the parents plus 0.3 times (max minus min). Values past the cap reflect back inside the range. The three randoms make extreme foals rare.
How to read a horse in game
Health shows as hearts. Jump and speed are hidden. Run /data get entity @e[type=horse,limit=1,sort=nearest] attributes and copy the base values into the Stat decoder. Without commands you can only estimate by jumping walls and timing a sprint.
Summon a test horse
The command on this page is Java Edition. Modern worlds want attributes with id and base. Older worlds want Attributes with Name and Base. The old minecraft:horse.jump_strength id is obsolete. Bedrock cannot take this NBT.
Horse breeding FAQ
How are horse stats inherited in Minecraft?
Each of the three stats is rolled on its own. The game takes the parents midpoint, then adds a spread of their difference plus 0.3 of the full range, multiplied by an averaged random from -0.5 to +0.5. Results outside the legal range bounce back inside.
What are the maximum horse stats?
30 HP, jump_strength 1.0 (about 5.92 blocks), and movement_speed 0.3375 (about 14.23 blocks per second). A perfect horse has all three at the cap. That is extremely rare from a single wild horse.
Is there a hidden third parent?
No. People say that because the formula adds a fresh random on top of the two parents. That random is what lets a foal beat both parents. It is not a third horse.
How do I breed the fastest horse?
Tame a lot of horses, keep the fastest few, and breed those two together. The likely foal sits at their midpoint, with a chance to exceed both. Keep any foal that beats the parents and breed it back in. Two fast horses are more reliable than one fast and one slow.
Can a foal be worse than both parents?
Yes. The random factor can land below the midpoint, sometimes below the weaker parent. Raise several foals each generation and only keep the ones that improve the line.
How do I summon a horse with a 5.92 block jump?
On current Java use /summon horse ~ ~ ~ with attributes id minecraft:jump_strength and base 1.0, plus Health and max_health if you also want 15 hearts. Jump strength 0.4 is the 1.153 block minimum. Do not use horse.jump_strength.
