Our strategy for feature implementation is to take the hardest features, and those most likely to change our database/object structure, and implement those first. We recently discovered that the Portfolio/Account views were going to be difficult to implement, so we put cost accounting on hold. This is a long post because the concept is very tricky and positively impacts many areas of the software.
There are two separate "views" of the data in FinFolio, one to represent the legal system-of-record data (Account view) and one to mirror the firm's view of the client positions (Portfolio view). This lets us maintain the integrity of the system-of-record data and preserve the layout for data imports, while allowing advisors to specify a completely different reporting structure that can be used for modeling and printing client reports.