<?xml version="1.0" encoding="utf-8"?>
<ns1:informationTable xmlns:ns1="http://www.sec.gov/edgar/document/thirteenf/informationtable">
  <ns1:infoTable>
    <ns1:nameOfIssuer>APPLE INC</ns1:nameOfIssuer>
    <ns1:titleOfClass>COM</ns1:titleOfClass>
    <ns1:cusip>037833100</ns1:cusip>
    <ns1:figi>BBG001S5N8V8</ns1:figi>
    <ns1:value>210831</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1001</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>1001</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <ns1:infoTable>
    <ns1:nameOfIssuer>AT&amp;T INC</ns1:nameOfIssuer>
    <ns1:titleOfClass>COM</ns1:titleOfClass>
    <ns1:cusip>00206R102</ns1:cusip>
    <ns1:figi>BBG001S5VWH2</ns1:figi>
    <ns1:value>1707631</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>89358</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>89358</ns1:None>
    </ns1:votingAuthority>
  </ns1:infoTable>
  <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>129149071</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>2874451</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>2874451</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>16382832</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>423329</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>423329</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>243533</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>508</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>508</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>84202840</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1438873</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>1438873</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>49554215</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>464600</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>464600</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>270981340</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>495187</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>495187</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>3919978</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>40383</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>40383</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>234169761</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>787019</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>787019</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>459283</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1260</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>1260</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>262403</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>12035800</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>59322</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>59322</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>123395325</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>2663400</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>2663400</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>67856252</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1344487</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>1344487</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>190826487</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>3646598</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>3646598</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>576268</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>12643</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>12643</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>784492</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>12478</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>12478</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>51250298</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>797670</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>797670</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>104679835</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>1344981</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>1344981</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>26470260</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>557856</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>557856</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>5422887</ns1:value>
    <ns1:shrsOrPrnAmt>
      <ns1:sshPrnamt>9965</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>9965</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>7221432</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>
