diff --git a/data/templates/affiliations.jats b/data/templates/affiliations.jats
new file mode 100644
index 000000000..b6cc4f7d5
--- /dev/null
+++ b/data/templates/affiliations.jats
@@ -0,0 +1,35 @@
+$--
+$-- Affiliations
+$--
+$for(affiliation)$
+
+$-- wrap affiliation if it has a known institution identifier
+$if(affiliation.group)$
+$affiliation.group$
+$endif$
+$if(affiliation.department)$
+$affiliation.department$
+$endif$
+
+$if(affiliation.organization)$
+$affiliation.organization$
+$else$
+$affiliation.name$
+$endif$
+$if(affiliation.isni)$
+$affiliation.isni$
+$endif$
+$if(affiliation.ringgold)$
+$affiliation.ringgold$
+$endif$
+$if(affiliation.ror)$
+$affiliation.ror$
+$endif$
+$if(affiliation.street-address)$,
+$for(affiliation.street-address)$
+$affiliation.street-address$$sep$,
+$endfor$
+$else$$if(affiliation.city)$, $affiliation.city$$endif$$endif$$if(affiliation.country)$,
+$affiliation.country$$endif$
+
+$endfor$
diff --git a/data/templates/article.jats_publishing b/data/templates/article.jats_publishing
index b64425fd8..4bdb3f278 100644
--- a/data/templates/article.jats_publishing
+++ b/data/templates/article.jats_publishing
@@ -101,14 +101,15 @@ $endif$
$if(author.email)$
$author.email$
$endif$
-$if(author.aff-id)$
-
-$endif$
+$for(author.affiliation)$
+
+$endfor$
$if(author.cor-id)$
*
$endif$
$endfor$
+${ affiliations.jats() }
$endif$
$if(article.author-notes)$
diff --git a/data/templates/default.jats_articleauthoring b/data/templates/default.jats_articleauthoring
index f86bb2d3b..94c929548 100644
--- a/data/templates/default.jats_articleauthoring
+++ b/data/templates/default.jats_articleauthoring
@@ -34,14 +34,15 @@ $endif$
$if(author.email)$
$author.email$
$endif$
-$if(author.aff-id)$
-
-$endif$
+$for(author.affiliation)$
+
+$endfor$
$if(author.cor-id)$
*
$endif$
$endfor$
+${ affiliations.jats() }
$endif$
$if(copyright)$
diff --git a/doc/jats.md b/doc/jats.md
index 63c740521..99de0b3bf 100644
--- a/doc/jats.md
+++ b/doc/jats.md
@@ -39,6 +39,12 @@ Metadata Values
Used as the contents of the [``][elem:given-names]
element.
+ `affiliation`
+ : list of affiliation identifiers; marks the organizations
+ with which an author is affiliated. Each identifier in this
+ list must also occur as the `id` of an affiliation listed in
+ the top-level `affiliation` list.
+
`cor-id`
: identifier linking to the contributor's correspondence
information. The info itself must be stored in as an item in
@@ -48,6 +54,73 @@ Metadata Values
[`rid`][attr:rid] attribute is set to `cor-`, where
`` is the stringified value of this attribute.
+`affiliation`
+: the list of organizations with which contributors are
+ affiliated. Each institution is added as an [``] element to
+ the author's contrib-group.
+
+ The fields are given in the order in which they are included in
+ the output.
+
+ `id`
+ : internal identifier; used as the [``] element's `id`
+ value, prefixed with `aff-`.
+
+ `group`
+ : name of the research group or other low-level organizational
+ structure; used as value of an [``] element with
+ [`content-type`][attr:content-type] set to `group`.
+
+ `department`
+ : name of the department or other mid-level organizational
+ structure; used as value of an [``] element with
+ [`content-type`][attr:content-type] set to `dept`.
+
+ `organization`
+ : name of the company, university, or other top-level
+ organizational structure; used as value of an
+ [``] element. The institution element is wrapped
+ in an [``] element; any identifiers, like
+ `ringgold` or `ror`, are added to the wrapper and must hence
+ belong to this organization (not the department or group).
+
+ `isni`
+ : International Standard Name Identifier of the organization.
+ Added via an [``] element with
+ [`institution-id-type`](attr:institution-id-type) set to
+ `ISNI`.
+
+ `ringgold`
+ : [Ringgold] identifier of the organization. Added via an
+ [``] element with
+ [`institution-id-type`](attr:institution-id-type) set to
+ `Ringgold`.
+
+ `ror`
+ : Research Organization Registry identifier of the
+ organization. Added via an [``] element with
+ [`institution-id-type`](attr:institution-id-type) set to
+ `ROR`.
+
+ `street-address`
+ : The organization's street address; each list item is wrapped
+ in an [``] element, separated by a comma and
+ space (`, `).
+
+ `city`
+ : City in which the organization is located; used only if
+ `street-address` is not given, in which case the value is
+ wrapped in a [``] element.
+
+ `country`
+ : Country in which the organization is located; used as the
+ value of a [``] element.
+
+ `country-code`
+ : Two letter ISO-3166-1 country identifier; used as the
+ [`country`][attr:country] attribute in element [``]
+ (if the latter is present).
+
`copyright`
: Licensing and copyright information. This information is
rendered via the [``][elem:permissions] element.
@@ -258,7 +331,10 @@ Required metadata values:
`journal.pmc`.
- One or more of `journal.pissn`, `journal.eissn`.
+[Ringgold]: https://ringgold.com/
+[attr:content-type]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/content-type.html
[attr:fn-type]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/fn-type.html
+[attr:institution-id-type]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/institution-id-type.html
[attr:iso-8601-date]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/iso-8601-date.html
[attr:journal-id-type]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/journal-id-type.html
[attr:kwd-group-type]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/attribute/kwd-group-type.html
@@ -297,3 +373,11 @@ Required metadata values:
[elem:subject]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/subject.html
[elem:surname]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/surname.html
[elem:xref]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/xref.html
+
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/addr-line.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/aff.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/city.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/country.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/institution-id.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/institution-wrap.html
+[``]: https://jats.nlm.nih.gov/publishing/tag-library/1.2/element/institution.html