HTML Ruby Other
Latest commit e670f53 Jul 25, 2016 @chrisroos chrisroos committed on GitHub Merge pull request #2657 from alphagov/document-use-of-custom-google-…

Document use of custom Google Analytics Tracking ID
Failed to load latest commit information.
app Add index page listing all flows Jul 21, 2016
bin Fix Style/ExtraSpacing violations Apr 19, 2016
config Add index page listing all flows Jul 21, 2016
db Initial blank rails app. Oct 27, 2011
doc Add "Debugging" section to GA tracking document Jul 25, 2016
lib Removes Denmark code from outcome. Jul 21, 2016
log Initial blank rails app. Oct 27, 2011
public Remove dangling symlinks Aug 13, 2012
script Enable Lint/AssignmentInCondition cop & fix violations Jun 1, 2016
test Remove redundant regression test artefacts for calculate-state-pension Jul 25, 2016
vendor Fix js errors in chrome 35 May 27, 2014
.gitignore Don't track coverage directory Jun 29, 2012
.rubocop.yml Remove .rubocop_todo.yml and related documentation Jun 1, 2016
.ruby-version Upgrade Ruby from v2.2.4 to 2.3.0 Mar 10, 2016 Merge pull request #2013 from alphagov/update-documentation-about-con… Oct 15, 2015
Gemfile Update gds-api-adapters from v25.1.0 to v30.6.0 Jun 2, 2016
Gemfile.lock Update gds-api-adapters from v25.1.0 to v30.6.0 Jun 2, 2016 Correct attribution of copyright Mar 11, 2015 Add link to Analytics doc from README Jul 25, 2016
Rakefile Disable logging in test Jul 10, 2012
app.json Add basic app.json for Heroku deployments Jul 21, 2016 Fix Style/ExtraSpacing violations Apr 19, 2016 Make executable Dec 8, 2014 Exclude existing Rubocop violations using auto-generated config Mar 30, 2016 Add Apr 2, 2014 Add a handy script to start up the app in development. Feb 2, 2012 Update Heroku settings from preview to integration Jan 21, 2016

Smart Answers

Smart answers are a great tool for content designers to present complex information in a quick and simple way. Defining what they are – decision trees? calculators? tools? is immaterial – what they do is provide a reusable technical framework to build a quick and simple answer to a complex question.

Read more in Lisa Scott's GDS blog post.



Student Finance Forms screenshot

Live examples


  • Smart Answer: The flow, questions and outcomes.

  • Flow: Defines the questions, outcomes and the rules for navigating between them.

  • Landing page: Contains a description of the Smart Answer and the "Start now" button that leads to the first question.

  • Question page: Contains an individual question that's asked in order to help arrive at at an outcome.

  • Outcome page: Contains the result of the Smart Answer based on responses to individual questions.

Technical documentation

This is a Ruby on Rails application that contains:

  • A Rails application to serve Smart Answers
  • A DSL for creating Smart Answers
  • The Smart Answers that appear on GOV.UK

NOTE. This application doesn't use a database and as such it does not include the ActiveRecord Railtie in application.rb.


  • alphagov/static: provides static assets (JS/CSS) and the GOV.UK templates.
  • nodejs/node: provides JS runtime for precompiling assets for deployment

Running the application


Running the test suite

$ bundle exec rake

Smart Answers

 Smart Answer flow development

Smart Answers app development



MIT License