












<!DOCTYPE html>
<html lang="en" class="govuk-template app-html-class">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>
    
    
  What type of vehicles do you intend to manage?

    -
    Apply to be temporarily recognised as a transport manager for vans - GOV.UK
  </title>


  <link rel="shortcut icon" href="/assets/images/favicon.ico" type="image/x-icon" />



  
<!--[if !IE 8]><!-->
       <link href="/assets/all.css" rel="stylesheet">
  <!--<![endif]-->

  
  
  <!--[if IE 8]>
    <link href="/assets/all-ie8.css" rel="stylesheet">
  <![endif]-->

  
  <!--[if lt IE 9]>
    <script src="/assets/html5shiv.js"></script>
  <![endif]-->

  <link rel="icon" href="/assets/images/favicon.ico" type="image/x-icon"/>
  <script src="/assets/cookie-manager.js"></script>

  




</head>
<body class="govuk-template__body app-body-class" data-test="My value" data-other="report:details">
  <script nonce="zLj0NIbjVPhS19Q2VS9Tqw==">
    document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');
  </script>






<div class="text hidden theme__cookie-success-message-grey" id="cookie-preference-success">
    <div class="govuk-width-container">
        <div class="govuk-!-padding-top-5  success-message" aria-labelledby="cm_cookie_notification radio-analytics-on-label radio-analytics-off-label" role="alert" tabindex="-1">
            <h3 class="govuk-heading-m">Your cookie settings were saved</h3>
            <p class="govuk-body">Government services may set additional cookies and, if so, will have their own cookie policy and banner.
                <br>
                <a id="continue-link" href="/">Continue where you left off</a>
            </p>
        </div>
    </div>
</div>


  <script nonce="zLj0NIbjVPhS19Q2VS9Tqw==">

    const link = document.getElementById('continue-link');
    link.addEventListener('click', function(event) {
      event.preventDefault();
      window.history.back();
    });

  </script>


<div class="hidden theme__cookie-success-message-grey" id="accept-all-cookies-success">
    <div class="govuk-width-container">
        <div class="govuk-!-padding-top-5 govuk-!-padding-bottom-7">
            <span class="govuk-body"  >You’ve accepted all cookies. You can <a href="/cookie-preferences">change your cookie settings</a> at any time.</span>

            <span id="cookie-accept-all-success-banner-hide" class="govuk-body u-float-right"><a href="#">Hide</a></span>
        </div>
    </div>
</div>

<script type="text/javascript" nonce="zLj0NIbjVPhS19Q2VS9Tqw==">
    document.getElementById('cookie-accept-all-success-banner-hide').onclick = function(){
        document.getElementById('accept-all-cookies-success').classList.add('hidden');
    };
</script>

<form id="cm_cookie_notification" class="hidden">


<div class="govuk-cookie-banner " data-nosnippet role="region" aria-label="Cookies on Apply to be temporarily recognised as a transport manager for vans">
    
    

    <div class="govuk-cookie-banner__message govuk-width-container"
    >

    <div class="govuk-grid-row">
      <div class="govuk-grid-column-two-thirds">
        
        <h2 class="govuk-cookie-banner__heading govuk-heading-m">Cookies on Apply to be temporarily recognised as a transport manager for vans</h2>
        

        <div class="govuk-cookie-banner__content">
  <p class="govuk-body">We use some essential cookies to make this service work.</p>
  <p class="govuk-body">We’d also like to use analytics cookies so we can understand how you use the service and make improvements.</p>
</div>
      </div>
    </div>

      
      <div class="govuk-button-group">
        
          
            <button value="Accept all" type="submit" class="govuk-button" data-module="govuk-button" id="cookie-accept-submit">
              Accept all cookies
            </button>
          
        
          
            
              
              
                
              
              <a class="govuk-link govuk-button" href="/cookie-preferences" id="set-cookie-preferences">Set cookie preferences</a>
            
          
        
      </div>
      
    </div>
  
</div>

</form>




  <a href="#main-content" class="govuk-skip-link">Skip to main content</a>




  <header class="govuk-header " role="banner" data-module="govuk-header">
  <div class="govuk-header__container govuk-width-container">
    <div class="govuk-header__logo">
      <a href="https://www.gov.uk" class="govuk-header__link govuk-header__link--homepage">
        <span class="govuk-header__logotype">
          <!--[if gt IE 8]><!-->
          <svg
            aria-hidden="true"
            focusable="false"
            class="govuk-header__logotype-crown"
            xmlns="http://www.w3.org/2000/svg"
            viewBox="0 0 132 97"
            height="30"
            width="36"
          >
            <path
              fill="currentColor" fill-rule="evenodd"
              d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z"
            ></path>
          </svg>
          <!--<![endif]-->
          <!--[if IE 8]>
          <img src="/assets/images/govuk-logotype-crown.png" class="govuk-header__logotype-crown-fallback-image" width="36" height="32">
          <![endif]-->
          <span class="govuk-header__logotype-text">
            GOV.UK
          </span>
        </span>
        
      </a>
    </div>
    
    <div class="govuk-header__content">
    
    <a href="https://apply-temporary-transport-manager.service.gov.uk" class="govuk-header__link govuk-header__link--service-name">
      Apply to be temporarily recognised as a transport manager for vans
    </a>
    
    
    </div>
    
  </div>
</header>

  

<div class="govuk-width-container ">



  <div class="govuk-phase-banner">
  <p class="govuk-phase-banner__content">
    <strong class="govuk-tag govuk-phase-banner__content__tag">
      alpha
    </strong>
    <span class="govuk-phase-banner__text">
      This is a new service – your <a class="govuk-link" href="https://www.smartsurvey.co.uk/s/TICCW8/">feedback</a> will help us to improve it.
    </span>
  </p>
</div>




  <a href="https://www.gov.uk/apply-temporary-transport-manager" class="govuk-back-link">Back</a>



 <main class="govuk-main-wrapper govuk-main-wrapper--auto-spacing" id="main-content" role="main">




  <div class="govuk-grid-row">
    <div class="govuk-grid-column-two-thirds">

      
      

      

      <form action="" method="POST" id="weight-form" novalidate>

        


<div class="govuk-form-group">

  <fieldset class="govuk-fieldset" aria-describedby="weight-hint">
  
  <legend class="govuk-fieldset__legend govuk-fieldset__legend--l">
  
    What type of vehicles do you intend to manage?
  
  </legend>
  

  <div id="weight-hint" class="govuk-hint">
    Select all that apply.
  </div>


  <div class="govuk-checkboxes"
    data-module="govuk-checkboxes">
    
      
          
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight" name="weight" type="checkbox" value="vansOrOtherLGVs">
            <label class="govuk-label govuk-checkboxes__label" for="weight">
        Vans or other light goods vehicles (up to and including 3,500kg)
      </label>
            
          </div>
          
        
      
    
      
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight-2" name="weight" type="checkbox" value="vansTrailers">
            <label class="govuk-label govuk-checkboxes__label" for="weight-2">
        Vans towing trailers (up to and including 3,500kg)
      </label>
            
          </div>
          
        
      
    
      
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight-3" name="weight" type="checkbox" value="carsTrailers">
            <label class="govuk-label govuk-checkboxes__label" for="weight-3">
        Cars towing trailers (up to and including 3,500kg)
      </label>
            
          </div>
          
        
      
    
      
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight-4" name="weight" type="checkbox" value="hgvs">
            <label class="govuk-label govuk-checkboxes__label" for="weight-4">
        Heavy goods vehicles (over 3,500kg)
      </label>
            
          </div>
          
        
      
    
      
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight-5" name="weight" type="checkbox" value="gvsTrailers">
            <label class="govuk-label govuk-checkboxes__label" for="weight-5">
        Goods vehicles and trailers (over 3,500kg)
      </label>
            
          </div>
          
        
      
    
      
        
          <div class="govuk-checkboxes__divider">or</div>
      
    
      
        
          
          
          
          
          <div class="govuk-checkboxes__item">
            <input class="govuk-checkboxes__input" id="weight-7" name="weight" type="checkbox" value="none" data-behaviour="exclusive">
            <label class="govuk-label govuk-checkboxes__label" for="weight-7">
        I do not intend to manage these types of vehicle
      </label>
            
          </div>
          
        
      
    
  </div>
  

</fieldset>


</div>


        

  
    
  

<button type="submit" class="govuk-button" data-module="govuk-button">
  Continue
</button>


      </form>

    </div>
  </div>

</main>
</div>

  <footer class="govuk-footer " role="contentinfo">
  <div class="govuk-width-container ">
    
    <div class="govuk-footer__meta">
      <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
        
          <h2 class="govuk-visually-hidden">Support links</h2>
          
            <ul class="govuk-footer__inline-list">
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/terms-and-conditions">
                    Terms and conditions
                  </a>
                </li>
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/cookies">
                    Cookies
                  </a>
                </li>
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/privacy">
                    Privacy notice
                  </a>
                </li>
              
                <li class="govuk-footer__inline-list-item">
                  <a class="govuk-footer__link" href="/accessibility">
                    Accessibility statement
                  </a>
                </li>
              
            </ul>
          
          
        
        <svg
          aria-hidden="true"
          focusable="false"
          class="govuk-footer__licence-logo"
          xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 483.2 195.7"
          height="17"
          width="41"
        >
          <path
            fill="currentColor"
            d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145"
          />
        </svg>
        <span class="govuk-footer__licence-description">
          All content is available under the
          <a
            class="govuk-footer__link"
            href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/"
            rel="license"
          >Open Government Licence v3.0</a>, except where otherwise stated
        </span>
      </div>
      <div class="govuk-footer__meta-item">
        <a
          class="govuk-footer__link govuk-footer__copyright-logo"
          href="https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/"
        >© Crown copyright</a>
      </div>
    </div>
  </div>
</footer>








 
  <script src="/assets/all.js" ></script>
  <script nonce="zLj0NIbjVPhS19Q2VS9Tqw==">
    window.GOVUKFrontend.initAll()
    window.cookieManager.init({
            "delete-undefined-cookies": true,
            "user-preference-cookie-name": "cm-user-preferences",
            "user-preference-cookie-secure": false,
            "user-preference-saved-callback" : function () {
                document.getElementById('cookie-preference-success').classList.remove('hidden');
                window.scrollTo(0,0);
            } ,
            "user-preference-cookie-expiry-days": 365,
            "user-preference-configuration-form-id": "cookie-manager-form",
            "cookie-banner-id": "cm_cookie_notification",
            "cookie-banner-visibility-class": "hidden",
            "cookie-banner-visible-on-page-with-preference-form": false,
            "cookie-banner-saved-callback": function () {
                document.getElementById('accept-all-cookies-success').classList.remove('hidden');
            },
            "set-checkboxes-in-preference-form": true,
            "cookie-manifest": [
                {
                    "category-name": "essential",
                    "optional": false,
                    "cookies": [
                        "cm-user-preferences",
                        "incap_ses_",
                        "nlbi_",
                        "visid_incap_"
                    ]
                },
                {
                    "category-name": "analytics",
                    "optional": true,
                    "cookies": [
                        "_ga",
                        "_gat",
                        "_gid"
                    ]
                }
            ]
        });
  </script>



</body>
</html>
