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