Project Pulse has a nice feature which allows project managers to forecast expected project expenses (Estimated Charges). Examples of such might include travel expenses, equipment purchases or payments to vendors.
Each forecasted expense contains an Amount field which is your cost field and a Bill Amount field which is the value to be charged back to the customer. These values can be the same if expenses are not marked up, or different if they are. Of course, expenses have an IsBillable attribute to determine whether or not to bill the customer for that expense.
Project Pulse provides financial metrics for estimated project costs which include labor costs and items entered as estimated expenses. When actual expenses occur, you can link the actual expense back to the estimated expense and Project Pulse will compute the remaining estimated expense for each forecasted expense item.
Entering estimated expenses will improve the accuracy of revenue forecasting and it should be best practice to use this capability of Project Pulse.