You know, I trie to respond three seperate times and ended up getting very long winded because I have created a drafting program myself and have a ton of ideas that I am in the process of including into mine.
First off, mine is built upon a database that tracks as much info about the players as possible for different granularities of statistical analysis. I won't get into it at all but just thought I would throw it out there.
Anyway, what you have is similar to what I have, a ranking of need, how much they would reach, and how many they would take.
I have gone in a little further, breaking down rankings for secondary selections so that they may take precedence over primary selections.
I have also worked into the calculation the tier levels of each position. For instance, in a draft that has very little DEs but a ton of WRs the calculation may devalue the WR position if a player is slightly better than a DE. So for instance, a team had extreme need of WR and DE and were drafting in the 26 slot. A WR is ranked 22nd but the DE is ranked 30th. The DE is the last at his tier and the dropoff is huge(Maybe the next DE doesn't go till 3rd round), but the WR is the top of his tier with many other good WRs. The program would take the DE on most occasions.
Anyway, I can see I am starting to get longwinded again. Just wanted to comment that you are doing a good job and these may be some suggestions that you have already thought of.