Coverage Calendar Training Planner Configuration Form

by Admin 54 views
Coverage Calendar Training Planner Configuration: A Comprehensive Guide

Hey guys! Today, we're diving deep into configuring the Coverage Calendar Training Planner. Whether you're a seasoned athlete or just starting your fitness journey, understanding how to set up your planner is crucial for achieving your goals. This guide will walk you through each section of the configuration form, ensuring you can tailor it to your specific needs. Let's get started!

Understanding the Planner Configuration Form

The planner configuration form is a YAML-based structure that allows you to customize various aspects of your training schedule. Think of it as the blueprint for your fitness plan. By tweaking different parameters, you can optimize the planner to align with your lifestyle, preferences, and training objectives. This form is super flexible, allowing you to control everything from the type of workouts scheduled to the days you prefer for long runs. The key is to understand each setting and how it impacts your overall plan.

To get started, you'll typically copy the entire block of YAML code into your editor or directly into a chat window. From there, you can modify the fields you want to change while leaving the rest as they are. This approach makes it easy to focus on the specific settings that matter most to you. Don't worry if some fields seem unfamiliar; I'm here to break them down for you. Let's explore the different sections of the configuration form and see how you can make the most of them.

Metadata: Setting the Stage

The metadata section is where you provide basic information about yourself and your project. It's like the title page of a book, giving context to the planner's configuration. Let's break down the key components:

  • user: This field is optional but recommended. You can enter your GitHub username, login, or even just your display name. This helps in identifying who the planner configuration belongs to, especially in collaborative environments.
  • project_name: This is where you name your training project. In this case, it's set to "Coverage-Calendar Training Planner," but you can customize it to reflect your specific goals or event, such as "Marathon Training" or "Off-Season Conditioning." This name helps you keep track of different planning configurations you might have.

This section, while simple, lays the groundwork for your entire plan. By providing your name and project name, you ensure clarity and organization. It's a small step, but it makes a big difference in the long run.

Anchor: Setting Your Training Timeline

The anchor section is all about setting the timeline for your training. It defines the framework around which your workouts will be scheduled. There are two primary modes:

  • mode: This setting determines how your training plan is anchored. It can be set to either "race" or "start".
    • race: If you're training for a specific race or event, you'll set the mode to "race". This mode focuses on peaking your fitness for a particular date.
    • start: If you prefer to start your training on a specific date and build from there, you'll use the "start" mode.
  • race_date: If you've chosen the "race" mode, this is where you'll enter the date of your race in YYYY-MM-DD format. This date serves as the anchor point, and the planner will work backward to create your training schedule.
  • start_date: If you've selected the "start" mode, this field is where you input the date you want your training to begin, also in YYYY-MM-DD format.

Choosing the right mode and setting the correct date are crucial. It's the foundation upon which your entire training plan is built. Whether you're counting down to race day or building a consistent routine, the anchor section helps you stay on track.

Week: Customizing Your Weekly Structure

The week section allows you to customize the structure of your training week. It might seem like a minor detail, but it can significantly impact how your plan fits into your lifestyle. The primary setting here is:

  • week_start: This determines which day your training week begins. The default is "Monday," but you can change it to "Sunday" if that better aligns with your schedule. For example, if you have a long run planned for Saturdays and prefer to view your week from Sunday to Saturday, setting week_start to "Sunday" makes perfect sense.

This seemingly small adjustment can make a big difference in how you perceive your training week and how well it integrates with your daily life. It's all about making the planner work for you.

Plan Schema: Advanced Workout Customization

The plan_schema section delves into more advanced customization options, allowing you to fine-tune how your workouts are structured and interpreted. It's where you can introduce placeholders and variables to make your training plan even more personalized.

  • support_placeholders: Setting this to true enables the use of placeholders in your workout descriptions. Placeholders, like {6}, can represent variables that change based on your training progress or other factors. This is a powerful feature for creating dynamic workouts.
  • variables_map: This is an optional map where you can define your variables. For instance, you could define { LONG: 10 }, where LONG represents a 10-mile run. By leaving this empty, you skip this advanced feature, which is perfectly fine for many users. However, if you're looking to add a layer of sophistication to your plan, this is the place to do it.

These features are designed for those who want to take their training customization to the next level. If you're new to the planner, you might consider skipping this section initially and revisiting it as you become more comfortable with the tool.

Preferences: Tailoring Your Training Experience

The preferences section is where you personalize your training experience. It allows you to specify your preferred days for long runs, manage workout frequency, and even consider the schedules of others. This section is crucial for ensuring your training plan is not only effective but also sustainable and enjoyable.

Let's break down the key preferences:

  • preferred_long_day: This setting allows you to specify your preferred day for long runs. You can choose "Saturday," "Sunday," or leave it blank for no preference. For many, weekends are ideal for long runs due to fewer work commitments. Selecting a preferred day helps the planner schedule your longest workout when you're most likely to have the time and energy.
  • allow_weekday_long: This boolean setting determines whether the planner can schedule long runs on weekdays. If set to false, long runs will only be scheduled on your preferred weekend day or the other weekend day if your preferred day is unavailable. If set to true, the planner has more flexibility but might schedule long runs on busier weekdays.
  • one_workout_per_day: When set to true, this enforces a rule of one main workout per day. This is a common preference for those who want to avoid overtraining and ensure adequate recovery. If set to false, the planner might schedule multiple workouts on the same day, which could be suitable for experienced athletes with higher training capacity.
  • min_days_between_hard: This integer value sets the minimum number of days between hard workouts. The default is 2, which is a good starting point for most people. Hard workouts place significant stress on the body, and adequate recovery is essential. Adjusting this value can help you balance intensity and recovery.
  • recovery_after_long: This integer specifies the preferred number of easy or rest days after a long run. Long runs are taxing, and this setting helps ensure you have enough recovery time. A value of 1 or 2 is common, allowing your body to repair and rebuild.
  • persons_to_honor: This is a list of people whose schedules the planner should consider. For example, if you want to avoid scheduling workouts during your partner's work shifts, you can add their name here (e.g., ["Kristin"]). This feature is incredibly useful for those who want to coordinate their training with the commitments of others.
  • blocked_days: This list allows you to specify dates on which you want to block workouts. These might be days you know you'll be traveling, working late, or simply need a break. Entering dates in YYYY-MM-DD format ensures that the planner won't schedule any workouts on those days.

By carefully configuring these preferences, you can create a training plan that fits seamlessly into your life. It's about more than just workouts; it's about building a sustainable and enjoyable training routine.

Availability Model: Defining Your Time Constraints

The availability_model section is where you define your time constraints, allowing the planner to understand when you're available for workouts. This section is particularly useful if you have a busy schedule with varying levels of availability throughout the week.

Here are the key components:

  • use_category_and_hours: When set to true, this tells the planner to infer your availability (heavy, partial, or off) based on your calendar categories and the number of hours you have scheduled for other activities. This is a powerful feature for automatically adapting your training plan to your daily commitments.
  • heavy_hours_threshold: This integer specifies the minimum number of hours that qualify as a "heavy" day. For example, if set to 6, any day with 6 or more hours of scheduled activities will be considered a heavy day, and the planner will be less likely to schedule intense workouts on those days.
  • partial_hours_threshold: This integer sets the threshold for a "partial" day. If set to 3, days with 3 or more hours of scheduled activities will be considered partial days. The planner might schedule easier workouts on these days.
  • treat_categories_as_heavy: This is a list of substrings that, if present in a calendar category, imply a heavy workload. Common examples include "work," "shift," and "k-work." If an event in your calendar includes any of these substrings, the planner will treat that day as heavy.
  • treat_categories_as_off: Similarly, this list specifies substrings that indicate a day off. Examples include "off," "pto," and "vacation." If a calendar event includes these terms, the planner will recognize it as a day when you're unavailable for workouts.

By configuring these settings, you ensure that your training plan aligns with your real-world commitments. The planner can intelligently adapt to your schedule, optimizing your training while respecting your time constraints.

Constraints: Setting Hard Boundaries

The constraints section allows you to set hard boundaries for your training plan. These constraints are non-negotiable rules that the planner must adhere to, ensuring your safety and well-being.

  • enforce_hard_constraints: When set to true, this setting tells the planner to strictly enforce the constraints you define. This is crucial for preventing overtraining and respecting blocked days.
  • blocked_day_penalty: This integer represents the penalty for scheduling a workout on a blocked day. A very large number, such as 10000, effectively forbids the planner from scheduling workouts on those days. This ensures that your blocked days are truly off-limits.

By setting these constraints, you create a safety net for your training plan. You can rest assured that the planner will respect your boundaries, preventing it from scheduling workouts when you're unavailable or at risk of overtraining.

Scoring Weights: Fine-Tuning Workout Priorities

The scoring_weights section is where you fine-tune the planner's priorities when scheduling workouts. These weights influence how the planner balances different factors, such as workout intensity, recovery, and preferred days. Lower numbers indicate less strictness, giving the planner more flexibility.

Let's explore the key scoring weights:

  • heavy_long: This weight applies to long runs scheduled on heavy days. A higher weight indicates a greater preference for avoiding long runs on busy days.
  • heavy_hard: Similarly, this weight applies to hard workouts on heavy days. A higher weight means the planner will try to avoid scheduling intense workouts when you have other commitments.
  • heavy_easy: This weight relates to easy workouts on heavy days. A lower weight here suggests that the planner has more flexibility in scheduling easy workouts even on busy days.
  • preferred_day_bonus: This negative weight provides a bonus for scheduling workouts on your preferred days. A more negative value indicates a stronger preference for those days.
  • weekend_long_bonus: This negative weight encourages the planner to schedule long runs on weekends. A more negative value reflects a stronger preference for weekend long runs.
  • after_long_hard: This weight applies to scheduling hard workouts after long runs. A higher weight indicates a greater preference for avoiding intense workouts after taxing long runs.
  • min_recovery_hard_penalty: This weight penalizes scheduling hard workouts too close together. A higher weight strongly discourages scheduling hard workouts without sufficient recovery time.

By adjusting these weights, you can influence the overall balance of your training plan. It's about finding the sweet spot that aligns with your preferences and training goals. Experimenting with these settings can help you optimize your plan for maximum effectiveness and enjoyment.

UI: Customizing the User Interface

The ui section allows you to customize the user interface of the planner, influencing how you interact with suggestions and apply changes.

  • suggestions_mode: This setting determines how workout suggestions are presented. The default is "overlay," which displays suggestions as overlays on your calendar. The alternative is "direct-apply," which directly applies suggestions to your calendar.
  • require_apply_to_persist: When set to true, this requires you to explicitly apply changes for them to be saved. This provides an extra layer of control, preventing accidental modifications.
  • show_score_breakdown: Setting this to true displays a breakdown of the scoring for each suggested workout. This helps you understand why the planner made certain recommendations and make informed decisions.

These UI settings are all about enhancing your user experience. Choose the options that make the planner most intuitive and enjoyable for you.

Persistence: Saving and Exporting Your Plan

The persistence section controls how your training plan is saved and exported.

  • persist_to_localstorage: When set to true, this saves your plan to your browser's local storage. This means your plan will be available even if you close the browser and reopen it later.
  • export_ics_by_default: Setting this to false prevents the planner from automatically exporting your plan to an ICS file (a standard calendar format). If you want to manually export your plan, you can do so at any time.

These settings ensure that your hard work is saved and that you have control over how your plan is exported and shared.

Advanced: Exploring Algorithm Options

The advanced section delves into more complex settings, primarily related to the algorithm used by the planner.

  • algorithm: This setting determines the algorithm used to generate your training plan. The default is "greedy," which is a good starting point for most users. The alternative is "global" (CSP/ILP), which uses more advanced optimization techniques but may require more processing time.
  • allow_weekly_local_rebalance: When set to true, this allows the planner to rebalance your training load within each week. This can help ensure a more even distribution of intensity and recovery.

These advanced settings are designed for users who want to delve deeper into the inner workings of the planner. If you're new to the tool, it's perfectly fine to stick with the default settings.

Notes: Important Reminders and Tips

The notes section provides important reminders and tips for configuring your training plan. It's worth reviewing these notes to ensure you're making the most of the planner.

  • Setting race_date and start_date: The notes remind you to set either the race_date or start_date. If you leave both blank, the planner will prompt you to set one, as these dates are crucial for anchoring your plan.
  • Honoring shifts for multiple people: To honor shifts for multiple people, you should add their names under preferences.persons_to_honor. This ensures that the planner considers their schedules when creating your plan.
  • Interactive checklist option: If you prefer a simpler interactive checklist instead of YAML, you can reply with "I want checklist," and the planner will provide you with that option.

These notes are like a helpful guide, ensuring you don't miss any important steps and that you're aware of all the features available to you.

Conclusion: Crafting Your Perfect Training Plan

Configuring the Coverage Calendar Training Planner might seem daunting at first, but with a clear understanding of each section, you can create a highly personalized and effective training plan. Remember, it's all about tailoring the planner to your specific needs, preferences, and goals. By experimenting with different settings and paying attention to the feedback the planner provides, you can optimize your training for maximum results. Happy planning, and best of luck with your fitness journey!