diff --git a/payload_consumer/filesystem_verifier_action.cc b/payload_consumer/filesystem_verifier_action.cc
index e88337b..dfbe513 100644
--- a/payload_consumer/filesystem_verifier_action.cc
+++ b/payload_consumer/filesystem_verifier_action.cc
@@ -80,7 +80,9 @@
 
 namespace {
 const off_t kReadFileBufferSize = 128 * 1024;
-constexpr float kVerityProgressPercent = 0.6;
+constexpr float kVerityProgressPercent = 0.3;
+constexpr float kEncodeFECPercent = 0.3;
+
 }  // namespace
 
 void FilesystemVerifierAction::PerformAction() {
@@ -239,6 +241,8 @@
     LOG(ERROR) << "Failed to write verity data";
     Cleanup(ErrorCode::kVerityCalculationError);
   }
+  UpdatePartitionProgress(kVerityProgressPercent +
+                          verity_writer_->GetProgress() * kEncodeFECPercent);
   CHECK(pending_task_id_.PostTask(
       FROM_HERE,
       base::BindOnce(&FilesystemVerifierAction::WriteVerityData,
@@ -333,8 +337,9 @@
   // verity writes and partition hashing. Otherwise, the entire progress bar is
   // dedicated to partition hashing for smooth progress.
   if (ShouldWriteVerity()) {
-    UpdatePartitionProgress(progress * (1 - kVerityProgressPercent) +
-                            kVerityProgressPercent);
+    UpdatePartitionProgress(
+        progress * (1 - (kVerityProgressPercent + kEncodeFECPercent)) +
+        kVerityProgressPercent + kEncodeFECPercent);
   } else {
     UpdatePartitionProgress(progress);
   }
diff --git a/payload_consumer/verity_writer_android.cc b/payload_consumer/verity_writer_android.cc
index 479231d..31d2875 100644
--- a/payload_consumer/verity_writer_android.cc
+++ b/payload_consumer/verity_writer_android.cc
@@ -150,6 +150,10 @@
   return current_step_ == EncodeFECStep::kComplete;
 }
 
+double IncrementalEncodeFEC::ReportProgress() const {
+  return static_cast<double>(current_round_) / num_rounds_;
+}
+
 namespace verity_writer {
 std::unique_ptr<VerityWriterInterface> CreateVerityWriter() {
   return std::make_unique<VerityWriterAndroid>();
@@ -312,6 +316,11 @@
   }
   return false;
 }
+
+double VerityWriterAndroid::GetProgress() {
+  return encodeFEC_.ReportProgress();
+}
+
 bool VerityWriterAndroid::EncodeFEC(FileDescriptor* read_fd,
                                     FileDescriptor* write_fd,
                                     uint64_t data_offset,
diff --git a/payload_consumer/verity_writer_android.h b/payload_consumer/verity_writer_android.h
index 0d48803..1aaafd5 100644
--- a/payload_consumer/verity_writer_android.h
+++ b/payload_consumer/verity_writer_android.h
@@ -55,6 +55,7 @@
   void UpdateState();
   bool Finished() const;
   void Reset();
+  double ReportProgress() const;
 
  private:
   brillo::Blob rs_blocks_;
@@ -88,7 +89,7 @@
   bool Finalize(FileDescriptor* read_fd, FileDescriptor* write_fd) override;
   bool IncrementalFinalize(FileDescriptor* read_fd,
                            FileDescriptor* write_fd) override;
-
+  double GetProgress() override;
   bool FECFinished() const override;
   // Read [data_offset : data_offset + data_size) from |path| and encode FEC
   // data, if |verify_mode|, then compare the encoded FEC with the one in
diff --git a/payload_consumer/verity_writer_interface.h b/payload_consumer/verity_writer_interface.h
index 8b4f080..3ebe768 100644
--- a/payload_consumer/verity_writer_interface.h
+++ b/payload_consumer/verity_writer_interface.h
@@ -55,6 +55,9 @@
   // Returns true once FEC data is finished writing
   virtual bool FECFinished() const = 0;
 
+  // Gets progress report on FEC write
+  virtual double GetProgress() = 0;
+
  protected:
   VerityWriterInterface() = default;
 
