Mettiamo che hai recuperato i dati dal db e li hai salvati inizializzando delle proprietà di una classe, ad esempio

codice:
public class CalcoloProvvigini
{
    private List<float> mScaglioni { get; set; }
    private List<float> mPercentuali { get; set; }
    private float mFatturato { get; set; }

    public CalcoloProvvigini(string Agente)
    {
         /*
             inizializzando la classe puoi passare come argomento l'agente
             di cui estrarre il fatturato mensile e, quindi, richiamare un metodo
             della classe che recupera tutti i dati dal db per i calcoli
         */
        RecuperaDati(Agente);
    }

    private void RecuperaDati(string ag)
    {
        // qui recuperi i dati dal db e valorizzi le proprità scaglioni e fatturato
    }

    public Dictionary<string, float> Provvigioni(float fatturato = null)
    {
        // ho indicato un argomento facoltativo perchè in caso tu volessi
        // per qualsiasi motivo passare un valore diverso lo puoi fare
        fatturato = fatturato != null ? fatturato : mFatturato;

        // controllo che sia stao valorizzato il parametro degli scaglioni
        if (mScaglioni == null || mPercentuali == null)
        {
            return; 
        }

        float a, b c;
        Dictionary<string, float> result = new Dictionary<string, float>();

        if (fatturato <= mScaglioni[0])
        {
            a = fatturato * (mPercentuali[0] / 100);
            result.Add("Scaglione1", a);
        }
        else if (fatturato > mScaglioni[0] && fatturato <= mScaglioni[1])
        {
            a = mScaglioni[0] * (mPercentuali[0] / 100);
            b = (fatturato - mScaglioni[0]) * (mPercentuali[1] / 100);

            result.Add("Scaglione1", a);
            result.Add("Scaglione2", b);
        }
        else if (fatturato > mScaglioni[1])
        {
            a = mScaglioni[0] * (mPercentuali[0] / 100);
            b = mScaglioni[1] * (mPercentuali[1] / 100);
            c = (fatturato - mscaglioni[1]) * (mPercentuali[2] / 100);

            result.Add("Scaglione1", a);
            result.Add("Scaglione2", b);
            result.Add("Scaglione3", c);
        }

        return result;
    }
}
Considera due cose:
- ho scritto una cosa al volo e senza controllarla perchè l'ho scritta direttamente qui nel forum
- ho dato per scontato che gli scaglioni sono tre, se non sono sempre uguali per categoria il sistema deve essere rivisto

Chiaramente è un'idea, una traccia che ti potrebbe servire coma spunto, di certo non la soluzione definitiva....