Light power from size

This is making me feel dumb, but hopefully you all can enlighten me.

I’ve got an area light that I want to look like a physical light I have. It measure’s 40,000 lux. Blender uses Watts, which is the same as radiant flux, which is 1000 lux per square meter.

So I put this in a driver for the power: self.size*self.size_y*40000
But it tells me that is a Slow Python expression. I’m not really sure how I could make that any more efficient. Is there a better way to do this? I wanted to use nodes, but documentation said lights can’t use the attribute node. I tried it anyway, but no surprise I didn’t get it to produce anything.

I’m also annoyed that area lights don’t work this way anyway. There should be an option to allow the area to determine the power, rather than having to do it this way.
This is naturally how emissive works, but that works in 180 degrees spread. So if you need to narrow that you have to actually model stuff, or add some math nodes involiving the dot product of the normal and incomming? It works, but it also changes your brightness dramatically, and I hadn’t found any math that normalizes the value quickly so I abandoned the method for anything that I’d like to use real-world values to try and get close to real life.