Say your App monitors sales and using some algorithm decides that it contributed to N sales. You could then initiate a one-time charge applicable to N sales and turn the App "off" till it was paid. The shop owner would have to approve the new one-time charge before the App would turn "on" again for that store. That is one way to do it. Another would be to adjust the recurring rate to match sales volume. Any sales less than 100 per month = $X, 100 < sales < 1000 charge out at $Y and any sales > 1000 charge out at $Z.