{
  "screenshot_id": "IMG_2673",
  "sequence_index": 18,
  "png_path": "v2/img/mobile-app/screens/png/IMG_2673.png",
  "basic_info": {
    "screen_name": "Absence Request",
    "feature_area": "abwesenheiten",
    "ui_elements": [
      "Start date field",
      "End date field",
      "Half first day toggle",
      "Half last day toggle",
      "Type of absence field",
      "Note text area",
      "Request absence button"
    ],
    "functionality_visible": [
      "Request absence",
      "Select start and end dates",
      "Specify half days",
      "Add a note"
    ],
    "navigation_paths": [
      "Tap X to close"
    ],
    "data_displayed": [
      "Start date",
      "End date",
      "Type of absence"
    ],
    "user_actions": [
      "Select start date",
      "Select end date",
      "Toggle half first day",
      "Toggle half last day",
      "Enter note",
      "Tap Request absence"
    ],
    "visible_text_labels": [
      "Request absence",
      "Start",
      "End",
      "Half first day",
      "Half last day",
      "Type of absence",
      "Bezahlter Urlaub",
      "Note",
      "Wednesday, 21.01.2026"
    ],
    "one_line_description": "This screen allows the user to submit a request for an absence, specifying the start and end dates, whether the first and last days are half days, the type of absence, and an optional note.",
    "screenshot_id": "IMG_2673",
    "sequence_index": 18,
    "png_path": "v2/img/mobile-app/screens/png/IMG_2673.png"
  },
  "deep_understanding": {
    "screen_context": "The user sees this screen after selecting the option to request an absence from the shift calendar screen.",
    "user_goal": "The user wants to request time off from work.",
    "business_value": "This screen allows employees to easily request absences, which helps with workforce planning and ensures adequate staffing levels. It streamlines the absence request process, reducing administrative overhead.",
    "state_information": {
      "data_shown": "Start date, end date, options for half-day absences, type of absence, and a note field. These are relevant for specifying the details of the absence request.",
      "editable_fields": [
        "Start date",
        "End date",
        "Half first day (toggle)",
        "Half last day (toggle)",
        "Note (text field)"
      ],
      "read_only_fields": [
        "Type of absence (Bezahlter Urlaub - Paid leave)"
      ],
      "current_state": "The screen is in a state where the user can input the details of their absence request. The start and end dates are pre-filled with the same date (Wednesday, 21.01.2026). The half-day toggles are off."
    },
    "interactions": [
      {
        "action": "Tap the 'Start' date field",
        "outcome": "A date picker appears, allowing the user to select a different start date.",
        "next_state": "Date picker is displayed.",
        "error_possibilities": "The date picker might not load correctly."
      },
      {
        "action": "Tap the 'End' date field",
        "outcome": "A date picker appears, allowing the user to select a different end date.",
        "next_state": "Date picker is displayed.",
        "error_possibilities": "The date picker might not load correctly."
      },
      {
        "action": "Toggle the 'Half first day' switch",
        "outcome": "The 'Half first day' option is enabled or disabled.",
        "next_state": "The 'Half first day' option is either enabled or disabled.",
        "error_possibilities": "The toggle might not respond."
      },
      {
        "action": "Toggle the 'Half last day' switch",
        "outcome": "The 'Half last day' option is enabled or disabled.",
        "next_state": "The 'Half last day' option is either enabled or disabled.",
        "error_possibilities": "The toggle might not respond."
      },
      {
        "action": "Enter text in the 'Note' field",
        "outcome": "The entered text is saved in the 'Note' field.",
        "next_state": "The 'Note' field contains the entered text.",
        "error_possibilities": "The text field might not accept input, or there might be a character limit."
      },
      {
        "action": "Tap the 'Request absence' button",
        "outcome": "The absence request is submitted.",
        "next_state": "The user is likely returned to the shift calendar screen, and the absence request is pending approval.",
        "error_possibilities": "The request might fail due to network issues, invalid data, or other server-side errors. An error message should be displayed."
      },
      {
        "action": "Tap the 'X' icon",
        "outcome": "The absence request screen is closed.",
        "next_state": "The user is returned to the previous screen (shift calendar).",
        "error_possibilities": "None."
      }
    ],
    "edge_cases": [
      "The user might have insufficient remaining vacation days.",
      "The requested dates might conflict with other employees' absences.",
      "The user might try to request an absence in the past.",
      "The user might have different types of absence available (e.g., sick leave, unpaid leave).",
      "The user's role might not allow them to request certain types of absences."
    ],
    "benefits": "The screen simplifies the process of requesting time off, making it easy for employees to submit their requests. It provides clear options for specifying the details of the absence, such as the start and end dates and whether it's a half-day absence.",
    "mental_model": "The screen supports the mental model of a form where the user fills in the required information to submit an absence request. The user understands that they need to provide the start and end dates, specify if it's a half-day absence, and add any relevant notes."
  },
  "relationships": {
    "connects_to": [
      {
        "screen_type": "confirmation",
        "trigger": "User taps 'Request absence'",
        "data_passed": "Absence request details (start date, end date, half-day options, type of absence, note)",
        "purpose": "To confirm the absence request has been submitted"
      },
      {
        "screen_type": "error",
        "trigger": "API error when submitting absence request",
        "data_passed": "Error message",
        "purpose": "To inform the user that the absence request failed"
      },
      {
        "screen_type": "shift calendar",
        "trigger": "User taps the 'X' button",
        "data_passed": "None",
        "purpose": "To return to the shift calendar without submitting the request"
      }
    ],
    "depends_on": [
      {
        "screen_type": "shift calendar",
        "required_data": "User's shift calendar data, user authentication",
        "purpose": "To allow the user to request absence from the calendar view"
      }
    ],
    "data_flow": "This screen receives user's shift calendar data and user authentication from the previous screen. The user inputs absence request details (start date, end date, half-day options, type of absence, note). This data is then sent to the backend when the user taps 'Request absence'.",
    "navigation_patterns": [
      {
        "pattern_type": "modal",
        "description": "This screen appears as a modal overlay on top of the shift calendar. It can be dismissed by tapping the 'X' button or by submitting the request."
      }
    ],
    "feature_dependencies": [
      "abwesenheiten",
      "shift calendar"
    ],
    "alternative_paths": [
      {
        "description": "User might not request absence at all and remain on the shift calendar."
      }
    ]
  },
  "user_flows": {
    "user_journeys": [
      {
        "journey_name": "Request Absence",
        "goal": "Request time off from work",
        "steps": [
          {
            "step_number": 1,
            "screen_type": "Shift calendar",
            "action": "Tap on a date to request absence",
            "outcome": "Absence request screen is displayed"
          },
          {
            "step_number": 2,
            "screen_type": "Absence Request",
            "action": "Select start date",
            "outcome": "Start date is set"
          },
          {
            "step_number": 3,
            "screen_type": "Absence Request",
            "action": "Select end date",
            "outcome": "End date is set"
          },
          {
            "step_number": 4,
            "screen_type": "Absence Request",
            "action": "Toggle half first day (optional)",
            "outcome": "Half first day is set"
          },
          {
            "step_number": 5,
            "screen_type": "Absence Request",
            "action": "Toggle half last day (optional)",
            "outcome": "Half last day is set"
          },
          {
            "step_number": 6,
            "screen_type": "Absence Request",
            "action": "Select type of absence",
            "outcome": "Type of absence is set"
          },
          {
            "step_number": 7,
            "screen_type": "Absence Request",
            "action": "Add a note (optional)",
            "outcome": "Note is added"
          },
          {
            "step_number": 8,
            "screen_type": "Absence Request",
            "action": "Tap on Request absence",
            "outcome": "Absence request is submitted"
          },
          {
            "step_number": 9,
            "screen_type": "Shift Calendar",
            "action": "Return to shift calendar",
            "outcome": "Shift calendar is displayed"
          }
        ],
        "happy_path": true,
        "alternative_paths": []
      }
    ],
    "error_recovery_flows": [],
    "flow_variations": []
  },
  "benefits": {
    "user_benefits": {
      "employee": [
        "Easily request time off directly from the mobile app.",
        "Specify the start and end dates of the absence.",
        "Indicate if the absence is for a half-day on the first or last day.",
        "Select the type of absence (e.g., paid leave).",
        "Add a note to provide additional context for the request."
      ],
      "manager": [
        "Receive absence requests from employees in a structured format.",
        "Have access to all relevant information (dates, type, notes) to make informed decisions.",
        "Streamline the absence approval process."
      ],
      "hr_admin": [
        "Maintain accurate records of employee absences.",
        "Gain insights into absence patterns and trends.",
        "Ensure compliance with company policies and labor laws."
      ],
      "general": [
        "Improved transparency and communication regarding absences.",
        "Reduced administrative burden for both employees and managers.",
        "Centralized platform for managing all absence-related activities."
      ]
    },
    "business_value": {
      "problem_solved": "Manual and inefficient absence request processes that lead to errors, delays, and lack of visibility.",
      "value_proposition": "Streamlines the absence request and approval process, improving efficiency, accuracy, and transparency.",
      "differentiators": "Mobile-first design, integrated with shift calendar, easy-to-use interface, customizable absence types.",
      "impact": "Reduced administrative costs, improved employee satisfaction, better workforce planning, and enhanced compliance."
    },
    "use_cases": [
      {
        "scenario": "An employee needs to request a week of vacation.",
        "user_type": "employee",
        "benefit": "Submits a vacation request quickly and easily through the mobile app, specifying the dates and adding a note for their manager."
      },
      {
        "scenario": "A manager receives an absence request from an employee.",
        "user_type": "manager",
        "benefit": "Reviews the request details (dates, type, notes) and approves or denies it based on team workload and company policy."
      },
      {
        "scenario": "HR needs to track employee absence trends.",
        "user_type": "hr_admin",
        "benefit": "Accesses absence data to identify patterns, manage staffing levels, and ensure compliance with labor laws."
      },
      {
        "scenario": "An employee needs to take a half day off for a doctor's appointment.",
        "user_type": "employee",
        "benefit": "Easily indicates that the absence is for a half-day on either the first or last day of the absence period."
      }
    ],
    "value_statements": [
      "Request time off anytime, anywhere with our mobile app.",
      "Simplify your absence management process and save time.",
      "Gain complete visibility into employee absences for better workforce planning.",
      "Ensure compliance with company policies and labor laws.",
      "Improve employee satisfaction with a streamlined absence request process."
    ]
  }
}