Building software is hard. Estimating the effort beforehand is even harder. In order to estimate the effort of anything, you need to understand it. While this is pretty straight forward when planning a trip or how long it might take to do a paint job, this is very difficult with something that still needs to be created.
One of the best ways to get around this is by creating mockups or wireframes that describe the interface of what you want to have built. But even then a lot can fall through the cracks. In order to seal your wireframes by putting them in a form that is easy to discuss, each interaction will be written in the form of a userstory. A userstory is a simple sentence of the form: "As a <type of user>, I want to/must/can <interaction with the tool> so that <expected result>.” This is the most granular form of describing a requirement for a piece of software.
contrails provides not only an easy way to write and manage userstories for your project, but it allows to estimate the effort in a very similar way to the classic scrum-poker: Each member of the team decides on his or her estimate, adds it and only once every team-member has added an estimate which can be discussed with the entire team, including the client.
The result is a transparent and comparable estimation on the effort of building a piece of software.