Giving Levels are based upon pledge amounts (installment amounts for SG pledges), not payment amounts. Here are some things to look for when troubleshooting unexpected giving levels.

Complimentary gift - When a donor gets a membership with a $0 pledge the giving level is not reset.
Gift Dates in different order than date inserted - for example, member renews on 1/1/10 and an additional gift is posted on 1/15. The renewal transaction does not get entered and posted until 1/31 so the additional gift is missing from the giving level. This can be fixed by running recalc aa
More than one renewal gift type per activity in a month - when gift type is evaluated it is only based upon posted transactions so if another transaction is created while the first renewal transaction is in a batch but still not posted you may end up with two renewal transactions when you only wanted one. This could cause an unexpected giving level and the solution is to fix the gift types if needed then run recalc aa
Two pledges come in the same day - sometimes only one is counted toward the giving level for the current year. RECALC AA does not change this.
SG pledges - to calculate the giving level for SG pledge you cannot simply use the pledge amount because you want to use the value of a whole year even if the pledge starts in June. So say there was a $10 a month SG pledge from June, the correct amount to use toward the giving level would be $120 even though the pledge amount is $60. Only use the pledge amount if the installment amount is blank.
SG pledges part 2 - This is more of a minor issue. Sometimes a user replaces an existing SG pledge in which case only the more recent of the pledges should be counted. You can tell when this has happened because two pledges in one sustainer year have the same sustaining gift number.  Account activities handles this case correctly but this may look weird to you if you are not expecting it.
Client is using non-standard membership years - if the client is using membership year amount to set giving level amount, check that account_activities.current_mem_yr_renew_date is correct. If the current_mem_yr_renew_date is blank this could happen upon accoun activity recompute if the activity was not considered renewable (see case 11374879)