Each polygon of the WM has a flag that labels it as having chocobo tracks. If you are on one of those polygons and your chocobo rating is > 0 (max of 32) then it will check for a chocobo formation.
A "random" encounter byte will be chosen from the encounter PRNGLUT and be multiplied by 4096 then be divided by the chocobo encounter rate. If the chocobo formation encounter chance is greater than this rate, then a chocobo battle will be selected. There are 28 chocobo formations
Area formation chance
1,0,0 38 24,576 - Farm
1,0,1 39 49,152
1,0,2 3C 73,728
1,0,3 3D 98,304
2,0,0 4E 16,384 - near Junon
2,0,1 4F 32,768
2,0,2 50 49,152
2,0,3 51 65,536
4,0,0 62 5,120 - outside Gold Saucer desert
4,0,1 63 10,240
4,0,2 68 21,504
4,0,3 69 32,768
8,0,0 98 5,120 - North of Rocket Town
8,0,1 99 10,240
8,0,2 9C 21,504
8,0,3 9D 32,768
9,1,0 0A2 8,192 - Wutai island
9,1,1 0A3 16,384
9,1,2 0A6 24,576
9,1,3 0A7 32,768
B,1,0 0CA 3,072 - Snow fields
B,1,1 0CB 6,144
B,1,2 0CE 19,456
B,1,3 0CF 32,768
C,0,0 0D6 7,168 - Outside Mideel
C,0,1 0D7 14,336
C,0,2 0DA 23,552
C,0,3 0DB 32,768
I can't guarantee those locations are accurate and don't worry about what the area column means; They're not the point. What IS the point is that the value in the encounter rate has to be LESS than any of these numbers in order to encounter a chocobo in the designated area. If none of these formations are selected then a random battle in the region will be selected. There's some other check I don't recognize that doesn't influence the calculations at all.
For example, I'm in the area around Junon with two max level chocobo lures. The chocobo rating is capped at 32.
A battle check occurs and the PRNGLUT gives me a 36.
36 << 12 = 147,456
147,456 / 32 = 4,608
Chocobo Formation 4E is encountered
If the PRNGLUT gives me 160, then I get
100 << 12 = 655,360
655,360 / 32 = 20,480
Chocobo Formation 4F is encountered