This is crazy, accounting wise... It's impossible to know how/and where the money is coming from...
x_description is not sent to Authorize.net. This makes it difficult to differentiate and categorize transactions from Authorize.net. The attached patch adds the membership level to the x_description field. But it will have to be expanded for the other things that the payment processor is used for (events, monetary contributions), and therefore this is probably not the best way to do it. Perhaps the description should be populated by the calling functions.