diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 2d94861058f6fd355e85e70ed2c7a706baf9bee2..5b7a35493f854adf3f6641f4b9b75be7f5152b8e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1,14 +1,13 @@
 # This configuration was generated by
 # `rubocop --auto-gen-config --exclude-limit 0`
-# on 2017-02-22 10:58:40 -0600 using RuboCop version 0.46.0.
+# on 2017-02-22 12:40:11 -0600 using RuboCop version 0.47.1.
 # The point is for the user to remove these configuration records
 # one by one as the offenses are removed from the code base.
 # Note that changes in the inspected code, or installation of new
 # versions of RuboCop, may require this file to be generated again.
 
-# Offense count: 1
-# Cop supports --auto-correct.
-Performance/RedundantBlockCall:
+# Offense count: 51
+RSpec/BeforeAfterAll:
   Enabled: false
 
 # Offense count: 15
@@ -16,6 +15,10 @@ Performance/RedundantBlockCall:
 RSpec/EmptyExampleGroup:
   Enabled: false
 
+# Offense count: 1
+RSpec/ExpectOutput:
+  Enabled: false
+
 # Offense count: 63
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: implicit, each, example
@@ -28,20 +31,37 @@ RSpec/HookArgument:
 RSpec/ImplicitExpect:
   Enabled: false
 
+# Offense count: 36
+RSpec/RepeatedExample:
+  Enabled: false
+
+# Offense count: 34
+RSpec/ScatteredSetup:
+  Enabled: false
+
 # Offense count: 1
 RSpec/SingleArgumentMessageChain:
   Enabled: false
 
-# Offense count: 8
-# Cop supports --auto-correct.
-Style/AlignArray:
+# Offense count: 163
+Rails/FilePath:
+  Enabled: false
+
+# Offense count: 2
+# Configuration parameters: Include.
+# Include: db/migrate/*.rb
+Rails/ReversibleMigration:
+  Enabled: false
+
+# Offense count: 278
+# Configuration parameters: Blacklist.
+# Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
+Rails/SkipsModelValidations:
   Enabled: false
 
-# Offense count: 11
+# Offense count: 7
 # Cop supports --auto-correct.
-# Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
-# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
-Style/AlignHash:
+Security/YAMLLoad:
   Enabled: false
 
 # Offense count: 6
@@ -49,7 +69,7 @@ Style/AlignHash:
 Style/EachWithObject:
   Enabled: false
 
-# Offense count: 24
+# Offense count: 25
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: empty, nil, both
@@ -61,14 +81,14 @@ Style/EmptyElse:
 Style/EmptyLiteral:
   Enabled: false
 
-# Offense count: 55
+# Offense count: 56
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: compact, expanded
 Style/EmptyMethod:
   Enabled: false
 
-# Offense count: 173
+# Offense count: 184
 # Cop supports --auto-correct.
 # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
 Style/ExtraSpacing:
@@ -80,29 +100,33 @@ Style/ExtraSpacing:
 Style/FormatString:
   Enabled: false
 
-# Offense count: 263
+# Offense count: 268
 # Configuration parameters: MinBodyLength.
 Style/GuardClause:
   Enabled: false
 
-# Offense count: 12
+# Offense count: 2
+Style/IdenticalConditionalBranches:
+  Enabled: false
+
+# Offense count: 14
 Style/IfInsideElse:
   Enabled: false
 
-# Offense count: 177
+# Offense count: 179
 # Cop supports --auto-correct.
 # Configuration parameters: MaxLineLength.
 Style/IfUnlessModifier:
   Enabled: false
 
-# Offense count: 61
+# Offense count: 57
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
 # SupportedStyles: special_inside_parentheses, consistent, align_brackets
 Style/IndentArray:
   Enabled: false
 
-# Offense count: 108
+# Offense count: 120
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
 # SupportedStyles: special_inside_parentheses, consistent, align_braces
@@ -123,7 +147,7 @@ Style/LineEndConcatenation:
 
 # Offense count: 22
 # Cop supports --auto-correct.
-Style/MethodCallParentheses:
+Style/MethodCallWithoutArgsParentheses:
   Enabled: false
 
 # Offense count: 9
@@ -135,26 +159,26 @@ Style/MethodMissing:
 Style/MultilineIfModifier:
   Enabled: false
 
-# Offense count: 8
+# Offense count: 22
 # Cop supports --auto-correct.
 Style/NestedParenthesizedCalls:
   Enabled: false
 
-# Offense count: 15
+# Offense count: 17
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
 # SupportedStyles: skip_modifier_ifs, always
 Style/Next:
   Enabled: false
 
-# Offense count: 19
+# Offense count: 31
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedOctalStyle, SupportedOctalStyles.
 # SupportedOctalStyles: zero_with_o, zero_only
 Style/NumericLiteralPrefix:
   Enabled: false
 
-# Offense count: 68
+# Offense count: 77
 # Cop supports --auto-correct.
 # Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
 # SupportedStyles: predicate, comparison
@@ -166,13 +190,13 @@ Style/NumericPredicate:
 Style/ParallelAssignment:
   Enabled: false
 
-# Offense count: 463
+# Offense count: 477
 # Cop supports --auto-correct.
 # Configuration parameters: PreferredDelimiters.
 Style/PercentLiteralDelimiters:
   Enabled: false
 
-# Offense count: 13
+# Offense count: 14
 # Cop supports --auto-correct.
 Style/PerlBackrefs:
   Enabled: false
@@ -204,7 +228,7 @@ Style/Proc:
 Style/RaiseArgs:
   Enabled: false
 
-# Offense count: 3
+# Offense count: 4
 # Cop supports --auto-correct.
 Style/RedundantBegin:
   Enabled: false
@@ -225,7 +249,7 @@ Style/RedundantReturn:
 Style/RedundantSelf:
   Enabled: false
 
-# Offense count: 107
+# Offense count: 108
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
 # SupportedStyles: slashes, percent_r, mixed
@@ -242,19 +266,13 @@ Style/RescueModifier:
 Style/SelfAssignment:
   Enabled: false
 
-# Offense count: 2
-# Configuration parameters: Methods.
-# Methods: {"reduce"=>["acc", "elem"]}, {"inject"=>["acc", "elem"]}
-Style/SingleLineBlockParams:
-  Enabled: false
-
 # Offense count: 50
 # Cop supports --auto-correct.
 # Configuration parameters: AllowIfMethodIsEmpty.
 Style/SingleLineMethods:
   Enabled: false
 
-# Offense count: 153
+# Offense count: 155
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: space, no_space
@@ -274,14 +292,15 @@ Style/SpaceBeforeFirstArg:
 Style/SpaceInLambdaLiteral:
   Enabled: false
 
-# Offense count: 201
+# Offense count: 203
 # Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
+# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces, SpaceBeforeBlockParameters.
 # SupportedStyles: space, no_space
+# SupportedStylesForEmptyBraces: space, no_space
 Style/SpaceInsideBlockBraces:
   Enabled: false
 
-# Offense count: 90
+# Offense count: 91
 # Cop supports --auto-correct.
 Style/SpaceInsideParens:
   Enabled: false
@@ -291,14 +310,14 @@ Style/SpaceInsideParens:
 Style/SpaceInsidePercentLiteralDelimiters:
   Enabled: false
 
-# Offense count: 52
+# Offense count: 55
 # Cop supports --auto-correct.
 # Configuration parameters: SupportedStyles.
 # SupportedStyles: use_perl_names, use_english_names
 Style/SpecialGlobalVars:
   EnforcedStyle: use_perl_names
 
-# Offense count: 25
+# Offense count: 40
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles.
 # SupportedStyles: single_quotes, double_quotes
@@ -321,18 +340,18 @@ Style/TernaryParentheses:
 
 # Offense count: 43
 # Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
-# SupportedStyles: comma, consistent_comma, no_comma
+# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline.
+# SupportedStylesForMultiline: comma, consistent_comma, no_comma
 Style/TrailingCommaInArguments:
   Enabled: false
 
-# Offense count: 7
+# Offense count: 13
 # Cop supports --auto-correct.
 # Configuration parameters: AllowNamedUnderscoreVariables.
 Style/TrailingUnderscoreVariable:
   Enabled: false
 
-# Offense count: 69
+# Offense count: 70
 # Cop supports --auto-correct.
 Style/TrailingWhitespace:
   Enabled: false
@@ -344,12 +363,12 @@ Style/TrailingWhitespace:
 Style/TrivialAccessors:
   Enabled: false
 
-# Offense count: 2
+# Offense count: 6
 # Cop supports --auto-correct.
 Style/UnlessElse:
   Enabled: false
 
-# Offense count: 19
+# Offense count: 22
 # Cop supports --auto-correct.
 Style/UnneededInterpolation:
   Enabled: false
diff --git a/Gemfile b/Gemfile
index 3fc92abf9a769619f55bb2686de37006fbc1b6d9..00f2b6ffbfbecf5e96e6126384640b0ccb7e584b 100644
--- a/Gemfile
+++ b/Gemfile
@@ -301,8 +301,8 @@ group :development, :test do
   gem 'spring-commands-rspec',    '~> 1.0.4'
   gem 'spring-commands-spinach',  '~> 1.1.0'
 
-  gem 'rubocop', '~> 0.46.0', require: false
-  gem 'rubocop-rspec', '~> 1.9.1', require: false
+  gem 'rubocop', '~> 0.47.1', require: false
+  gem 'rubocop-rspec', '~> 1.12.0', require: false
   gem 'scss_lint', '~> 0.47.0', require: false
   gem 'haml_lint', '~> 0.18.2', require: false
   gem 'simplecov', '0.12.0', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index 9d6100f66acf0b5b2d182d2596899235f41946a4..34b24a6e23b31dda62ccecf9b95c4b7c5b49fe73 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -501,7 +501,7 @@ GEM
     os (0.9.6)
     paranoia (2.2.0)
       activerecord (>= 4.0, < 5.1)
-    parser (2.3.1.4)
+    parser (2.4.0.0)
       ast (~> 2.2)
     pg (0.18.4)
     poltergeist (1.9.0)
@@ -642,13 +642,13 @@ GEM
       pg
       rails
       sqlite3
-    rubocop (0.46.0)
-      parser (>= 2.3.1.1, < 3.0)
+    rubocop (0.47.1)
+      parser (>= 2.3.3.1, < 3.0)
       powerpack (~> 0.1)
       rainbow (>= 1.99.1, < 3.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (~> 1.0, >= 1.0.1)
-    rubocop-rspec (1.9.1)
+    rubocop-rspec (1.12.0)
       rubocop (>= 0.42.0)
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
@@ -776,7 +776,7 @@ GEM
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.7.2)
-    unicode-display_width (1.1.1)
+    unicode-display_width (1.1.3)
     unicorn (5.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
@@ -963,8 +963,8 @@ DEPENDENCIES
   rspec-rails (~> 3.5.0)
   rspec-retry (~> 0.4.5)
   rspec_profiling (~> 0.0.5)
-  rubocop (~> 0.46.0)
-  rubocop-rspec (~> 1.9.1)
+  rubocop (~> 0.47.1)
+  rubocop-rspec (~> 1.12.0)
   ruby-fogbugz (~> 0.2.1)
   ruby-prof (~> 0.16.2)
   rugged (~> 0.24.0)