.. _event-admin-guide: =========================================== Race Contract Administrator's Guide =========================================== .. toctree:: :maxdepth: 4 :caption: Contents: The system is used to manage bookings and contracts for the Steeplechasers race services business. The primary functions provided by the system include: * online availability calendar * race database, providing online schedule and details of races and clients * electronic contract generation, signing and archival capabilities * Email system designed to automate the communication with race directors, race services administrators and race services leads * Automated initialization of the preliminary schedule for the current year from the previous year's bookings This system is designed to significantly reduce the administrative workload required to manage the club's race services business. .. _event-email-conventions: Email Conventions ====================== All emails generated by the system use raceservices@steeplechasers.org as the from address. Emails that are generated at a race director’s direction from the FSRC website are addressed TO raceservices@steeplechasers.org. This email address is associated with one or more individuals in the steeplechasers.org organization, and those individuals will receive the email. When responding to this email, individuals should ALWAYS respond from their steeplechasers.org email address and copy raceservices@steeplechasers.org to ensure that all communication is shared with the race services team. .. _event-life-cycle: Contract Race Life Cycle ============================ Summary: #. Race Director contacts FSRC to request race services, either through direct email or a form on the FSRC website #. Race services admin corresponds with race director, obtaining required details of client, race, and requested services. #. Race services admin enters data into contractility system and uses system to generate and send contract #. Race Director agrees to contract electronically #. FSRC Treasurer generates invoice #. Race Director and FSRC Race Lead receive automated emails 5 days before contract race with logistical information #. Race Director receives email after contract race with link to survey #. Race is automatically renewed for following year and placed in renewed pending state until FSRC and race director resume correspondence Detail: This describes the life cycle for contract race management. * New Race: Race director sends Race Services Request email * see :ref:`contact-new-race` * Renewed Event: Race director responds to the :ref:`post-event-email` or :ref:`post-event-email-reminder` * if the race director says that the race will not be held * from :ref:`admin-calendar-view` click on the :term:`contract race` or from :ref:`event-overview-view`, select the :term:`contract race`, click **Edit**, then click **Delete** * if the race director says they're not sure, or they don't have all the required information yet * from :ref:`admin-calendar-view` click on the :term:`contract race` or from :ref:`event-overview-view`, select the :term:`contract race`, click **Edit**, change **State** to *tentative*, then click **Update** * Details are learned from the race director about an :term:`contract race` that is in the system but not yet committed * see :ref:`race-details-confirmed` * from :ref:`admin-calendar-view` click on the :term:`contract race` or from :ref:`event-overview-view`, select the :term:`contract race`, click **Edit** * make sure **State** is set to *tentative* * update the details which are known, then click **Update** * All details are known for the :term:`contract race`, and the race director is ready to move forward * see :ref:`race-details-confirmed` * click **Update and Send Contract** to generate a contract * :ref:`contract-email` is automatically generated to the race director * About 5 days before the :term:`contract race` * :ref:`pre-event-coordination-email` is automatically generated, to the race director and contract race :term:`lead` * About 2 days before the :term:`contract race` * a reminder email automatically generated, just to the :term:`contract race` :term:`lead` * About 5 days after the :term:`contract race` * for :term:`contract races ` which have *finishline* or *coursemarking* :term:`services `, :ref:`post-event-email` is automatically generated * regardless of service, the :term:`contract race` is :term:`renewed ` * see :ref:`post-event-processing` for additional details * If the :term:`contract race` is still in *renewed-pending* state 120 days before the expected date of the race * :ref:`post-event-email-reminder` is automatically generated to the race director * If the :term:`contract race` is still in *renewed-pending* state 30 days before the expected date of the race * an email is automatically generated to raceservices@steeplechasers.org to indicate contract race is still outstanding [pending implementation of https://github.com/louking/contracts/issues/165] * admin should delete the contract race manually * from :ref:`admin-calendar-view` click on the :term:`contract race` or from :ref:`event-overview-view`, select the :term:`contract race`, click **Edit** to get to the :ref:`edit-event-view`, then click **Delete** .. _event-state-flow: Event State Flow ================= .. see https://www.graphviz.org/ see http://graphs.grevian.org/ .. graphviz:: digraph{ "renewed-pending" -> "tentative" [label="RD responds to renewal email"] "(New Race)" -> "tentative" [label="RD requests date"] "tentative" -> "tentative" [label="RD and admin confirm info"] "tentative" -> "contract-sent" [label="Send Contract"] "contract-sent" -> "committed" [label="RD agrees to contract"] "contract-sent" -> "canceled" [label="RD cancels race"] "committed" -> "canceled" [label="RD cancels race"] "committed" -> "renewed-pending" [label="5 days after contract race"] "renewed-pending" -> "(delete)" [label="RD says no go"] "tentative" -> "(delete)" [label="RD says no go"] "renewed-pending" [color=cyan, style=filled] "tentative" [color=green, style=filled] "contract-sent" [color=cyan, style=filled] "committed" [color=cyan, style=filled] "canceled" [color=green, style=filled] "(delete)" [color=green, style=filled] "manual" [color=green, style=filled] "automatic" [color=cyan, style=filled] } .. _use-cases: Event Use Cases (What To Do...) ================================== .. _contact-new-race: When We Learn About a New Race ------------------------------ We learn about a completely new :term:`race` that we have never provided services for. The inquiry could arrive either through email generated by the :ref:`race-services-request-view`, a direct email, etc. Often there is incomplete information. Regardless, you should create the :term:`contract race` with whatever information you have. You can create an :term:`contract race` in one of two ways. 1. From :ref:`admin-calendar-view` click on the :term:`contract race` date 2. From :ref:`event-overview-view` click **New** Once the form is displayed * fill in as much information as you have available to you * click **Create** **If the Race has Finish Line Services** - Race directors may be contacting you with incomplete information, and if so you will have to chase them down to find all the relevant bits. This may have to be done over time as often when they first contact us they may not have all of the information themselves. **If the Race has Only Premium Promotion** - Premium promotion is executed through the communications group rather than race services. We'll still be using this tool to track that. It is expected that the communication group will look at the **contractility** data periodically to determine what races are to be promoted. See :ref:`contract-for-premium-promotion` for more details. .. _contact-legacy-race: When We're Contacted for a Race We've Done Before ------------------------------------------------------ If we've done a :term:`race` before, there will already be a database entry for the :term:`race`, and likely the :term:`contract race` was :term:`renewed ` after the previous year's race. You need to verify the current details with the race director and update the :term:`contract race` which was created as a result of the automatic renewal process. You can find the contract race to edit in one of two ways. 1. from :ref:`event-overview-view`, use the Search box at the top of the table, and enter the race name * you should see all the :term:`contract races ` associated with this :term:`race` * click on the :term:`contract race` for the coming year, then click **Edit** 2. from :ref:`admin-calendar-view`, navigate to the date of the :term:`race's ` :term:`contract race` * click on the :term:`contract race` Now you can edit the :term:`contract race` with the current details and when ready send the contract. * fill in as much information as you have available to you * change **State** to *tentative* .. note:: this is very important, if you don't do this the race director will receive extra confusing emails and we'll lose track of what we're doing * click **Update** * or if you're ready to generate a contract, click **Update and Send Contract** .. _race-director-questions: When the Race Director has Questions -------------------------------------- Some questions you get will have to go through the Race Services/Equipment Coordinator, as you won't be able to handle them -- generally these are questions about how to manage a race rather than contract related stuff. Probably best way to handle this is to forward to the Race Services/Equipment Coordinator, copying the RD, with appropriate text that the Race Services/Equipment Coordinator is best suited to respond. If the Race Services/Equipment Coordinator gets information from them which needs to be in the database and you're not copied, he'll need to get it to you. .. _race-details-confirmed: When Race Details are Confirmed by Race Director ------------------------------------------------ As the details are confirmed by the race director, use the :ref:`edit-event-view` to update the :term:`contract race`. When all the details are known and the race director is ready, generate the contract. You can edit an :term:`contract race` in one of two ways. 1. from :ref:`admin-calendar-view` navigate to the :term:`contract race` date and then click on the :term:`contract race` 2. from :ref:`event-overview-view` click **Edit** Before you can generate a contract for finish line services, you need at least the following: :Race: the name of the :term:`race` :Date: the date of the :term:`contract race` :Course: the :term:`course` the :term:`race` will be run on :Start Time: time of day that the main :term:`contract race` starts :Distance: distance for the :term:`race` :Client: the name of the :term:`client` :Services: one or more :term:`services ` which the client is contracting for :Max Participants: this is used to determine the pricing for finishline :term:`services ` (this is set to 200 for a new race or a race that had fewer than 201 finishers the previous year. If it is a repeat race and the number of finishers in the previous year was greater than 200, it’s the number of finishers the previous year rounded up to the next 100. :Lead: the leader who will run the finish line operation on the day of the :term:`contract race`. This needs to be finalized well before the contract race so that emails are sent properly to all concerned Before you can generate a contract for premium promotion service (only), you need at least the following: :Race: the name of the :term:`race` :Date: the date of the :term:`contract race` :Course: the :term:`course` the :term:`race` will be run on :Client: the name of the :term:`client` :Services: one or more :term:`services ` which the client is contracting for The remaining fields are useful as well, and should be filled in if applicable and known. .. _agreement-accepted-race-treasurer: When Race Director Accepts Agreement (Treasurer) ------------------------------------------------- When a race director accepts the agreement, the treasurer will receive an email. The :term:`contract race` will automatically be transitioned into the *committed* :term:`state`. An invoice should be generated to the :term:`client` as indicated by the financial policies. Once an invoice is generated, the treasurer should click the **Invoice Sent** button on the :ref:`edit-event-view`. .. _agreement-accepted-race-services: When Race Director Accepts Agreement (Race Services Admin) ----------------------------------------------------------- When a race director accepts the agreement, the race services admin will receive an email. The :term:`contract race` will automatically be transitioned into the *committed* :term:`state`. The :term:`lead` for the race needs to be identified well before the contract race so that resources are allocated correctly and emails are sent to the appropriate people. Generally we should have a commitment for a :term:`lead` before sending the contract to the race director, however the system does not enforce this. .. _contract-for-premium-promotion: When We Contract for Premium Promotion (Communications) ---------------------------------------------------------- The communications team handles all premium promotion, regardless of whether the race has also contracted for other services. To determine the contract races for the next premium promotion email, use the :ref:`event-overview-view` filters: :States: select *committed* :Date Range: From the day the email goes out, To [3 months] after that :Service(s): select *premiumpromotion* The table will be filtered to only the :term:`contract races ` which should be in the next email. The **CSV** button can be used to download these :term:`contract races `, if desired. .. _changes-to-committed-agreement: When Changes Need to be Made to a Committed Agreement --------------------------------------------------------------- Occasionally, after the race director has agreed to the contract, there needs to be a change. E.g., if the race director decides on premium promotion after the initial agreement, a change needs to be made. When the contract is in *committed* :term:`state`, the **Update and Send Contract** button is desensitized. If it's necessary to change the contract after the initial agreement, simply edit the :term:`contract race`, make the needed changes (e.g., add *premiumpromotion*), and change the :term:`state` to *tentative*. By changing the :term:`state`, the **Update and Send Contract** button will be sensitized, and can be clicked to send another contract. Note once this is done, the system voids the previous contract and it is not accessible. .. _exception-required: When an Exception to Standard Availability Rules is Needed ---------------------------------------------------------------- Normally, contract races are allowed on weekends and not allowed on weekdays. There are some holidays during the week when we want to allow contract races, and some weekend days we don't want to allow contract races. For these, we need to configure :term:`exceptions `. To create exceptions, use the :ref:`event-exceptions-view`.