How does the standard client prioritize transactions? I've heard that the standard client prioritizes which transaction to relay based on the Bitcoin Days Destroyed and the fee paid on the transaction, but what is the exact formula used to determine which transaction has higher priority? That is, how does the standard client prioritize which transaction to send to other nodes first?
The priority of a transaction is (the sum of (coin age in blocks * coin value in satoshis) over all the inputs in the transaction) divided by the size of the transaction in bytes.

Here's a random example transaction copied from http://bitcoincharts.com/bitcoin/txlist/:



It has 2 inputs (both of which have since been spent in other (confirmed) transactions rendering this transaction unconfirmable):


one for 0.1005 BTC from block 165774
one for 0.0995 BTC from block 165777


It is 439 bytes long, and has a priority of 432,232,688.

The most recent blocks in the blockchain is 175262 at the time of writing.

I sum the (age * values) for each transaction and divide by size.  The + 1 is because transactions confirmed in the newest block are considered to have an age of 1, not 0:

&gt;&gt;&gt; current_block = 175262
&gt;&gt;&gt; ((current_block - 165774 + 1) * 0.1005e8 +
     (current_block - 165777 + 1) * 0.0995e8) / 439
432232687.92710704


As you can see, the priority of a transaction will go up as new blocks are found.