@Anonymous
Sure, at its very basic level, the following formula would return that calculation:
With({_wires:
Table({Size: "14", MaxAmps: 20},
{Size: "12", MaxAmps: 25},
{Size: "10", MaxAmps: 35},
{Size: "8", MaxAmps: 50},
{Size: "6", MaxAmps: 65},
{Size: "4", MaxAmps: 85},
{Size: "3", MaxAmps: 100},
{Size: "2", MaxAmps: 115},
{Size: "1", MaxAmps: 130},
{Size: "1/0", MaxAmps: 150},
{Size: "2/0", MaxAmps: 175},
{Size: "3/0", MaxAmps: 200},
{Size: "4/0", MaxAmps: 230},
{Size: "250", MaxAmps: 255},
{Size: "300", MaxAmps: 285},
{Size: "350", MaxAmps: 310},
{Size: "500", MaxAmps: 380},
{Size: "600", MaxAmps: 420},
{Size: "750", MaxAmps: 475},
{Size: "1000", MaxAmps: 545}
)},
LookUp(Sort(_wires, MaxAmps, Descending), MaxAmps > 53, Size)
)
The above formula would return "6". Of course, I would make the wire table either a list of its own (although it is pretty static in nature) or a global variable in the app (i.e. using the Set function to set a variable to the above table).
As for the individual sites and lists...you would simply need to connect your app to those lists as datasources.