diff --git a/src/constants/progress-bar-mapper.js b/src/constants/progress-bar-mapper.js
new file mode 100644
index 00000000..c3a69c59
--- /dev/null
+++ b/src/constants/progress-bar-mapper.js
@@ -0,0 +1,82 @@
+export const pageProgressMapper = {
+ 'duplicate-check': {
+ percent: 10
+ },
+ 'policy-holder-details': {
+ percent: 15
+ },
+ 'policy-vehicles': {
+ percent: 15
+ },
+ 'policy-endorsements': {
+ percent: 15
+ },
+ 'vehicle-selection': {
+ percent: 20
+ },
+ 'vehicle-damage': {
+ percent: 25
+ },
+ 'part-questions': {
+ percent: 30
+ },
+ 'molding-questions': {
+ percent: 35
+ },
+ 'vehicle-parts': {
+ percent: 35
+ },
+ 'capability-questions': {
+ percent: 35
+ },
+ 'vehicle-lookup': {
+ percent: 40
+ },
+ 'vin-lookup': {
+ percent: 45
+ },
+ 'license-plate-lookup': {
+ percent: 45
+ },
+ 'address-lookup': {
+ percent: 45
+ },
+ 'address-vehicles': {
+ percent: 45
+ },
+ 'coverage-statement': {
+ percent: 50
+ },
+ 'provider-preference': {
+ percent: 55
+ },
+ 'service-location': {
+ percent: 60
+ },
+ 'tpa-search': {
+ percent: 65
+ },
+ 'schedule-page': {
+ percent: 70
+ },
+ 'contact-details': {
+ percent: 75
+ },
+ 'service-packages': {
+ percent: 80
+ },
+ 'payment-method': {
+ percent: 85
+ },
+ 'payment-page': {
+ percent: 95
+ },
+ 'tpa-confirmation': {
+ percent: 100
+ },
+ 'order-confirmation': {
+ percent: 100
+ }
+};
+
+export const getProgressBarPercentage = (page) => pageProgressMapper[page]?.percent || 0;
diff --git a/src/iss-components/progress-bar/progress-bar.vue b/src/iss-components/progress-bar/progress-bar.vue
new file mode 100644
index 00000000..d8006b5a
--- /dev/null
+++ b/src/iss-components/progress-bar/progress-bar.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+