Displaying the contract journey...
I have long had a need to clearly show the progression from an opportunity to a contract and then continue it's jounrney into a renewal opportunity and resulting contract and so on. After many failed attempts at building a custom report type with multiple connected objects I took a new approach and used just a single contract object.
I then pulled the downstream items I needed using "Add field related via lookup" function in the layout. This allowed me to pull the contract's designated renewal opportunity with the fields I needed to report on, and then by following that same relationship I pulled in the renewal opportunity's resulting contract (with the required fields) and the renewal contract's renewal opportunity (with it's required fields).
When I run the report I now have a single row containing the contract (with its source oppty) -> Renewal Oppty -> Resulting Renewal Contract -> Renewal Oppty. By setting the filters I can dictate the contracts that drive the rest of the row data.
The main benefit of this report to that I can now see renewal opportunities that have indeed closed and turned into new contract, yet the originating contract has failed to get updated to renewed status. :-)