not completed but commiting anyway

Againl, the global keyword isn't necessary here, nor are you required to re-cast your Decimal from get_interest_rate(). In fact, I wouldn't be surprised if it would fail when get_interest_rate returns a none.  Since get_interest_rate is already returning a decimal, you don't have to reimplement it here.

You do, however, need to be concerned with what happens when rate is none (hint):

    total = None
    if rate is not none:
        round(# compound)