diff --git a/doc/source/zuul.rst b/doc/source/zuul.rst
index 5560317..0ec9f88 100644
--- a/doc/source/zuul.rst
+++ b/doc/source/zuul.rst
@@ -634,8 +634,11 @@
       - name: plugin-triggering
         jobprefix: plugin-foobar
 
-You can pass several parameters to a template. A ``parameter`` value will be
-used for expansion of ``{parameter}`` in the template strings.
+You can pass several parameters to a template. A ``parameter`` value
+will be used for expansion of ``{parameter}`` in the template
+strings. The parameter ``name`` will be automatically provided and
+will contain the short name of the project, that is the portion of the
+project name after the last ``/`` character.
 
 Multiple templates can be combined in a project, and the jobs from all
 of those templates will be added to the project.  Individual jobs may
diff --git a/tests/fixtures/layout.yaml b/tests/fixtures/layout.yaml
index 2e113c2..98dfe86 100644
--- a/tests/fixtures/layout.yaml
+++ b/tests/fixtures/layout.yaml
@@ -112,14 +112,14 @@
      - '{projectname}-test2'
   - name: test-three-and-four
     check:
-     - '{projectname}-test3'
-     - '{projectname}-test4'
+     - '{name}-test3'
+     - '{name}-test4'
   - name: test-five
     check:
-     - '{projectname}-test5'
+     - '{name}-{something}-test5'
   - name: test-five-also
     check:
-     - '{projectname}-test5'
+     - '{name}-{something}-test5'
 
 projects:
   - name: org/project
@@ -213,11 +213,10 @@
       - name: test-one-and-two
         projectname: project
       - name: test-three-and-four
-        projectname: project
       - name: test-five
-        projectname: project
+        something: foo
       - name: test-five-also
-        projectname: project
+        something: foo
     check:
       - project-test6
 
diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py
index 8fb8419..48f2281 100755
--- a/tests/test_scheduler.py
+++ b/tests/test_scheduler.py
@@ -1971,14 +1971,14 @@
                          'SUCCESS')
         self.assertEqual(self.getJobFromHistory('project-test2').result,
                          'SUCCESS')
-        self.assertEqual(self.getJobFromHistory('project-test3').result,
-                         'SUCCESS')
-        self.assertEqual(self.getJobFromHistory('project-test4').result,
-                         'SUCCESS')
-        # project-test5 should run twice because two templates define it
+        self.assertEqual(self.getJobFromHistory('layered-project-test3'
+                                                ).result, 'SUCCESS')
+        self.assertEqual(self.getJobFromHistory('layered-project-test4'
+                                                ).result, 'SUCCESS')
+        # test5 should run twice because two templates define it
         test5_count = 0
         for job in self.worker.build_history:
-            if job.name == 'project-test5':
+            if job.name == 'layered-project-foo-test5':
                 test5_count += 1
                 self.assertEqual(job.result, 'SUCCESS')
         self.assertEqual(test5_count, 2)
diff --git a/zuul/layoutvalidator.py b/zuul/layoutvalidator.py
index 70c7101..bc82501 100644
--- a/zuul/layoutvalidator.py
+++ b/zuul/layoutvalidator.py
@@ -156,6 +156,9 @@
             # Craft the templates schemas
             schema = {v.Required('name'): v.Any(*template_names)}
             for required_param in template_parameters:
+                # special case 'name' which will be automatically provided
+                if required_param == 'name':
+                    continue
                 # add this template parameters as requirements:
                 schema.update({v.Required(required_param): str})
 
diff --git a/zuul/scheduler.py b/zuul/scheduler.py
index 6eca846..96bd624 100644
--- a/zuul/scheduler.py
+++ b/zuul/scheduler.py
@@ -286,6 +286,7 @@
 
         for config_project in data.get('projects', []):
             project = Project(config_project['name'])
+            shortname = config_project['name'].split('/')[-1]
 
             # This is reversed due to the prepend operation below, so
             # the ultimate order is templates (in order) followed by
@@ -296,6 +297,7 @@
                 tpl = project_templates.get(
                     requested_template.get('name'))
                 # Expand it with the project context
+                requested_template['name'] = shortname
                 expanded = deep_format(tpl, requested_template)
                 # Finally merge the expansion with whatever has been
                 # already defined for this project.  Prepend our new
