Yes I believe you got me (to a point). First, I just wanted to point out that, as it stands right now, using:
Code:
<prizeLevel minPlayers="35" maxPlayers="39">
<prize rank="1-5" name="{1} Place" nonmonetary="Seat" />
<prize rank="6" name="{1} Place" percent="100" adjustby="-2750" />
</prizeLevel>
can produce a 0$ prize and that it should be handled better by TD by simply "silencing" 0$ prizes (not showing them on the board)
Understood. But the TD will allow you to create prizes of any value, including negative, so it's not as if a prize with a value of $0 is invalid somehow. But I suppose an option to NOT display prizes of $0 or less value could be added.
That said, having "another way" of selecting prize levels would be fantastic in my scenario. The only thing that is unclear from your example is: How does TD know that each "level" is worth 550$? I do not see anything in the "<levelSelection method="formula">" section that states that the POT should be divided by 550 (+1) to get to the proper level...
Other than that, you are on the right track
This is available today. By default, the Automatic Prizes feature works off of the number of players in the tournament. By adding an additional section to the config file, it will change the meaning of "number of players". In other words, the criteria by which levels are chosen is usually "number of players", but it can be changed to either (a) some combination of number of buy-ins, rebuys, and add-ons; or (b) the output of a formula.
In my example I configured the Automatic Prizes to use the output of my formula as the criteria. I set the formula to simply "pot", which means the output of the formula will be the current value of the pot, and thus the current value of the pot is my criteria.
<levelSelection method="formula">
<predefined countBuyins="true" countRebuys="false" countAddOns="false" />
<formula text="pot" />
</levelSelection>
(In the above configuration, the <predefined> node is unused, because the <levelSelection> node chose to use the <formula> method. But it doesn't hurt anything, so I left it in. Likewise, I could have set <levelSelection method="predefined">, which would make it use the <predefined> node and ignore the <formula> node.)
Each level is therefore chosen based on the current value of the pot.
<prizeLevel minPlayers="1" maxPlayers="549">
<prize rank="1" name="1st Place" percent="100" />
</prizeLevel>
This then says "when the pot is between $1 and $549, use this prize level". I know the "minPlayers" and "maxPlayers" attributes are confusing, but they were left that way for backwards compatibility. Think of "minPlayers" as simply "minimum value" and "maxPlayers" as "maximum value". So, when the formula (the value of the pot) is at minimum $1 and at maximum $549, only configure a single 1st place prize which gets 100% of the pot.
<prizeLevel minPlayers="550" maxPlayers="1099">
<prize rank="1" name="{1} Place" fixed="550" />
<prize rank="2" name="{1} Place" percent="100" />
</prizeLevel>
When the pot is at least $550 and at most $1099, create a 1st place prize of $550 and a 2nd place prize which gets 100% of the pot (after removing the fixed 1st place prize).
<prizeLevel minPlayers="1100" maxPlayers="1649">
<prize rank="1-2" name="{1} Place" fixed="550" />
<prize rank="3" name="{1} Place" percent="100" />
</prizeLevel>
When the pot is at least $1100 and at most $1649, create 1st and 2nd place prizes of $550 each and a 3rd place prize which gets 100% of the pot (after removing the fixed 1st and 2nd place prizes).
You get the picture.