travel refund assistant
There are various issues with travel refunds, e.g.
- missing explanations on invoices
- mixing of events
- missing receipts
- travelling by car without prior approval
- tracking them
- very much belated replies
My idea is to have an - ideally localized - assistant that
- does sanity checks, by
- validating input fields (e.g. if date older than three months, show warning)
- show checkboxes (yes, I have sent stuff to Berlin)
- creates a pre-defined PDF to print
- automatically files a ticket in Redmine via e-mail
- automatically determines whether SPI or Berlin are applicable
This has the additional benefit that people can upload their documents in an encrypted form.
Development work has to be mainly carried out by Cloph in Silverstripe, but Sophie, can you start collecting the most important things you need to know upfront, so we can draft how such an assistant could look like?
Also adding Mike, who could help out with ideas on the design and workflow.
#2 Updated by Sophie Gautier about 1 year ago
The Assistant you describe seems complete to my eyes, I also would like t have a way to track the activity of a request other than by mail (keeping a sorted history is really difficult by mail).
Redmine ticket should contain:
- a "arrived" note when I know documents are in Berlin
- mail exchanges when it's not complete
- a "paid" note when I enter the refund
- a "in webdav" note when I've uploaded the Berlin form/receipts
- closed when all is done.
#4 Updated by Florian Effenberger about 1 year ago
Another checkbox we should add:
"I confirm that my bank account is correct and under my name"
#5 Updated by Florian Effenberger 12 months ago
- Status changed from New to Feedback
- Assignee changed from Sophie Gautier to Christian Lohmaier
- Target version changed from Q1/2017 to Q2/2017
Cloph will be the one to carry this out, planning with Q2 to make it come to life
Putting this ticket to "feedback". Next steps are:
- Florian to give final feedback and make a proposal for the workflow
- then Cloph then to turn this into a Silverstripe form that creates a Redmine ticket
#6 Updated by Florian Effenberger 12 months ago
Another topic to mention is by when refund requests need to be handed in, as we got a chunk of them quite late
Proposal is 3 months after the event or 1,5 months after the end of the year, whatever comes first
We should add a note on signing of the document - some people start printing out the form, writing their name in via computer, and send it to Berlin, which is a pointless exercise...
One more note: The per diem rules (we usually don't pay it due to administrative overhead, and as often food is provided somehow) are not clear enough.
#8 Updated by Christian Lohmaier 6 months ago
still set to feedback - so what is the final set of fields that should be queried?
#9 Updated by Florian Effenberger 6 months ago
For an approximate view of the resulting form, see https://wiki.documentfoundation.org/images/5/5f/Tdf-travel_refundform_2012-07-20.ots
The other fields mentioned should just be sent via e-mail to us, the form should keep the above layout
For the notes/mails Sophie mentioned, nothing to do in the assistant, we will handle it in Redmine
The explanations could either be done in small writing, or by tooltips
Mandatory fields should be distinctable from optional fields by some means
We plan to make the tool localizable, so maybe directly work with some string file
Let's leave out #4 for the moment ("automatically determines whether SPI or Berlin are applicable")
Title: Travel refund request
This website helps you in filling in the travel refund request to get reimbursed. As per our <a href="https://wiki.documentfoundation.org/TDF/Policies/Travel">travel policy</a>, we are required to get both the original receipts as well as the printed and signed form in Berlin before making a payment.
To ease creating the request, and help us check it before you snailmail your documents to us, please fill in all applicable fields below, and - if possible - add scanned copies of your receipts. After a first check, we will get back to you as soon as possible. When everything is in order, we will confirm, and you can send the documents to us for a timely refund.Beneficiary
- Last Name(s), mandatory field
- First Name(s), mandatory field
- Street Address, mandatory field
- ZIP Code, mandatory field
- City, mandatory field
- State, optional field
- Country, mandatory field (a text field is fine, no need for a pre-filled dropdown)
- E-mail address, mandatory field
- IBAN, optional field, description "If you have an IBAN, please provide it"
- Account Number, optional field, description "If you have a account number, please provide i.
- BIC/SWIFT Code, optional field, description "If you have a BIC/SWIFT code, please provide it"
- Bank Branch Number, optional field, description "ABA routing number, BACS, CHAPS, Sort Code, Transit Number, BSB"
- Bank Name, mandatory field, description "The name of your bank."
- Bank Street Address, optional field, description, "Your bank's street address"
- Bank ZIP Code, optional field, description, "Your bank's ZIP code"
- Bank City, optional field, description, "The city your bank is located in"
- Bank Country, optional field, description "The country your bank is located in"
- checkbox "I confirm that my bank account is correct and under my name", mandatory field, description "You hereby confirm the account is your personal one."
Duplicate "banking details" as "Intermediary Bank" with all fields optional, and a paragraph "In case you already know you need an intermediate bank for receiving payments, please let us know"Trip
- Event Name, mandatory field, description "The name of the event you have attended. Please file one refund request per event. Examples: LibreOffice Conference 2017, talk at local school"
- Reason, mandatory field, description "What you did at the event. Examples: Deliver a speech, booth service"
- Start of Trip, mandatory field, with date and time, description "When your trip started, assuming Berlin time zone unless otherwise stated. Example: 2017-02-03, 18:00"
- End of Trip, mandatory field, with date and time, description "When your trip ended, assuming Berlin time zone unless otherwise stated. Example: 2017-02-03, 18:00"
- if the trip has been more than three months ago, please let the user not proceed and show a message:
"Your trip is longer than three months old. TDF refunds in a timely fashion, in order to keep our budgets up to date. Please e-mail us at email@example.com for how to proceed."
- have a table named "Itemized expenses" with e.g. 10 lines with the following columns, nothing is mandatory here * Item, description "Please describe the item to refund. Examples: Shared hotel room for four nights (therefore only 50% requested), train ride, airplane fees" * Date of expense, description "When you paid for the expense, for airplane tickets usually is long before the flight. Example: 2017-01-07" * Invoice Number, description "Any number that is on the invoice to identify it" * Amount, description "The amount you ask to be refunded for, plus the currency. Examples: 25 USD, 10 €" * Add a upload facility per line, description "If possible, please upload scanned copies of your receipt so we can check them before you send them to us via snailmail." * Subtotal in €, description "The subtotal to refund, converted to €"
- checkbox: "I request refund for car drive. I confirm I have read the travel policies". Not mandatory, but if not checked, the following fields in that section will be disabled. Description: "Rental Cars: Car rentals are expensive, so other forms of transportation should be considered when practical. Members will be allowed to rent a car while out of town provided that the cost is less than alternative methods of transportation. Personal Cars: The use of personal cars is permitted, if this is the most economic transportation. Using a personal car in any case needs a signed travel report, including kilometers travelled. TDF will refund 0.30€ per driven kilometer. TDF asks everyone to use the most cost efficient end-to-end means of transport for yourself, team-mates and materials. When cheaper public transportation is available, it should be preferred. Transporting event materials or excessive transfer times might be reasons for exemption. If in any doubt, please get confirmation before travel."
- Starting place, mandatory if checkbox is enabled, description "Where you started your trip. Example: Munich"
- Destination, mandatory if checkbox is enabled, description "The (final) destination for your trip. Example: Hannover"
- Distance kilometers, mandatory if checkbox is enabled, description "How many kilometers you have driven in total. Example: Munich-Hannover is about 640km one way. Driven kilometers total are twice that, 1280km"
- out of that, calculate the car drive refund: distance kilometers*0,30 €
- I hereby declare that all of these expenses are valid reimbursable expenditures.
- City and Date
- Signature (please sign by hand)
#11 Updated by Florian Effenberger 3 months ago
Let's also have a look at https://github.com/openSUSE/travel-support-program which might help out a lot
#12 Updated by Florian Effenberger about 2 months ago
Two more thoughts, because that is currently nagging me a lot:
- We don't accept 15MB+ pictures from the mobile, and should enforce a sane limit (at least per file)
- Files should be named in proper form so they can be attributed - having a dozen randomly-named PDFs per request is not gonna fly