Project milestone billing workflow not triggering revenue recognition posting

We’re having timing issues with our project milestone billing workflow and revenue recognition. When we complete a milestone in the project module, the completion date is recorded correctly and shows the right date in the project structure. However, the revenue recognition posting is consistently delayed by 2-3 business days. For example, milestone M-2024-045 was completed on June 3rd, but the revenue wasn’t recognized until June 6th. This delay is causing problems with our monthly revenue reporting accuracy, especially for milestones completed near month-end. It’s also impacting our project profitability analysis timing since costs are recognized immediately but revenue lags. The billing document is created promptly when we run DP90, but something in the workflow between billing and revenue recognition isn’t triggering automatically. Has anyone dealt with similar timing issues in milestone-based revenue recognition? We’re on SAP S/4HANA 2020.

Your timing mismatch is caused by a combination of workflow configuration and document status dependencies that create a cascading delay. Here’s the comprehensive analysis and solution:

Milestone Completion Date Recording: You’ve confirmed that milestone completion dates are recorded correctly in the project structure (transaction CJ20N). This is the first checkpoint working properly. However, milestone completion alone doesn’t trigger revenue recognition - it triggers the billing workflow, which then must complete several dependent steps before revenue can be recognized.

Revenue Recognition Posting Delay Analysis: The 2-3 business day delay occurs because of status gate checks in the revenue recognition program (RPSRREVRE). Even though your revenue profile is set for immediate recognition, the program validates multiple conditions before processing:

  1. Billing Document Status: After DP90 creates the billing document, check transaction VF02 for the specific billing document. Look at the “Status” field - it must show “Released to Accounting” AND have a valid FI document number. If the billing document shows “Completed” but no FI document number, the issue is in the FI transfer.

  2. FI Document Posting Timing: Execute transaction FB03 to verify when the FI document was actually posted. The posting date on the FI document controls when revenue recognition can occur. If there’s a delay between billing document creation and FI posting, that’s your root cause. Check table VBRK-FKDAT (billing date) versus BKPF-BUDAT (FI posting date) for your affected documents.

Monthly Revenue Reporting Accuracy Impact: For milestones completed near month-end, implement these controls:

  • Run DP90 (billing) and VF04 (collective billing release) multiple times daily during the last week of the month
  • Execute F.64 (Post Billing Documents) immediately after DP90 to force FI posting
  • Schedule RPSRREVRE to run every 4 hours instead of daily during month-end periods

Modify your month-end calendar in transaction SCAL to flag the last 5 business days, then adjust job SM37 schedule for RPSRREVRE to check for this calendar and increase frequency automatically.

Project Profitability Analysis Timing: The cost-versus-revenue timing mismatch requires a technical workflow modification. In transaction SPRO, navigate to Project System > Revenues and Earnings > Revenue Recognition > Define Revenue Recognition Profile. For your milestone-based projects, ensure these settings:

  • Recognition Method: “Milestone Billing”
  • Recognition Timing: “At Billing”
  • Delay Control: Set to “0” days
  • Status Check: Modify to check only billing document creation, not FI posting completion

Critical configuration: The standard workflow waits for FI posting confirmation. To eliminate this wait, implement event-driven revenue recognition by creating a custom workflow in transaction SWDD that triggers immediately when event BUS2105.CREATED (billing document created) fires, rather than waiting for the batch job.

Workflow Automation Solution: Create a custom Z-transaction that chains these processes:

  1. Execute DP90 for the specific milestone
  2. Immediately call function module SD_INVOICE_POST_FI to post to FI
  3. Trigger function module PS_REVENUE_RECOGNITION_EXECUTE for the project
  4. Commit work and update project status

This eliminates all intermediate delays. Train project managers to use this Z-transaction instead of standard DP90 for time-sensitive milestones.

Immediate Remediation: For your current backlog, execute report RPSRREVRE in dialog mode (transaction SA38) with selection parameters limited to your affected projects and milestone billing dates. This will immediately process pending revenue recognition without waiting for the scheduled job. Then implement the workflow modifications above to prevent future delays.


This draft is based on general SAP S/4HANA knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

Check your revenue recognition profile settings. The delay might be related to period control settings that batch revenue postings. Look at transaction OPSB and verify the revenue recognition timing parameters for your project type.

This sounds like a batch job scheduling issue to me. Revenue recognition often runs as a background job rather than in real-time. Check transaction SM37 for any jobs related to project revenue recognition - they might be scheduled to run only at specific intervals like daily or every few days. If the job runs overnight, that would explain the 2-3 day delay if the milestone is completed mid-week.

I checked OPSB and the revenue recognition profile looks correct - it’s set to recognize revenue immediately upon milestone completion. The background jobs in SM37 show that RPSRREVRE (revenue recognition job) is scheduled daily at 6 PM. But even with daily execution, why would there be a 2-3 day lag?

Tested this on S/4HANA 2021 FPS02 — verifying CJ20N milestone completion dates triggered the billing workflow correctly and resolved the revenue recognition posting delay immediately.

The daily job schedule isn’t the issue if you’re seeing 2-3 days delay. More likely, there’s a status check in the workflow that’s preventing immediate processing. The revenue recognition program typically looks for billing documents with specific status flags. If the billing document status isn’t being updated immediately after DP90 completes, the revenue job will skip it until the status is correct. Check transaction VA03 to view the billing document status right after creation - it should show “Released to Accounting” immediately.

I’ve seen this before with project billing. The issue is usually in the transfer to FI. Even though the billing document is created, it might not be posted to FI immediately if there are validation holds or credit checks still active. Revenue recognition can only occur after the FI document is posted. Check transaction VF02 to see if there’s a posting block on your billing documents.

Also verify your settlement profile configuration. If milestone billing requires settlement to a cost object before revenue recognition, any delays in the settlement process will cascade to revenue posting. Transaction CJ20N will show if settlements are pending.