<?xml version="1.0" encoding="utf-8"?>
<ns1:informationTable xmlns:ns1="http://www.sec.gov/edgar/document/thirteenf/informationtable">
  <ns1:infoTable>
    <ns1:nameOfIssuer>FIDELITY MERRIMACK STR TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>TOTAL BD ETF</ns1:titleOfClass>
    <ns1:cusip>316188309</ns1:cusip>
    <ns1:figi>BBG0078X1341</ns1:figi>
    <ns1:value>124609263</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>2706544</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>2706544</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>HARTFORD FDS EXCHANGE TRADED</ns1:nameOfIssuer>
    <ns1:titleOfClass>MUN OPORTUNITE</ns1:titleOfClass>
    <ns1:cusip>41653L503</ns1:cusip>
    <ns1:figi>BBG00JGMYXN7</ns1:figi>
    <ns1:value>16175871</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>415405</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>415405</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>INVESCO QQQ TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>UNIT SER 1</ns1:titleOfClass>
    <ns1:cusip>46090E103</ns1:cusip>
    <ns1:figi>BBG001S9GN63</ns1:figi>
    <ns1:value>222369</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>543</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>543</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE MSCI TOTAL</ns1:titleOfClass>
    <ns1:cusip>46432F834</ns1:cusip>
    <ns1:figi>BBG003H6TMV7</ns1:figi>
    <ns1:value>214009</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>3296</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>3296</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE S&amp;P MCP ETF</ns1:titleOfClass>
    <ns1:cusip>464287507</ns1:cusip>
    <ns1:figi>BBG001SFC7V0</ns1:figi>
    <ns1:value>86302582</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>311393</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>311393</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE S&amp;P SCP ETF</ns1:titleOfClass>
    <ns1:cusip>464287804</ns1:cusip>
    <ns1:figi>BBG001SFC7W9</ns1:figi>
    <ns1:value>47225371</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>436262</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>436262</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE S&amp;P500 ETF</ns1:titleOfClass>
    <ns1:cusip>464287200</ns1:cusip>
    <ns1:figi>BBG001SFB7R6</ns1:figi>
    <ns1:value>659392</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1381</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>1381</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE US AGGBD ET</ns1:titleOfClass>
    <ns1:cusip>464287226</ns1:cusip>
    <ns1:figi>BBG001SM1QT8</ns1:figi>
    <ns1:value>3745497</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>37738</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>37738</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>RUS 1000 ETF</ns1:titleOfClass>
    <ns1:cusip>464287622</ns1:cusip>
    <ns1:figi>BBG001S562W9</ns1:figi>
    <ns1:value>209105506</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>797321</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>797321</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>RUS 1000 GRW ETF</ns1:titleOfClass>
    <ns1:cusip>464287614</ns1:cusip>
    <ns1:figi>BBG001S56320</ns1:figi>
    <ns1:value>437777</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1444</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>1444</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>RUS 1000 VAL ETF</ns1:titleOfClass>
    <ns1:cusip>464287598</ns1:cusip>
    <ns1:figi>BBG001S562P7</ns1:figi>
    <ns1:value>248536</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1504</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>1504</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>ISHARES TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>RUSSELL 2000 ETF</ns1:titleOfClass>
    <ns1:cusip>464287655</ns1:cusip>
    <ns1:figi>BBG001SFC7Y7</ns1:figi>
    <ns1:value>12056409</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>60069</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>60069</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>J P MORGAN EXCHANGE TRADED F</ns1:nameOfIssuer>
    <ns1:titleOfClass>CORE PLUS BD ETF</ns1:titleOfClass>
    <ns1:cusip>46641Q670</ns1:cusip>
    <ns1:figi>BBG00N6W8XF5</ns1:figi>
    <ns1:value>109053828</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>2316105</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>2316105</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>J P MORGAN EXCHANGE TRADED F</ns1:nameOfIssuer>
    <ns1:titleOfClass>ULTRA SHRT INC</ns1:titleOfClass>
    <ns1:cusip>46641Q837</ns1:cusip>
    <ns1:figi>BBG00GP26NW0</ns1:figi>
    <ns1:value>63391442</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1262024</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>1262024</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>1000 INDEX ETF</ns1:titleOfClass>
    <ns1:cusip>808524722</ns1:cusip>
    <ns1:figi>BBG00HXSKY16</ns1:figi>
    <ns1:value>396759000</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>8613960</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>8613960</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>US AGGREGATE B</ns1:titleOfClass>
    <ns1:cusip>808524839</ns1:cusip>
    <ns1:figi>BBG001WBMLH8</ns1:figi>
    <ns1:value>603216</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>12939</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>12939</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>US BRD MKT ETF</ns1:titleOfClass>
    <ns1:cusip>808524102</ns1:cusip>
    <ns1:figi>BBG001T5XQT9</ns1:figi>
    <ns1:value>885487</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>15906</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>15906</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>US LRG CAP ETF</ns1:titleOfClass>
    <ns1:cusip>808524201</ns1:cusip>
    <ns1:figi>BBG001T5XQV6</ns1:figi>
    <ns1:value>48409248</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>858320</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>858320</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>US MID-CAP ETF</ns1:titleOfClass>
    <ns1:cusip>808524508</ns1:cusip>
    <ns1:figi>BBG001V036R6</ns1:figi>
    <ns1:value>105544680</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1401284</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>1401284</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SCHWAB STRATEGIC TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>US SML CAP ETF</ns1:titleOfClass>
    <ns1:cusip>808524607</ns1:cusip>
    <ns1:figi>BBG001T5XQW5</ns1:figi>
    <ns1:value>26766540</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>566608</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>566608</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>SPDR S&amp;P 500 ETF TR</ns1:nameOfIssuer>
    <ns1:titleOfClass>TR UNIT</ns1:titleOfClass>
    <ns1:cusip>78462F103</ns1:cusip>
    <ns1:figi>BBG001S72SM3</ns1:figi>
    <ns1:value>4075783</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>8575</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>8575</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>VANGUARD INDEX FDS</ns1:nameOfIssuer>
    <ns1:titleOfClass>TOTAL STK MKT</ns1:titleOfClass>
    <ns1:cusip>922908769</ns1:cusip>
    <ns1:figi>BBG001SHTB03</ns1:figi>
    <ns1:value>6403754</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>26995</ns1:sshPrnamt>
      <ns1:sshPrnamtType>SH</ns1:sshPrnamtType>
    </ns1:shrsOrPrnAmt>
    <ns1:investmentDiscretion>SOLE</ns1:investmentDiscretion>
    <ns1:votingAuthority>
      <ns1:Sole>0</ns1:Sole>
      <ns1:Shared>0</ns1:Shared>
      <ns1:None>26995</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
</ns1:informationTable>
