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:
>>> current_block = 175262
>>> ((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.
possible duplicate of What is the coin selection algorithm?
– Stephen Gornick – 2012-04-11T01:19:52.4702@StephenGornick Not a duplicate, this relates to relaying transactions while the one you linked relates to prioritizing coins used in transactions. – BinaryMage – 2012-04-11T05:08:04.987
Maybe you should precise what you mean by relay. Are you interested in the order transactions are relayed to other peers, or the order (and maybe quantity) that are considered to build new blocks? – Stéphane Gimenez – 2012-04-11T21:42:41.163