How Betterment Anticipates And Reacts To Market Volatility—So You Don’t Have To

How Betterment Anticipates And Reacts To Market Volatility—So You Don’t Have To

If you’ve ever been told to “sit tight and stay the course” when the market is dropping and your investment account is worth less than it was just moments ago, you’re not alone. Financial advisors, including Betterment, love this mantra and repeat it anytime there’s a market downturn—which every investor should be prepared to navigate at some point.

But being told to do nothing when your account balance is dropping can feel like an inadequate response. And, unless your investment strategy has been designed from the ground up to anticipate and react to market volatility, you may be right.

The reason Betterment can confidently advise our customers not to react or adjust their investment strategy during a market downturn is because our entire platform was designed with inevitable downturns of the market in mind.

In this article, I’ll cover how our investment portfolio creation process, ongoing automated account management system, and dynamic advice, are designed with market fluctuations in mind, so that you can “sit tight and stay the course” and feel confident it’s actually the right thing to do.

Our portfolios are constructed with market volatility in mind.

Betterment’s portfolio construction process strives to design a portfolio strategy that is diversified, increases value by managing costs, and enables good tax management. Ultimately, our goal is to help you build wealth.

This means: Our intent is to create portfolios designed to have the greatest chance of making money and also not losing it.

At a baseline, our allocation recommendations are based on various assumptions, including a range of possible outcomes, in which we give slightly more weight to potential negative ones, by building in a margin of safety—otherwise known as ‘downside risk’ or uncertainty optimization.

So, even before you’ve invested your first dollar, your portfolio has already been designed to account for the market fluctuations you will inevitably experience throughout the course of your investment journey, even the big downturns like 2008 and the more recent market crash in 2020.

Furthermore, our risk recommendations consider the amount of time you’ll be invested for. For goals with a longer time horizon, we advise that you hold a larger portion of your portfolio in stocks. A portfolio with greater holdings in stocks is more likely to experience losses in the short-term, but is also more likely to generate greater long-term gains. For shorter-term goals, we recommended a lower stock allocation. This helps to avoid large drops in your balance right before you plan to withdraw and use what you’ve saved.

All you have to do is:

Tell us what you are saving for (your investing goal).Let us know how long you plan to be invested (your time horizon).

We take care of the rest.

By using your personal assumptions, in conjunction with our general downside risk framework, we’re able to recommend a globally diversified portfolio of stock and bond ETFs that has an initial risk level recommended just for you.

And because we weigh investment time horizon and below-average market performance more heavily, our algorithm allows for some breathing room. If you wish to deviate from our advice— like increasing or decreasing your exposure to stocks or bonds, slightly beyond our default recommendation but still within a reasonable bound—we’ll still maintain the integrity of a properly diversified portfolio and investment strategy designed to meet your specific objective.

After all, the chance of reaching any investing goal increases when the investor is comfortable committing to their strategy and staying the course in both good and bad markets.

Our automated portfolio management features keep you on track during downturns.

How we construct our globally diversified portfolios and the risk framework we apply to each investor’s specific allocation recommendation is just the starting point. It’s our ongoing and automated portfolio management that provides the additional value-add that’s hard to replicate elsewhere, especially in times of heightened volatility.

Our automated features like allocation adjustments over time, portfolio rebalancing, tax loss harvesting for those who select it, and updated advice when you need it, are what help most.

utomated Allocation Adjustments

When we ask you to tell us about your investment objective, including how long you plan to be invested for, it helps us choose the appropriate asset allocation for you throughout the course of your investment timeline, not just in the beginning.

For most Betterment goals, we recommend that you scale down your risk as your goal’s end date gets closer, which helps to reduce the chance that your balance will drastically fall if the market drops. This is an especially important consideration for an investor who plans to use their funds in the near term.

We call this recommendation of a gradual reduction of stocks in favor of bonds, a goal’s glidepath. And instead of leaving this responsibility up to you, you can opt into our “auto-adjust” feature, which means our system monitors your account and adjusts your portfolio’s allocation automatically over time.

utomated Portfolio Rebalancing

The allocation that we choose for you, at any given time, is our best estimate of the combination of assets that will help you reach your goal by the date you’re aiming for. But, unless each asset you are invested in has the same exact returns, normal stock market fluctuations will likely cause your actual allocation to drift away from your portfolio target, which is calculated to be the optimal level of risk you should be taking on.

We call this process portfolio drift, and though a small amount of drift is perfectly normal—and a mathematical certainty—a large amount of drift could expose your portfolio to unwanted risks.

When the market fluctuates, not all of your investments are dropping to the same exact degree. For example, stocks are generally more volatile than bonds.

As you can imagine, a period of sustained volatility could mean a significant shift in how your portfolio is actually allocated, relative to where it should be. Left unchecked, this drift could be especially harmful to your portfolio’s performance, which is why at Betterment, our portfolio management system provides ongoing monitoring of your portfolio in order to determine whether rebalancing is needed.

While we generally use any cash inflows, like deposits or dividends, and outflows, like withdrawals, to help rebalance your portfolio organically over time, when a significant market drop occurs, there can be a need to sell investments in order to adjust your portfolio back to its optimal allocation.

Consider an instance where the value of your stock investments has dropped significantly and now your bond investments are overweighted relative to your stocks. Our rebalancing system might be triggered to correct the drift. Not only would our automated rebalancing seek to ensure your portfolio’s allocation is realigned relative to its target, it would also mean buying stocks at their currently cheaper price point, setting you up nicely for any market recovery.

Furthermore, if effective rebalancing does require selling investments in a taxable account, the specific shares to be sold are selected tax-efficiently using our TaxMin method. This is designed to ensure that no short-term gains are realized. We never want the tax impact of maintaining proper diversification to counter the benefits of applying our risk framework.

utomated Tax Loss Harvesting

Tax Loss Harvesting is a feature that may benefit you most when the market is volatile. After all, if there aren’t any losses in your account, we can’t harvest them. Our automated TLH software monitors your account for opportunities to effectively harvest tax losses that can be used to reduce capital gains that you have realized through other investments in the same tax year.

This can potentially reduce your tax bill, thereby increasing your total returns, especially if you have a lot of short-term capital gains, which are taxed at a higher rate than long-term capital gains.

And, if you’ve harvested more losses than you have in realized capital gains, you can use up to an additional $3,000 in losses to reduce your taxable income. Any unused losses from the current tax year can be carried over indefinitely and used in subsequent years.

Our dynamic financial advice works for you during market fluctuations.

Much like the automated features described in the section above, the advice we give our customers is dynamic and updates automatically based on many factors, including market performance.

Just as your car’s GPS recommends the best route to take to reach your destination, Betterment recommends a tailored path toward reaching your financial goals. And just as the GPS updates its recommended route based on road conditions and accidents, we update our advice based on various circumstances, such as a market downturn.

In addition to recommending a starting risk level tied to your specific objective, we also estimate how much you need to save.

In the case of a really big market drop, we might advise you to do something about it, such as make a single lump-sum deposit, which will help keep your portfolio on track. Recognizing that coming up with sizable excess cash can be tough to do, we’ll also suggest a recurring monthly deposit number that may be more realistic. And, if it’s early on in a long-term goal, it’s unlikely you’ll need to change anything significantly, because you still have a lot of time on your side.


The path to investment growth can be bumpy, and negative or lower than expected returns are bound to make an investor feel uncertain. But, staying disciplined and sticking to your plan can pay off.

Betterment has been purpose-built with all the worst and the best the market may throw at us in mind, by focusing on three key elements: intentional portfolio construction, automated portfolio features, and advice that reacts to market conditions.

Feel confident that Betterment’s hard at work, for you, so that you can truly “sit tight and stay the course.”

Let’s ride this out together
Sign up>

Did you miss our previous article…

Plan Design Matters

Plan Design Matters

How to tailor a 401(k) plan you and your employees will love

Designing a 401(k) plan is like building a house. It takes care, attention, and the help of a few skilled professionals to create a plan that works for both you and your employees. In fact, thoughtful plan design can help motivate even reluctant retirement savers to start investing for their future.

As you embark on the 401(k) design process, there are many options to consider. In this article, we’ll take you through the most important choices so you can make well-informed decisions. Since certain choices may not be available on the various pricing models of any given provider, make sure you understand your options and the trade-offs you’re making.

Let’s get started!

401(k) eligibility

When would you like employees to be eligible to participate in the plan? You can opt to have employees become eligible:

Immediately – as soon as they begin working for your companyAfter a specific length of service – for example, a period of hours, months, or years of service

It’s also customary to have an age requirement (for example, employees must be 18 years or older to participate in the plan). Plus, you may want to add an “employee class exclusion” to prevent part-time, seasonal, or temporary employees from participating in the plan.

Once employees become eligible, they can immediately enroll – or, you can restrict enrollment to a monthly, quarterly, or semi-annual basis. If you have immediate 401(k) eligibility and enrollment, in theory, more employees could participate in the plan. However, if your company has a higher rate of turnover, you may want to consider adding service length requirements to alleviate the unnecessary administrative burden of having to maintain many small accounts of employees who are no longer with your organization.


Enrollment is another important feature to consider as you structure your plan. You may simply allow employees to enroll on their own, or you can add an automatic enrollment feature. Automatic enrollment (otherwise known as auto-enrollment) allows employers to automatically deduct elective deferrals from employees’ wages unless they elect not to contribute.

With automatic enrollment, all employees are enrolled in the plan at a specific contribution rate when they become eligible to participate in the plan. Employees have the freedom to opt out and change their contribution rate and investments at any time.

As you can imagine, automatic enrollment can have a significant impact on plan participation. In fact, according to research by The Pew Charitable Trusts, automatic enrollment 401(k) plans have participation rates greater than 90%! That’s in stark contrast to the roughly 50% participation rate for plans in which employees must actively opt in.

If you decide to elect automatic enrollment, consider your default contribution rate carefully. A 3% default contribution rate is still the most popular; however, more employers are electing higher default rates because research shows that opt-out rates don’t appreciably change even if the default rate is increased. Many financial experts recommend a savings rate of at least 10%, so using a higher automatic enrollment default rate gets employees even more of a head start.


You’re permitted to exclude certain types of compensation for plan purposes, including compensation earned prior to plan entry and fringe benefits for purposes of compliance testing and allocating employer contributions. You may choose to define your compensation as:

W2 (box 1 wages) plus deferrals – Total taxable wages, tips, prizes, and other compensation3401(a) wages – All wages taken into account for federal tax withholding purposes, plus the required additions to W-2 wages listed aboveSection 415 Safe Harbor – All compensation received from the employer which is includible in gross income

Employer contributions

Want to encourage employees to enroll in the plan? Free money is a great place to start! That’s why more employers are offering profit sharing or matching contributions.

In fact, EBRI and Greenwald & Associates’ found that nearly 73% of workers said they were likely to save for retirement if their contributions were matched by their employer.

Some of the more common employer contributions are:

Safe harbor contributions – With the added bonus of being able to avoid certain time-consuming compliance tests, safe harbor contributions often follow one of these formulas:>Basic safe harbor match—Employer matches 100% of employee contributions, up to 3% of their compensation, plus 50% of the next 2% of their compensation.Enhanced safe harbor match—Employer matches 100% of employee contributions, up to 4% of their compensation.Non-elective contribution—Employer contributes 3% of each employee’s compensation, regardless of whether they make their own contributions.Discretionary matching contributions – You decide what percentage of employee 401(k) deferrals to match and the maximum percentage of pay to match. For example, you could elect to match 50% of contributions on up to 6% of compensation. One advantage of having a discretionary matching contribution is that you retain the flexibility to adjust the matching rate as your business needs change.Non-elective contributions – Each pay period, you have the option of contributing to your employees’ 401(k) accounts, regardless of whether they contribute. For example, you could make a profit sharing contribution (one type of non-elective contribution) at the end of the year as a percentage of employees’ salaries or as a lump-sum amount.

In addition to helping your employees build their retirement nest eggs, employer contributions are also tax deductible (up to 25% of total eligible compensation), so it may cost less than you think.  Plus, offering an employer contribution can play a key role in recruiting and retaining top employees. In fact, a Betterment for Business study found that more than 45% of respondents considered a 401(k) match to be a factor when deciding whether to accept a job.

401(k) vesting

If you elect to make an employer contribution, you also need to decide on a vesting schedule (an employee’s own contributions are always 100% vested). Note that all employer contributions made as part of a safe harbor plan are immediately and 100% vested.

The three main vesting schedules are:

Immediate – Employees are immediately vested in (or own) 100% of employer contributions as soon as they receive them.Graded – Vesting takes place in a gradual manner. For example, a six-year graded schedule could have employees vest at a rate of 20% a year until they are fully vested.Cliff – The entire employer contribution becomes 100% vested all at once, after a specific period of time. For example, if you had a three-year cliff vesting schedule and an employee left after two years, they would not be able to take any of the employer contributions (only their own).

Like your eligibility and enrollment decisions, vesting can also have an impact on employee participation. Immediate vesting may give employees an added incentive to participate in the plan. On the other hand, a longer vesting schedule could encourage employees to remain at your company for a longer time.

Service counting method

If you decide to use length of service to determine your eligibility and vesting schedules, you must also decide how to measure it. Typically, you may use:

Elapsed time – Period of service as long as employee is employed at the end of periodActual hours – Actual hours worked. With this method, you’ll need to track and report employee hoursActual hours/equivalency – A formula that credits employees with set number of hours per pay period (for example, monthly = 190 hours)

401(k) withdrawals and loans

Naturally, there will be times when your employees need to withdraw money from their retirement accounts. Your plan design will have rules outlining the withdrawal parameters for:

TerminationIn-service withdrawals (at attainment of age 59 ½; rollovers at any time)HardshipsQualified Domestic Relations Orders (QDROs)Required Minimum Distributions (RMDs)

Plus, you’ll have to decide whether to allow participants to take 401(k) plan loans (and the maximum amount of the loan). While loans have the potential to derail employees’ retirement dreams, having a loan provision means employees can access their money if they need it and employees can pay themselves back plus interest. If employees are reluctant to participate because they’re afraid their savings will be “locked up,” then a loan provision can help alleviate that fear.

Investment options

When it comes to investment methodology, there are many strategies to consider. Your plan provider can help guide you through the choices and associated fees. For example, at Betterment, we believe that ETFs offer investors significant diversification and flexibility at a low cost. Plus, we offer ETFs in conjunction with personalized, unbiased advice to help today’s retirement savers pursue their goals.

Get help from the experts

Your 401(k) plan provider can walk you through your plan design choices and help you tailor a plan that works for your company and your employees. Once you’ve settled on your plan design, you will need to codify those features in the form of a formal plan document to govern your 401(k) plan. At Betterment, we draft the plan document for you and provide it to you for review and final approval.

Your business is likely to evolve—and your plan design can evolve, too. Drastic increase in profits? Consider adding an employer match or profit sharing contribution to share the wealth. Plan participation stagnating? Consider adding an automatic enrollment feature to get more employees involved. Employees concerned about access to their money in an uncertain world? Consider adding a 401(k) loan feature.

Need a little help figuring out your plan design? Talk to Betterment. Our experts make it easy for you to offer your employees a better 401(k) quickly and easily—all for a fraction of the cost of most providers.

Want a better 401(k)?
Learn More>

You can also visit our other websites and post your article.

Digital Pudding, Garden Center Blog, Business Lawyer Of Milwaukee, 123 Design Studio, Authentic Maple Leaf’s Shop, Gigle, Tech Ready Mix , Best Baby Items, Symposium 18, Jocok Iwanis, Dennis Kitchens, No Agents, Colo Computer Clinic, Adventures In Business Communications, Art Van Bode Graven, Brics 2015, Oyster Sentinel, House Calls Observe, Cedar Homes Chile, Chinook Garage Doors, Contractors Centerpoint, Down Home Living, New West Institute, US Home Based Business, BCN Equipamientos, Professionals PH, Thomas Angel, Coroa Homes, Stewart Homes Inc, 24 Hour Plumbing DFW, F1 Racing Tech, Point Payment Center, Raise Ohio, Castors Avignon, Coyle Greer, Something To Celebrate, Tor Option, Cook Equipment, Packers NFL Official Online Store, Atlantic Retzalisations

401(k) Considerations for Highly Compensated Employees

401(k) Considerations for Highly Compensated Employees

Smart savers

401(k) considerations for highly compensated employees

A 401(k) plan should help every employee – from senior executives to entry-level workers – save for a more comfortable future. To help ensure highly compensated employees (HCEs) don’t gain an unfair advantage through the 401(k) plan, the IRS implemented certain rules that all plans must follow. Wondering how to navigate these special considerations for HCEs? Read on for answers to commonly asked questions.

1. What is an HCE?

According to the IRS, an HCE is an individual who:

Owned more than 5% of the interest in the business at any time during the year or the preceding year, regardless of how much compensation that person earned or received, orReceived compensation from the business of more than $130,000 (if the preceding year is 2020 or 2021), and, if the employer so chooses, was in the top 20% of employees when ranked by compensation.

2. Why are there special considerations for HCEs?

Does your plan offer a company match? If so, consider this example: Joe is a senior manager earning $200,000 a year. He can easily afford to max out his 401(k) plan contributions and earn the full company match (dollar-for-dollar up to 6%). Thomas is an entry-level administrative assistant earning $35,000 a year. He can only afford to contribute 2% of his paycheck to the 401(k) plan, and therefore, isn’t eligible for the full company match. Not only that, Joe can contribute more – and earn greater tax benefits – than Thomas. It doesn’t seem fair, right? The IRS doesn’t think so either.

To ensure HCEs don’t disproportionately benefit from the 401(k) plan, the IRS requires annual compliance tests known as non-discrimination tests.

3. What is non-discrimination testing?

In order to retain tax-qualified status, a 401(k) plan must not discriminate in favor of key owners and officers, nor highly compensated employees. This is verified annually by a number of tests, which include:

Coverage tests  – These tests review the ratio of HCEs benefitting from the plan (i.e., of employees considered highly compensated, what percent are benefiting) against the ratio of non-highly compensated employees (NHCEs) benefiting from the plan. Typically, the NHCE percentage benefiting must be at least 70% or 0.7 times the percentage of HCEs considered benefiting for the year, or further testing is required. These tests are performed across employee contributions, matching, and after-tax contributions, and non-elective (employer, non-matching) contributions.ADP and ACP tests – The Actual Deferral Percentage (ADP) Test and the Actual Contribution Percentage (ACP) Test help to ensure that HCEs are not saving significantly more than the employee base. The tests compare the average deferral (traditional and Roth) and employer contribution (matching and after-tax) rates between HCEs and NHCEs.Top-heavy test – A plan is considered top-heavy when the total value of the Key employees’ plan accounts is greater than 60% of the total value of the plan assets. (The IRS defines a key employee as an officer making more than $185,000, an owner of more than 5% of the business, or an owner of more than 1% of the business who made more than $150,000 during the plan year.)

4. What if my plan doesn’t pass non-discrimination testing?

You may be surprised to learn that it’s actually easier for large companies to pass the tests because they have many employees at varying income levels contributing to the plan. However, small and mid-size businesses may struggle to pass if they have a relatively high number of HCEs. If HCEs contribute a lot to the plan, but NHCEs don’t, there’s a chance that the 401(k) plan will not pass nondiscrimination testing.

If your plan fails, you’ll need to fix the imbalance by returning 401(k) plan contributions to your HCEs or increasing contributions to your NHCEs. If you have to refund contributions, affected employees may fall behind on their retirement savings—and that money may be subject to state and federal taxes! Not to mention the fact that you may upset several top employees, which could have a detrimental impact on employee satisfaction and retention.

5. How can I avoid this headache-inducing situation?

If you want to bypass compliance tests, consider a safe harbor 401(k) plan. A safe harbor plan is like a typical 401(k) plan except it requires you to:

Contribute to the plan on your employees’ behalf, sometimes as an incentive for them to save in the planEnsure the mandatory employer contribution vests immediately – rather than on a graded or cliff vesting schedule – so employees can always take these contributions with them when they leave

To fulfill safe harbor requirements, you can elect one of the following employer contribution formulas:

Basic safe harbor match—Employer matches 100% of employee contributions, up to 3% of their compensation, plus 50% of the next 2% of their compensationEnhanced safe harbor match—Employer matches 100% of employee contributions, up to 4% of their compensation.Non-elective contribution—Employer contributes 3% of each employee’s compensation, regardless of whether they make their own contributions.

Want to contribute more? You absolutely can – the above percentages are only the minimum required of a safe harbor plan.

6. How can a safe harbor plan benefit my top earners?

With a safe harbor 401(k) plan, you can ensure that your HCEs will be able to max out your retirement contributions (without the fear that contributions will be returned if the plan fails nondiscrimination testing).

7. What are the upsides (and downsides) of a safe harbor plan?

Beyond ensuring your HCEs can max out their contributions, a safe harbor plan can help you:

Attract and retain top talent—Offering your employees a matching or non-elective contribution is a powerful recruitment tool. Plus, an employer contribution is a great way to reward your current employees (and incentivize them to save for their future).Improve financial wellness—Studies show that financial stress impacts employees’ ability to focus on work. By helping your employees save for retirement, you help ease that burden and potentially improve company productivity and profitability.Save time and stress—Administering your 401(k) plan takes time—and it can become even more time-consuming and stressful if you’re worried that your plan may not pass nondiscrimination testing. Bypass certain tests altogether by electing a safe harbor 401(k).Reduce your taxable income—Like any employer contribution, safe harbor contributions are tax deductible! Plus, you can receive valuable tax credits to help offset the costs of your 401(k) plan.

Of course, these benefits come with a cost; specifically the expense of increasing your overall payroll by 3% or more. So be sure to evaluate whether your company has the financial capacity to make employer contributions on an annual basis.

8. Are there other ways for HCEs to save for retirement?

If you decide against a safe harbor plan, you can always encourage your HCEs to take advantage of other retirement-saving avenues, including:

Health savings account (HSA) – If your company offers an HSA – typically available to those enrolled in a high-deductible health plan (HDHP) – individuals can contribute up to $3,600, families can contribute up to $7,200, and employees age 55 or older can contribute an additional $1,000 in 2021. The key benefits are:>Contributions are tax free, earnings grow tax-free, and funds can be withdrawn tax-free anytime they’re used for qualified health care expenses.The HSA balance carries over and has the potential to grow unlike a “use-it-or-lose-it” FSA.Once employees turn 65, they can withdraw money from an HSA for any purpose – not just medical expenses – without penalty. However, they will have to pay income tax, so they may want to consider reserving it for medical expenses in retirement.Traditional IRA – If employees make after-tax contributions to a traditional IRA, all earnings and growth are tax-deferred. For 2021, the IRA contribution maximum is $6,000 and employees age 50 or older can make an additional $1,000 catch-up contribution.Roth IRA – HCEs may still be eligible to contribute to a Roth IRA, since Roth IRAs have their own separate income limits. But even if an employee’s income is too high to contribute to a Roth IRA, they may be able to convert a Traditional IRA into a Roth IRA via the “backdoor” IRA strategy. To do so, they would make non-deductible contributions to their Traditional IRA, open a Roth IRA, and perform a Roth IRA conversion. This is a more advanced strategy, so for more information, your employees should consult a financial advisor.Taxable Account – A taxable account is a great way to save beyond IRS limits. If employees are maxed out their 401(k) and IRA and want to keep saving, they can invest extra cash in a taxable account.

Want to learn more? Betterment can help.

Helping HCEs navigate retirement planning can be a challenge. If you’re considering a safe harbor plan or want to explore new ways to enhance retirement savings for all your employees, talk to Betterment today.

Want a better 401(k)?
Learn More>

Did you miss our previous article…

Introducing “Delayed”: Resilient Background Jobs on Rails

Introducing “Delayed”: Resilient Background Jobs on Rails

In the past 24 hours, a Ruby on Rails application at Betterment performed somewhere on the order of 10 million asynchronous tasks.

While many of these tasks merely sent a transactional email, or fired off an iOS or Android push notification, plenty involved the actual movement of money—deposits, withdrawals, transfers, rollovers, you name it—while others kept Betterment’s information systems up-to-date—syncing customers’ linked account information, logging events to downstream data consumers, the list goes on.

What all of these tasks had in common (aside from being, well, really important to our business) is that they were executed via a database-backed job-execution framework called Delayed, a newly-open-sourced library that we’re excited to announce… right now, as part of this blog post!

And, yes, you heard that right. We run millions of these so-called “background jobs” daily using a SQL-backed queue—not Redis, or RabbitMQ, or Kafka, or, um, you get the point—and we’ve very intentionally made this choice, for reasons that will soon be explained! But first, let’s back up a little and answer a few basic questions.

Why Background Jobs?

In other words, what purpose do these background jobs serve? And how does running millions of them per day help us?

Well, when building web applications, we (as web application developers) strive to build pages that respond quickly and reliably to web requests. One might say that this is the primary goal of any webapp—to provide a set of HTTP endpoints that reliably handle all the success and failure cases within a specified amount of time, and that don’t topple over under high-traffic conditions.

This is made possible, at least in part, by the ability to perform units of work asynchronously. In our case, via background jobs. At Betterment, we rely on said jobs extensively, to limit the amount of work performed during the “critical path” of each web request, and also to perform scheduled tasks at regular intervals. Our reliance on background jobs even allows us to guarantee the eventual consistency of our distributed systems, but more on that later. First, let’s take a look at the underlying framework we use for enqueuing and executing said jobs.

Frameworks Galore!

And, boy howdy, are there plenty of available frameworks for doing this kind of thing! Ruby on Rails developers have the choice of resque, sidekiq, que, good_job, delayed_job, and now… delayed, Betterment’s own flavor of job queue!

Thankfully, Rails provides an abstraction layer on top of these, in the form of the Active Job framework. This, in theory, means that all jobs can be written in more or less the same way, regardless of the job-execution backend. Write some jobs, pick a queue backend with a few desirable features (priorities, queues, etc), run some job worker processes, and we’re off to the races! Sounds simple enough!

Unfortunately, if it were so simple we wouldn’t be here, several paragraphs into a blog post on the topic. In practice, deciding on a job queue is more complicated than that. Quite a bit more complicated, because each backend framework provides its own set of trade-offs and guarantees, many of which will have far-reaching implications in our codebase. So we’ll need to consider carefully!

How To Choose A Job Framework

The delayed rubygem is a fork of both delayed_job and delayed_job_active_record, with several targeted changes and additions, including numerous performance & scalability optimizations that we’ll cover towards the end of this post. But first, in order to explain how Betterment arrived where we did, we must explain what it is that we need our job queue to be capable of, starting with the jobs themselves.

You see, a background job essentially represents a tiny contract. Each consists of some action being taken for / by / on behalf of / in the interest of one or more of our customers, and that must be completed within an appropriate amount of time. Betterment’s engineers decided, therefore, that it was critical to our mission that we be capable of handling each and every contract as reliably as possible. In other words, every job we attempt to enqueue must, eventually, reach some form of resolution.

Of course, job “resolution” doesn’t necessarily mean success. Plenty of jobs may complete in failure, or simply fail to complete, and may require some form of automated or manual intervention. But the point is that jobs are never simply dropped, or silently deleted, or lost to the cyber-aether, at any point, from the moment we enqueue them to their eventual resolution.

This general property—the ability to enqueue jobs safely and ensure their eventual resolution—is the core feature that we have optimized for. Let’s call it resilience.

Optimizing For Resilience

Now, you might be thinking, shouldn’t all of these ActiveJob backends be, at the very least, safe to use? Isn’t “resilience” a basic feature of every backend, except maybe the test/development ones? And, yeah, it’s a fair question. As the author of this post, my tactful attempt at an answer is that, well, not all queue backends optimize for the specific kind of end-to-end resilience that we look for. Namely, the guarantee of at-least-once execution.

Granted, having “exactly-once” semantics would be preferable, but if we cannot be sure that our jobs run at least once, then we must ask ourselves: how would we know if something didn’t run at all? What kind of monitoring would be necessary to detect such a failure, across all the features of our app, and all the types of jobs it might try to run? These questions open up an entirely different can of worms, one that we would prefer remained firmly sealed.

Remember, jobs are contracts. A web request was made, code was executed, and by enqueuing a job, we said we’d eventually do something. Not doing it would be… bad. Not even knowing we didn’t do it… very bad. So, at the very least, we need the guarantee of at-least-once execution.

Building on at-least-once guarantees

If we know for sure that we’ll fully execute all jobs at least once, then we can write our jobs in such a way that makes the at-least-once approach reliable and resilient to failure. Specifically, we’ll want to make our jobs idempotent—basically, safely retryable, or resumable—and that is on us as application developers to ensure on a case-by-case basis. Once we solve this very solvable idempotency problem, then we’re on track for the same net result as an “exactly-once” approach, even if it takes a couple extra attempts to get there.

Furthermore, this combination of at-least-once execution and idempotency can then be used in a distributed systems context, to ensure the eventual consistency of changes across multiple apps and databases. Whenever a change occurs in one system, we can enqueue idempotent jobs notifying the other systems, and retry them until they succeed, or until we are left with stuck jobs that must be addressed operationally. We still concern ourselves with other distributed systems pitfalls like event ordering, but we don’t have to worry about messages or events disappearing without a trace due to infrastructure blips.

So, suffice it to say, at-least-once semantics are crucial in more ways than one, and not all ActiveJob backends provide them. Redis-based queues, for example, can only be as durable (the “D” in “ACID”) as the underlying datastore, and most Redis deployments intentionally trade-off some durability for speed and availability. Plus, even when running in the most durable mode, Redis-based ActiveJob backends tend to dequeue jobs before they are executed, meaning that if a worker process crashes at the wrong moment, or is terminated during a code deployment, the job is lost. These frameworks have recently begun to move away from this LPOP-based approach, in favor of using RPOPLPUSH (to atomically move jobs to a queue that can then be monitored for orphaned jobs), but outside of Sidekiq Pro, this strategy doesn’t yet seem to be broadly available.

And these job execution guarantees aren’t the only area where a background queue might fail to be resilient. Another big resilience failure happens far earlier, during the enqueue step.

Enqueues and Transactions

See, there’s a major “gotcha” that may not be obvious from the list of ActiveJob backends. Specifically, it’s that some queues rely on an app’s primary database connection—they are “database-backed,” against the app’s own database—whereas others rely on a separate datastore, like Redis. And therein lies the rub, because whether or not our job queue is colocated with our application data will greatly inform the way that we write any job-adjacent code.

More precisely, when we make use of database transactions (which, when we use ActiveRecord, we assuredly do whether we realize it or not), a database-backed queue will ensure that enqueued jobs will either commit or roll back with the rest of our ActiveRecord-based changes. This is extremely convenient, to say the least, since most jobs are enqueued as part of operations that persist other changes to our database, and we can in turn rely on the all-or-nothing nature of transactions to ensure that neither the job nor the data mutation is persisted without the other.

Meanwhile, if our queue existed in a separate datastore, our enqueues will be completely unaware of the transaction, and we’d run the risk of enqueuing a job that acts on data that was never committed, or (even worse) we’d fail to enqueue a job even when the rest of the transactional data was committed. This would fundamentally undermine our at-least-once execution guarantees!

We already use ACID-compliant datastores to solve these precise kinds of data persistence issues, so with the exception of really, really high volume operations (where a lot of noise and data loss can—or must—be tolerated), there’s really no reason not to enqueue jobs co-transactionally with other data changes. And this is precisely why, at Betterment, we start each application off with a database-backed queue, co-located with the rest of the app’s data, with the guarantee of at-least-once job execution.

By the way, this is a topic I could talk about endlessly, so I’ll leave it there for now. If you’re interested in hearing me say even more about resilient data persistence and job execution, feel free to check out Can I break this?, a talk I gave at RailsConf 2021! But in addition to the resiliency guarantees outlined above, we’ve also given a lot of attention to the operability and the scalability of our queue. Let’s cover operability first.

Maintaining a Queue in the Long Run

Operating a queue means being able to respond to errors and recover from failures, and also being generally able to tell when things are falling behind. (Essentially, it means keeping our on-call engineers happy.) We do this in two ways: with dashboards, and with alerts.

Our dashboards come in a few parts. Firstly, we host a private fork of delayed_job_web, a web UI that allows us to see the state of our queues in real time and drill down to specific jobs. We’ve extended the gem with information on “erroring” jobs (jobs that are in the process of retrying but have not yet permanently failed), as well as the ability to filter by additional fields such as job name, priority, and the owning team (which we store in an additional column).

We also maintain two other dashboards in our cloud monitoring service, DataDog. These are powered by instrumentation and continuous monitoring features that we have added directly to the delayed gem itself. When jobs run, they emit ActiveSupport::Notification events that we subscribe to and then forward along to a StatsD emitter, typically as “distribution” or “increment” metrics. Additionally, we’ve included a continuous monitoring process that runs aggregate queries, tagged and grouped by queue and priority, and that emits similar notifications that become “gauge” metrics. Once all of these metrics make it to DataDog, we’re able to display a comprehensive timeboard that graphs things like average job runtime, throughput, time spent waiting in the queue, error rates, pickup query performance, and even some top 10 lists of slowest and most erroring jobs.

On the alerting side, we have DataDog monitors in place for overall queue statistics, like max age SLA violations, so that we can alert and page ourselves when queues aren’t working off jobs quickly enough. Our SLAs are actually defined on a per-priority basis, and we’ve added a feature to the delayed gem called “named priorities” that allows us to define priority-specific configs. These represent integer ranges (entirely orthogonal to queues), and default to “interactive” (0-9), “user visible” (10-19), “eventual” (20-29), and “reporting” (30+), with default alerting thresholds focused on retry attempts and runtime.

There are plenty of other features that we’ve built that haven’t made it into the delayed gem quite yet. These include the ability for apps to share a job queue but run separate workers (i.e. multi-tenancy), team-level job ownership annotations, resumable bulk orchestration and batch enqueuing of millions of jobs at once, forward-scheduled job throttling, and also the ability to encrypt the inputs to jobs so that they aren’t visible in plaintext in the database. Any of these might be the topic for a future post, and might someday make their way upstream into a public release!

But Does It Scale?

As we’ve grown, we’ve had to push at the limits of what a database-backed queue can accomplish. We’ve baked several improvements into the delayed gem, including a highly optimized, SKIP LOCKED-based pickup query, multithreaded workers, and a novel “max percent of max age” metric that we use to automatically scale our worker pool up to ~3x its baseline size when queues need additional concurrency.

Eventually, we could explore ways of feeding jobs through to higher performance queues downstream, far away from the database-backed workers. We already do something like this for some jobs with our journaled gem, which uses AWS Kinesis to funnel event payloads out to our data warehouse (while at the same time benefiting from the same at-least-once delivery guarantees as our other jobs!). Perhaps we’d want to generalize the approach even further.

But the reality of even a fully “scaled up” queue solution is that, if it is doing anything particularly interesting, it is likely to be database-bound. A Redis-based queue will still introduce DB pressure if its jobs execute anything involving ActiveRecord models, and solutions must exist to throttle or rate limit these jobs. So even if your queue lives in an entirely separate datastore, it can be effectively coupled to your DB’s IOPS and CPU limitations.

So does the delayed approach scale?

To answer that question, I’ll leave you with one last takeaway. A nice property that we’ve observed at Betterment, and that might apply to you as well, is that the number of jobs tends to scale proportionally with the number of customers and accounts. This means that when we naturally hit vertical scaling limits, we could, for example, shard or partition our job table alongside our users table. Then, instead of operating one giant queue, we’ll have broken things down to a number of smaller queues, each with their own worker pools, emitting metrics that can be aggregated with almost the same observability story we have today. But we’re getting into pretty uncharted territory here, and, as always, your mileage may vary!

Try it out!

If you’ve read this far, we’d encourage you to take the leap and test out the delayed gem for yourself! Again, it combines both DelayedJob and its ActiveRecord backend, and should be more or less compatible with Rails apps that already use ActiveJob or DelayedJob. Of course, it may require a bit of tuning on your part, and we’d love to hear how it goes! We’ve also built an equivalent library in Java, which may also see a public release at some point. (To any Java devs reading this: let us know if that interests you!)

Already tried it out? Any features you’d like to see added? Let us know what you think!

Did you miss our previous article…

Buying A Home: Down Payments, Mortgages, And Saving For Your Future

Buying A Home: Down Payments, Mortgages, And Saving For Your Future

Your home may be the largest single purchase you make during your lifetime. That can make it both incredibly exciting and nerve wracking.

Purchasing a primary residence often falls in the grey area between a pure investment (meant to increase one’s capital) and a consumer good (meant to increase one’s satisfaction). Your home has aspects of both, and we recognize that you may purchase a home for reasons that are not strictly monetary, such as being in a particular school district or proximity to one’s family. Those are perfectly valid inputs to your purchasing decision.

However, as your financial advisor, this guide will focus primarily on the financial aspects of your potential home purchase: We’ll do this by walking through the five tasks that should be done before you purchase your home.

1. Build your emergency fund.

Houses are built on top of foundations to help keep them stable. Just like houses, your finances also need a stable foundation. Part of that includes your emergency fund. We recommend that, before purchasing a home, you should have a fully-funded emergency fund. Your emergency fund should be a minimum of three months’ worth of expenses.

How big your emergency fund should be is a common question. By definition, emergencies are difficult to plan for. We don’t know when they will occur or how much they will cost. But we do know that life doesn’t always go smoothly, and thus that we should plan ahead for unexpected emergencies.

Emergency funds are important for everyone, but especially so if you are a homeowner. When you are a renter, your landlord is likely responsible for the majority of repairs and maintenance of your building. As a homeowner, that responsibility now falls on your shoulders. Yes, owning a home can be a good investment, but it can also be an expensive endeavor. That is exactly why you should not purchase a home before having a fully-funded emergency fund.

And don’t forget that your monthly expenses may increase once you purchase your new home. To determine the appropriate size for your emergency fund, we recommend using what your monthly expenses will be after you own your new home, not just what they are today.

Open your Safety Net
Get Started>

2. Choose a fixed-rate mortgage.

According to 2020 survey data by the National Association of Realtors®, 86% of home buyers took out a mortgage. This means that most people have to choose which type of mortgage is appropriate for them, and one of the key factors is deciding between an adjustable-rate mortgage (ARM) and a fixed-rate mortgage (FRM). Betterment generally recommends choosing a fixed-rate mortgage.

Here’s why:

As shown below, ARMs usually—but not always—offer a lower initial interest rate than FRMs.

Source: Federal Reserve Bank of St. Louis. Visualization of data by Betterment.

But this lower rate comes with additional risk. With an ARM, your monthly payment can increase over time, and it is difficult to predict what those payments will be. This may make it tough to stick to a budget and plan for your other financial goals.

Fixed-rate mortgages, on the other hand, lock in the interest rate for the lifetime of the loan. This stability makes budgeting and planning for your financial future much easier. Locking in an interest rate for the duration of your mortgage helps you budget and minimizes risk.

Luckily, most home buyers do choose a fixed-rate mortgage. According to 2020 survey data by the National Association of Realtors®, 89% of home buyers who financed their home purchase used a fixed-rate mortgage, and this was very consistent across all age groups. Research by the Urban Institute also shows FRMs have accounted for the vast majority of mortgages over the past 2 decades.

Source: National Association of Realtors®, 2020 Home Buyers and Sellers Generational Trends. Visualization of data by Betterment.

3. Save For The Upfront Costs: Down Payment And Closing

You’ll need more than just your emergency fund to purchase your dream home. You’ll also need a down payment and money for closing costs. Betterment recommends making a down payment of at least 20%, and setting aside about 2% of the home purchase for closing costs.

A 2020 National Association of Realtors® survey shows the median down payment amount for home purchases is 12%. As the chart below shows, younger buyers tend to make smaller down payments than older buyers.

Source: National Association of Realtors®, 2020 Home Buyers and Sellers Generational Trends.  Visualization of data by Betterment.

But is making an average down payment of only 12% a wise decision? It is true that you are often allowed to purchase a home with down payments far below 20%. For example:

FHA loans allow down payments as small as 3.5%.Fannie Mae allows mortgages with down payments as small as 3%.VA loans allow you to purchase a home with no down payment.

However, Betterment typically advises putting down at least 20% when purchasing your home. A down payment of 20% or more can help avoid Private Mortgage Insurance (PMI). Putting at least 20% down is also a good sign you are not overleveraging yourself.

Lastly, a down payment of at least 20% may help lower your interest rate. This is acknowledged by the CFPB and seems to be true when we compare interest rates of mortgages with Loan-to-Values (LTVs) below and above 80%, as shown below.

Source: Federal Reserve Bank of St. Louis. Visualization of data by Betterment.

Depending on your situation, it may even make sense to go above a 20% down payment. Just remember, you shouldn’t put every spare dollar you have into your home, as that will likely mean you don’t have enough liquid assets elsewhere for things such as your emergency fund and other financial goals like retirement.

Closing Costs

In addition to a down payment, buying a home also has significant transaction costs. These transaction costs are commonly referred to as “closing costs” or “settlement costs.”

Closing costs depend on many factors, such as where you live and the price of the home.

ClosingCorp, a company that specializes in closing costs and services, conducted a study that analyzed 2.9 million home purchases throughout 2020. They found that closing costs for buyers averaged 1.69% of the home’s purchase price, and ranged between states from a low of 0.71% of the home price (Missouri) up to a high of 5.90% of the home price (Delaware). The chart below shows more detail.

Source: ClosingCorp, 2020 Closing Cost Trends. Visualization of data by Betterment.

As a starting point, we recommend saving up about 2% of the home price (about the national average) for closing costs. But of course, if your state tends to be much higher or lower than that, you should plan accordingly.

In total, that means that you should generally save at least 20% of the home price to go towards a down payment, and around 2% for estimated closing costs.

With Betterment, you can open a Major Purchase goal and save for your downpayment and closing costs using either a cash portfolio or investing portfolio, depending on your risk tolerance and when you think you’ll buy your home.

4. Think Long-Term

We mentioned the closing costs for buyers above, but remember: There are also closing costs when you sell your home. These closing costs mean it may take you a while to break even on your purchase, and that selling your home soon after is more likely to result in a financial loss. That’s why Betterment doesn’t recommend buying a home unless you plan to own that home for at least 4 years, and ideally longer.

Unfortunately, closing costs for selling your home tend to be even higher than when you buy a home. Zillow, Bankrate, NerdWallet, The Balance and Opendoor all estimate them at around 8% to 10% of the home price.

Betterment’s research analyzed closing costs for both buying and selling, the opportunity costs of potentially investing that money, and more. It shows that the average expected breakeven time is about 4 years as shown below. Of course, this will depend on many factors, but is helpful as a general guide. Thus, if you do not plan to own your home for at least 4 years, you should think carefully on whether buying a home is a smart move at this point in your life.

Source: Betterment, Is Buying A Home A Good Investment? Visualization of data by Betterment.

Luckily, it appears that most home buyers stay in their homes beyond our 4-year rule of thumb. The chart below is built from 2020 survey data by the National Association of Realtors®. It shows how long individuals of various age groups stayed in their previous homes before selling them.

Across all age groups, the median length of time was 10 years, which is more than double our 4-year rule of thumb. That’s excellent. However, we can see that younger buyers, on average, come in well below the 10-year median, which indicates they are more at risk of not breaking even on their home purchases.

Source: National Association of Realtors®, 2020 Home Buyers and Sellers Generational Trends. Visualization of data by Betterment.

Some things you can do to help ensure you stay in your home long enough to at least break even include:

If you’re buying a home in an area you don’t know very well, consider renting in the neighborhood first to make sure you actually enjoy living there.Think ahead and make sure the home makes sense for you 4 years from now, not just you today. Are you planning on having kids soon? Might your elderly parents move in with you? How stable is your job? All of these are good questions to consider.Don’t rush your home purchase. Take your time and think through this very large decision. The phrase “measure twice, cut once” is very applicable to home purchases.

5. Calculate Your Monthly Affordability

The upfront costs are just one component of home affordability. The other is the ongoing monthly costs. Betterment recommends building a financial plan to determine how much home you can afford while still achieving your other financial goals. But if you don’t have a financial plan, we recommend not exceeding a debt-to-income (DTI) ratio of 36%.

In other words, you take your monthly debt payments (including your housing costs), and divide them by your gross monthly income. Lenders often use this as one factor when it comes to approving you for a mortgage.

Debt Income Ratios

There are lots of rules in terms of what counts as income and what counts as debt. These rules are all outlined in parts of Fannie Mae’s Selling Guide and Freddie Mac’s Seller/Servicer Guide. While the above formula is just an estimate, it is helpful for planning purposes.

In certain cases Fannie Mae and Freddie Mac will allow debt-to-income ratios as high as 45%-50%. But just because you can get approved for that, doesn’t mean it makes financial sense to do so.

Keep in mind that the lender’s concern is your ability to repay the money they lent you. They are far less concerned with whether or not you can also afford to retire or send your kids to college. The debt to income ratio calculation also doesn’t factor in income taxes or home repairs, both of which can be significant.

This is all to say that using DTI ratios to calculate home affordability may be an okay starting point, but they fail to capture many key inputs for calculating how much you personally can afford. We’ll outline our preferred alternative below, but if you do choose to use a DTI ratio, we recommend using a maximum of 36%. That means all of your debts—including your housing payment—should not exceed 36% of your gross income.

In our opinion, the best way to determine how much home you can afford is to build a financial plan. That way, you can identify your various financial goals, and calculate how much you need to be saving on a regular basis to achieve those goals. With the confidence that your other goals are on-track, any excess cash flow can be used towards monthly housing costs. Think of this as starting with your financial goals, and then backing into home affordability, instead of the other way around.

Wrapping Things Up

If owning a home is important to you, you can use the five steps in this guide to help you make a wiser purchasing decision.

Have an emergency fund of at least three months’ worth of expenses to help with unexpected maintenance and emergencies.Choose a fixed-rate mortgage to help keep your budget stable.Save for a minimum 20% down payment to avoid PMI, and plan for paying ~2% in closing costs.Don’t buy a home unless you plan to own it for at least 4 years. Otherwise, you are not likely to break even after you factor in the various costs of homeownership.Build a financial plan to determine your monthly affordability, but as a starting point, don’t exceed a debt-to-income ratio of 36%.

If you’d like help saving towards a down payment or building a financial plan, sign up for Betterment today.

Save for your home with Betterment
Get Started>

Did you miss our previous article…

Everything You Need to Know About 401(k) Blackout Periods

Everything You Need to Know About 401(k) Blackout Periods

You’ve probably heard of a 401(k) plan blackout period – but do you know exactly what it is and how to explain it to your employees? Read on for answers to the most frequently asked questions about blackout periods.

What is a blackout period?

A blackout period is a time when participants are not able to access their 401(k) accounts because a major plan change is being made. During this time, they are not allowed to direct their investments, change their contribution rate or amount, make transfers, or take loans or distributions. However, plan assets remain invested during the blackout period. In addition, participants can continue to make contributions and loan repayments, which will continue to be invested according to the latest elections on file. Participants will be able to see these inflows and any earnings in their accounts once the blackout period has ended.

When is a blackout period necessary?

Typically, a blackout period is necessary when:

401(k) plan assets and records are being moved from one retirement plan provider to another New employees are added to a company’s plan during a merger or acquisitionAvailable investment options are being modified

Blackout periods are a normal and necessary part of 401(k) administration during such events to ensure that records and assets are accurately accounted for and reconciled. In these circumstances, participant accounts must be valued (and potentially liquidated) so that funds can be reinvested in new options. In the event of a plan provider change, the former provider must formally pass the data and assets to the new plan provider. Therefore, accounts must be frozen on a temporary basis before the transition.

How long does a blackout period last?

A blackout period usually lasts about 10 business days. However, it may need to be extended due to unforeseen circumstances, which are rare; but there is no legal maximum limit for a blackout period. Regardless, you must give advance notice to your employees that a blackout is on the horizon.

What kind of notice do I have to give my employees about a blackout period?

Is your blackout going to last for more than three days? If so, you’re required by federal law to send a written notice of the blackout period to all of your plan participants and beneficiaries. The notice must be sent at least 30 days – but no more than 60 days – prior to the start of the blackout.

Typically, your plan provider will provide you with language so that you can send an appropriate blackout notice to your plan participants. If you are moving your plan from another provider to Betterment, we will coordinate with your previous recordkeeper to establish a timeline for the transfer, including the timing and expected duration of the blackout period. Betterment will draft a blackout notice on your behalf to provide to your employees, which will include the following:

Reason for the blackoutIdentification of any investments subject to the blackout periodDescription of the rights otherwise available to participants and beneficiaries under the plan that will be temporarily suspended, limited, or restrictedThe expected beginning and ending date of the blackoutA statement that participants should evaluate the appropriateness of their current investment decisions in light of their inability to direct or diversify assets during the blackout periodIf at least 30 days-notice cannot be given, an explanation of why advance notice could not be providedThe name, address, and telephone number of the plan administrator or other individual who can answer questions about the blackout

Who should receive the blackout notice?

All employees with a balance should receive the blackout notice, regardless of their employment status. In addition, we suggest sending the notice to eligible active employees, even if they currently don’t have a balance, since they may wish to start contributing and should be made aware of the upcoming blackout period.

What should I say if my employees are concerned about an upcoming blackout period?

Reassure your employees that a blackout period is normal and that it’s a necessary event that happens when significant plan changes are made. Also, encourage them to look at their accounts and make any changes they see fit prior to the start of the blackout period.

Thinking about changing plan providers?

If you’re thinking about changing plan providers, but are concerned about the ramifications of a blackout period, worry no more. Switching plan providers is easier than you think, and Betterment is committed to making the transition as seamless as possible for you and your participants.

Want a better 401(k)?
Learn More>