Need a loyalty program template/plugin

I have a client who is requesting the following and would like to know if a template and/or plugin(s) exists that would accomplish this:

What I am trying to do is to develop an on line loyalty program for real estate business.
I have designed the rules of the program (captured in a spreadsheet and a document) and what I need is a person/firm to help implement the first phase. In summary, I am assuming we need some sort of repository/database to manage the data, the rules of the program and a way to interface with users. I need something small to medium scale to get started with ability to expand as needed as we roll this out to more companies. This implementation needs to be secured and auditable and scalable as we grow. The User interface must handle different type of users and level of access; including administration access. I would like to also have flexibility in changing formulas and rules as needed, therefore historical changed need to be tracked. In summary I see 5 areas for implementation:

  1. A database with some specifics shown below in requirement; where we capture all the data needed (ie. companies, agents, customers, transactions, etc.)
  2. Functionality / Business rules of the loyalty program; this is the heart of the program. Much of this is behind my master spreadsheet and some in the functional requirements below, but still lots of this is in my head and we need more time to document them.
  3. User interface (UI) - Assuming this is a web based application with an option for an App. The UI must handle different functionality based on the many roles that it supports (ie. company owner, agents, Clients/customers, Admin, etc.). These levels / user roles will allow access to proper data and proper level. There is a roll-up that is assumed: so all clients of an Agent, or all Agents in a company , or Admin level functionality should view accumulated earned points for all transactions.
  4. Data feeds - Initially I see this solution to be a stand-alone module where we can enter data to it manually or automated via some API to be developed. Over time, I can see us developing batch job to feed data to this module from larger Real Estate systems.
  5. Reporting and administrative ability - We need to be able to run reports at many levels (similar to the user Interface levels) to extract to a spreadsheet or run a printed reports all the proper level data for review/audit/management teams.