Bear with me as the following is from a fighting game I was experimenting with in Harlowe but I think will be relevant for your situation.
Since I didn’t want to re-write the same fighting sequence in multiple passages, I instead I did the following.
I set all the following variables with datamaps at the beginning of the story:
(set: $noenemy to (dm: "name","none","title","none","LP",0,"CLP",0,"hit",6,"damage",0,"armour",0,"status",0,"magic",true,"TFR",true,"bribe",false,"BA",0))
(set: $enemy to $noenemy)
$noenemy was so I could clear out the $enemy datamap quickly so may not be necessary for your case. $enemy is the variable used in the fighting sequence passages.
Then I added the rest
(set: $blackknight to (dm: "name","Black Knight","title","the Black Knight","LP",25,"CLP",25,"hit",6,"damage",10,"armour",6,"status",2,"magic",false,"TFR",true,"bribe",false,"BA",0))
(set: $ogre to (dm: "name","Ogre","title","the ogre","LP",40,"CLP",40,"hit",6,"damage",15,"armour",0,"status",2,"magic",false,"TFR",true,"bribe",false,"BA",0))
(set: $wolf to (dm: "name","Wolf","title","the wolf","LP",20,"CLP",20,"hit",6,"damage",3,"armour",0,"status",2,"magic",true,"TFR",true,"bribe",false,"BA",0))
(set: $boar to (dm: "name","Boar","title","the boar","LP",25,"CLP",25,"hit",6,"damage",4,"armour",0,"status",2,"magic",true,"TFR",true,"bribe",false,"BA",0))
(set: $savageHound1 to (dm: "name","Savage Hound","title","the first savage hound","LP",20,"CLP",20,"hit",5,"damage",3,"armour",0,"status",2,"magic",true,"TFR",true,"bribe",false,"BA",0))
(set: $savageHound2 to (dm: "name","Savage Hound","title","the second savage hound","LP",20,"CLP",20,"hit",5,"damage",3,"armour",0,"status",2,"magic",true,"TFR",true,"bribe",false,"BA",0))
and if I was going to fight the boar just added the following line in the passage before displaying the fight passages:
(set: $enemy to $boar)
so if I wanted to see what the boars life points are in the fight:
(print: $enemy's LP)
So for your judges it could look like the following:
(set: $noJudge to (dm: "name","none","max",0,"min",0))
(set: $judge to $noJudge)
(set: $joeLA to (dm: "name","Joe","max",92,"min",57))
(set: $janeLA to (dm: "name","Jane","max",62,"min",6))
(set: $bobLA to (dm: "name","Bob","max",87,"min",43))
(set: $louiseLA to (dm: "name","Louise","max",90,"min",63))
...
You can check if a judge has been assigned with this
(if: $judge's name is $noJudge's name)
Assign a Judge like this
(set: $judge to $louiseLA)
and print out the details for the judge
The judge's name is (print: $judge's name). The maximum denial rate is (print: $judge's max)%. The minimum denial rate is (print: $judge's min)%. That's a spread of (print: ($judge's max - $judge's min))%.