diff --git a/docsource/modules150-160.rst b/docsource/modules150-160.rst
index 65b02bfaa0bd..c009cf1d5fa4 100644
--- a/docsource/modules150-160.rst
+++ b/docsource/modules150-160.rst
@@ -168,7 +168,7 @@ Module coverage 15.0 -> 16.0
+-------------------------------------------------+----------------------+-------------------------------------------------+
| hr_attendance | Done | |
+-------------------------------------------------+----------------------+-------------------------------------------------+
-| hr_contract | | |
+| hr_contract | Done | |
+-------------------------------------------------+----------------------+-------------------------------------------------+
| hr_expense | | |
+-------------------------------------------------+----------------------+-------------------------------------------------+
diff --git a/openupgrade_scripts/scripts/hr_contract/16.0.1.0/noupdate_changes.xml b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/noupdate_changes.xml
index 0470193785c2..114ee75a1cef 100644
--- a/openupgrade_scripts/scripts/hr_contract/16.0.1.0/noupdate_changes.xml
+++ b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/noupdate_changes.xml
@@ -4,6 +4,6 @@
Enable the user to see and manage the contracts from Employee application.
-
+
diff --git a/openupgrade_scripts/scripts/hr_contract/16.0.1.0/post-migration.py b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/post-migration.py
new file mode 100644
index 000000000000..a6724d87cde0
--- /dev/null
+++ b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/post-migration.py
@@ -0,0 +1,9 @@
+# Copyright 2023 Coop IT Easy (https://coopiteasy.be)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from openupgradelib import openupgrade
+
+
+@openupgrade.migrate()
+def migrate(env, version):
+ openupgrade.load_data(env.cr, "hr_contract", "16.0.1.0/noupdate_changes.xml")
diff --git a/openupgrade_scripts/scripts/hr_contract/16.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/upgrade_analysis_work.txt
new file mode 100644
index 000000000000..ceab028fa7e5
--- /dev/null
+++ b/openupgrade_scripts/scripts/hr_contract/16.0.1.0/upgrade_analysis_work.txt
@@ -0,0 +1,23 @@
+---Models in module 'hr_contract'---
+model hr.contract.type (moved to hr)
+# DONE: in migration script of module hr
+
+---Fields in module 'hr_contract'---
+hr_contract / hr.contract.type / __last_update (datetime) : module is now 'hr' ('hr_contract')
+hr_contract / hr.contract.type / _order : _order is now 'sequence' ('id')
+hr_contract / hr.contract.type / _order : module is now 'hr' ('hr_contract')
+hr_contract / hr.contract.type / display_name (char) : module is now 'hr' ('hr_contract')
+hr_contract / hr.contract.type / name (char) : module is now 'hr' ('hr_contract')
+# DONE: in migration script of module hr
+
+---XML records in module 'hr_contract'---
+NEW ir.model.access: hr_contract.access_hr_contract_hr_employee_manager
+# NOTHING TO DO: New role with less privilege. No need to move user to this group in migration script. See: https://github.com/odoo/odoo/commit/9e14c112eef3b4098c0756b8da17a7253ea0c4d3
+
+DEL ir.model.access: hr_contract.access_hr_contract_type_manager [renamed to hr module]
+# DONE: in migration script of module hr
+
+NEW ir.rule: hr_contract.ir_rule_hr_contract_employee_manager (noupdate)
+NEW ir.rule: hr_contract.ir_rule_hr_contract_manager (noupdate)
+NEW res.groups: hr_contract.group_hr_contract_employee_manager (noupdate)
+# NOTHING TO DO