How to determine objectively if a move is passive or aggressive? I'm doing research about how different conditions or situations affect the decision making process in chess. For example if the opponent's ELO ranking affects the average time used for every move. In the example, both variables are numerical and easy to obtain. However I struggle when it comes to define if a move is more passive or aggressive (specially after the opening theory).
I noticed that, independently of playing style, there are some external factors that make us play more actively (aggressively, taking more risk) or passively (defensively, taking less risk). I read some articles that say it depends on the current position and the analyzer &quot;strength&quot; to determine with certainty, but that is too subjective for my purposes. There must be some some objective cues to help me.
I was thinking about the mobility (as in how many moves the player or the specific piece have after the last move) or/and if it is making or stopping a threat. Are there other cues or methods I could use to define if a move is passive or aggressive?
Is there software where I can analyze a complete game and give me this kind of output? Perhaps not if the movement was aggressive, but maybe if it is making a threat or reaching more mobility than before?
I also know that some software like Chessmaster, uses AI &quot;personalities&quot; and some make passive or aggressive moves as their traits. Can someone explain how the software chooses a move that may not be optimal but a passive one?
Let me answer your questions precisely and technically:


Q: I also know that some softwares like chessmaster...?

Nobody knows for sure because Chessmaster is closed source. Fortunately, it's not hard to replicate Chessmaster personalities. There're several ways to do it:


Define different piece-square-table (PST) for each personality
Define different tuning parameters for each personality
Scale the attacking parameters and/or defending parameters with a constant
Give an appropriate Contempt value



It takes some work to create a new personality, but it should be just minor changes to a working chess engine.

The Stockfish engine had an UCI option for optimizating attacking and defending parameters. This was done by scaling the evaluation score accordingly. For example, if you scaled your own king safety score by a positive constant greater than 1, the engine would be more defensive.


Q: How to determine if a move is aggregative or defensive?


Tony, Brian and others gave good suggestions, but their suggestions are for human players and too abstract for a computer. If you want a computer to tell you whether a move is aggressive or defensive, you may need:


Null move
Monte-Carlo tree search


Null-move is simple and it's been implemented in various chess softwares. The idea is simple - if the move doesn't threaten anything, it should not be an aggressive move.

Monte-Carlo tree search goes even further. You can use it to determine the distribution of your payoff. If a move is aggressive, the margin error should be smaller. If a move is defensive, the margin error should be bigger.