A method includes: receiving information regarding a plurality of completed transactions from a plurality of users; receiving a query from a first user regarding a proposed transaction; determining at least one affinity between the first user and the plurality of users based on the information; determining a ranking or expectation of success for each of a plurality of potential entities for the proposed transaction based on the at least one affinity; selecting a plurality of selected entities based on the ranking or expectation of success for each of the potential entities; and sending, in response to the query, the plurality of selected entities to the first user.