I was scanning the Microsoft Community Forums the other day when someone was asking a question about why the Actual Revenue field would get populated even if an Opportunity was closed as “Lost.”
This didn’t make any sense to me, so I logged into a sandbox instance of Dynamics CRM 2016 sp1 and tried it for myself.
I have an Opportunity worth $25000.
I chose the Close As Lost button, the Close Opportunity window appears with the status reason as being “Cancelled” but the Actual Revenue field shows “$25000″…
If the user just hit “OK” without manually clearing out the value, then the Opportunity would close with an Actual Revenue value! This could really skew dashboards, goals and reports and give an inaccurate picture of an organizations sales performance.

This “bug” has been fixed in Dynamics 365, when an Opportunity is closed, the Actual Revenue field is set to $0.
The Workaround

If you are still using Dynamics CRM 2016 sp1, there is a pretty simple workaround that will hold you over until you upgrade.
Go to Processes and add a new synchronous (does not run in background) workflow.
Have it trigger when the Opportunity status changes.
Have it check the status to see if the status = “lost”
Add a step to update the opportunity, set the “Actual Revenue” field to $0. This will run before the Opportunity’s status is fully committed to the database.
When the workflow is activated, now when a user closes an Opportunity as lost, they will still see the “Actual Revenue” field populated, however if they forget (and they likely will) to clear this value, the workflow will take care of it.
The closed opportunity will be properly reflected in the system:
Despite Microsoft’s best efforts at testing and QA, sometimes bugs still slip through. Thankfully the platform is flexible that simple workarounds and fixes can be easily applied.
Hope this helps! (And sorry if you thought your sales were better than they actually are)
Cheers
Nick