A day at the Horse Races
Python 2, 282 272 246 bytes

Similar to Arnauld the input is assumed to be already stripped from the starting number since it is implicit.
H=input().split(&quot;\n&quot;)
T=[float(c[2:])if c[2:]else 99for c in H]
P=[min(int(10*(t-min(T))),50)for t in T]
S=sorted(list(set(T)))
i=0
u=&quot;_&quot;
for h,p,t in zip(H,P,T):i+=1;s=S.index(t)+1;print`i`+u+&quot;|&quot;*(s&gt;1)+u*p+[h,&quot;%d(%s)&quot;%(s,h)][t&lt;99]+u*(41-p+(s&lt;2))