Changeset - 910ff17cc43c
[Not reviewed]
0 1 0
Bradley Kuhn (bkuhn) - 8 years ago 2016-08-30 17:13:00
bkuhn@ebb.org
Additional request state: Pre-Approval

Many travel policies, for example, require that certain expenses be
approved before tickets can be purchased. An example from Conservancy's
travel policy include: hotel bookings beyond the GSA/Dept-of-State Per
Diem hotel rate, and flights that exceed the with-$100-of-cheapest rule.

As such, requestors need the ability to request preapproval.

These changes herein committed, however, do *not* account for the fact
that a request may already be "In Progress" when another expense comes
up. An example of that is a flight was booked already in policy and the
requestor, and uploaded, and the requestor then discovers later that the
hotel is out-of-policy and needs preapproval. We can perhaps ignore
this scenario for the first specification of this to avoid
feature-creep, but I wanted to flag it as a potential issue for future.

The work around might be that the Bookkeeper is allowed to move a
request between any state to another, so the work-around in this
specific instance may have to require an out-of-band conversation
between bookkeeper and requestor. That's not disaster.
1 file changed with 11 insertions and 2 deletions:
0 comments (0 inline, 0 general)
Reimbursements/Requirements.mdwn
Show inline comments
...
 
@@ -7,92 +7,101 @@ system that allows (a) members of an organization, and external parties, to
 
submit requests for reimbursement or request for payment (e.g., invoices),
 
and (b) the organization's bookkeepers, accountants, and managerial approvers
 
to review those requests, add them to the organization's books, and prepare
 
payment.  The primary motivation for this project is to save time both groups
 
spend on handling reimbursement requests and outgoing payments, and reduce
 
turnaround time for these requests, and to help members file complete
 
requests that are easy for bookkeepers to review and accept.
 

	
 
Members of the organization could be employees, members of projects
 
represented by the organization, or others doing work to advance the
 
organization's mission—anyone who the organization might want to reimburse or
 
pay.
 

	
 
The system should not make assumptions about specific reimbursement policies
 
or invoicing requirements.  Instead, it should be possible for a bookkeeper
 
or administrator to define follow-up questions and what responses are and are
 
not eligible for reimbursement or payment.  Early versions may require
 
sysadmin-level technical expertise to do this, but ultimately it should be
 
doable by a bookkeeper with appropriate privileges.
 

	
 
## Requirements for first release
 

	
 
### Defining the request form
 

	
 
Requests for payment have four states: In Progress, Submitted,
 
Requests for payment have five states: Pre-Approval, In Progress, Submitted,
 
Accepted, and Rejected.
 

	
 
Administrators can define questions to ask the requestor about the entire
 
request, and about each expense in the request.  The system can display
 
forms, validate answers, and record answers for questions with the following
 
types of answers:
 

	
 
* Text
 
* Boolean (yes/no)
 
* Selection (from a list of values)
 
* Number
 
* Currency (this is probably a string that's validated to have a numeric part plus an optional currency code)
 
* Date
 
* File upload
 

	
 
For each question, the administrator can define any number of conditions to
 
check against the requestor's answer.  When a requestor submits an answer that does
 
not comply with all of the conditions, the answer is flagged in the interface
 
as making the expense non-reimuburseable.  The first release must support the
 
following conditions:
 

	
 
* Boolean: is yes, or is no
 
* Selection: the selected value is in a specific subset of values
 
* Date: the value is N days before and/or after today or a date in another answer
 

	
 
Using these same conditions, the administrator can define questions that are
 
conditional on other questions' answers.  These questions are only presented
 
to the requestor when they submit an answer that meets the specified conditions.
 
For illustration purposes, the common deployment is expected to have
 
relatively few unconditional questions about each expense (type of expense,
 
receipt, amount), and then a series of conditional questions based on those
 
answers (e.g., follow-up questions specific to airfare expenses,
 
accommodations expenses, etc.).
 

	
 
### Requestor workflow
 

	
 
Requestor can log in and see the status of all their requests.  They can also
 
create a new request, which starts in the In Progress state.
 
create a new request, which starts either the Pre-Approval or the In Progress
 
state.
 

	
 
When they view a report, it shows the questions and answers about the entire
 
report, and a list of associated expenses.  Viewing a specific expense
 
similarly shows all the questions and answers about it.
 

	
 
When a report is in the Pre-Approval state, the requestor is submitting not
 
receipts or invoices, but documents regarding potential expenses that have
 
not yet been incurred, but for which organization policies require
 
preapproval by organizational management ahead of time.  The appropriate
 
management representatives are duly notified by the system of pending
 
Pre-Approval requests, and their approval moves the request into the In
 
Progress state.  Their rejection moves the request to the Rejected sate.
 

	
 
When a report is In Progress state, the requestor can edit any answer in the
 
report or an associated expense.  They can also add an expense, which begins
 
by asking them unconditional questions associated with expenses, and then
 
follow-up questions as necessary based on those answers.
 

	
 
When an In Progress report has at least one expense associated with it, and
 
all questions have been answered, the requestor may submit the request for
 
approval.  If any of the answers do not meet the administrator's conditions
 
for payment, the requestor may still submit the request, and provide an
 
explanation for why the request should be paid (e.g., because it was
 
approved in advance).  Once the request is submitted, it moves to the
 
Submitted state.
 

	
 
### Bookkeeper workflow
 

	
 
Bookkeepers can log into the system and see all requests.
 

	
 
When a bookkeeper reviews a Submitted report, they can change the report's
 
state, and include a note explaining why the report was moved to that state
 
(e.g., moved back to In Progress because a specific receipt was insufficient
 
documentation).  When they do this, the system sends e-mail to the requestor
 
letting them know about the change, including the rationale provided by the
 
bookkeeper.
 

	
0 comments (0 inline, 0 general)