Compare

testfol.io alternative: an honest comparison with ENSEMBLE

testfol.io is the community favorite for fast, free portfolio backtests on daily data. This comparison covers what it does well, its pricing as of September 2026, where its form-based approach stops, and when ENSEMBLE's plain-language strategies, composition, and agent access are the better fit.

By Updated Published 6 min read

testfol.io, often written testfolio, has become the default free backtester for the Bogleheads and Reddit investing communities, and it earned that position: it uses daily data, it is fast, it handles leverage and simulated long histories, and it costs nothing to use for most purposes. People look for an alternative when they want to test a rule that testfol.io's signal tools cannot express, when they want the implementation and a shareable result rather than a chart in a browser tab, or when they want an API or an AI assistant to drive the research. This page compares testfol.io and ENSEMBLE honestly on each point. Competitor facts were checked on September 3, 2026; pricing is at testfol.io/pricing and should be trusted over this page if the two differ.

What testfol.io does well

  • Free and fast. Core backtesting works anonymously with no account. Results appear in a second or two.
  • Daily data. Drawdown and volatility figures are computed from daily prices, which is more accurate than the monthly data some older tools use.
  • Leverage and expense modifiers. Appending ?L=2 to a ticker simulates 2x daily leverage with a financing cost; ?E=0.5 applies an annual expense ratio. This makes testfol.io the standard tool for leveraged ETF research.
  • Simulated long histories. Tickers like SPYSIM and TLTSIM extend index histories back decades using underlying index data, so a portfolio can be tested through the 1970s and 1980s rather than only the ETF era.
  • Cash flows and rebalancing bands. Contributions, withdrawals, and drift-based rebalancing rather than only calendar rebalancing.
  • Tactical signal tools. A Signal Analyzer that swaps between allocations based on documented indicators such as moving averages, with configurable frequency and offsets.
  • Active development. It is built by a small team that ships features frequently and responds to community reports.

For fixed allocations, leveraged research, and long-history simulation, it is a very good tool and you should keep using it.

Pricing and limits, as of September 2026

testfol.ioENSEMBLE
Free useAnonymous for core backtests; some tools require sign-in$100 credit on signup, no card required
Entry paid planPro, $15/month or $150/year; uploads, downloads, alerts, cloud saves, higher limitsStarter, $0/month; usage at list rates; reads free
Upper planPro+, $30/month or $300/year; higher limitsHobby $33/month with $50 included usage; Business $99/month with $200 included usage, webhooks, white-label fact sheets, broker allocation files, fee modeling
DataDaily, end of dayDaily closes, total return, about twenty years
Costs modeledExpense ratios and leverage financing via modifiersSimulated execution cost on every trade
APINone documentedREST API with OpenAPI schema; hosted MCP server
Allocation exportsDownloads on paid plansCurrent target weights as CSV or JSON; Altruist and Interactive Brokers upload files on Business

ENSEMBLE's pricing is on the pricing page and at /pricing.md.

Where the tools differ

Forms versus descriptions

testfol.io is form-driven, and its forms are more flexible than most: modifiers, cash flows, bands, and signals cover a lot of ground. But a form can only express what its designer anticipated. A rule that combines two signals, applies a signal to one sleeve and not another, or uses a construction like inverse-volatility weighting has to wait for a feature.

ENSEMBLE is description-driven. You write the rule; the platform writes and runs the code. "Risk parity across SPY, TLT and GLD on a 60-day volatility lookback, but move the TLT sleeve to BIL when TLT is below its 200-day average" is one sentence and one model. The strategies section has worked examples, and how to backtest a portfolio explains what a complete description contains.

The reverse trade-off holds as well: when what you want is on the form, the form is faster.

Simulated versus actual history

testfol.io's simulated tickers and leverage modifiers let you test through decades that no ETF covers. That is a real capability with a real caveat: simulated leverage and extended histories are models of what a fund would have done, with assumptions about financing costs, tracking, and expenses baked in. The common mistakes guide's section on regime-limited samples cuts both ways here; a longer sample is better, and a simulated sample is a sample of a model.

ENSEMBLE backtests only actual listed instruments over their actual history, roughly twenty years of daily total-return data for the main ETFs. That is a narrower window and a more literal one. Neither approach is wrong; they answer different questions.

The implementation

testfol.io shows the result. ENSEMBLE shows the result and the Python that produced it, downloadable as a standalone file. For a rule-based strategy, the code is where the edge cases live, such as what "monthly" means when the month ends on a holiday or what the portfolio holds on the first day before a signal exists, and being able to read those choices is the difference between testing your rule and testing the tool's interpretation of it. The code is yours to keep as well: an inverse-volatility or momentum construction on ENSEMBLE is written out in full and downloads as a standalone script, not a signal option whose internals you cannot inspect.

Composition

ENSEMBLE models hold assets, other models, or both, to any depth, so you can build a client model from a fixed core and several rule-based sleeves, each with its own tear sheet, and see the look-through holdings of the whole. testfol.io backtests one allocation at a time.

Persistence and sharing

An ENSEMBLE model is a durable object: a public tear sheet URL, an embed, a nightly rerun that keeps it current, and, on Business, webhooks that deliver allocation changes and a white-label PDF fact sheet. testfol.io saves and shares backtests on paid plans as configurations that recompute when opened.

Agents and automation

testfol.io has no documented API, so it is a tool for a person at a keyboard. ENSEMBLE exposes every capability through a REST API and a hosted MCP server, which means Claude, Cursor, or a custom agent can build, read, and revise models. If AI-assisted research is part of how you work, see the AI agents section; this is the largest difference between the two tools.

A live example

The prompt below is a rule that testfol.io's Signal Analyzer can approximate and ENSEMBLE expresses directly, including the month-end evaluation and the explicit cash instrument. Run it to see the tear sheet, the trade count, and the generated code.

The 200-day moving average page explains what this rule does, where it has failed, and which variations are worth testing.

Choose testfol.io if

  • You want a fast, free backtest of a fixed allocation with no setup at all.
  • You are researching leveraged ETFs or need simulated leverage on an unlevered index.
  • You need history back to the 1970s or 1980s via simulated funds.
  • You model drift-band rebalancing on a fixed allocation, or want contributions and withdrawals as backtest modifiers rather than as a simulation.
  • The signal you want is one the Signal Analyzer offers.

Choose ENSEMBLE if

  • The rule you want to test is not on any form.
  • You want to read and keep the implementation, not just the chart.
  • You want to compose models out of other models.
  • You want a public tear sheet that updates nightly, or fact sheets and exports for clients.
  • You want the current allocation as a file your custodian can import (Altruist, Interactive Brokers).
  • You want an API, or an AI assistant that can run the research.

Using both

There is no conflict in doing so. testfol.io for quick allocation checks, leveraged research, and long simulated histories; ENSEMBLE for rule-based strategies, composition, persistence, and agents. The two tools overlap on the plain 60/40 backtest and diverge almost everywhere else.

Backtests are hypothetical, past performance does not guarantee future results, and ENSEMBLE is research software rather than an investment adviser. testfol.io is an independent product not affiliated with ENSEMBLE.

Frequently asked questions

Is testfol.io free?
As of September 2026, testfol.io can be used free and anonymously for core backtests, with some tools requiring a free sign-in. Paid plans are Pro at $15 per month or $150 per year and Pro+ at $30 per month or $300 per year, adding uploads, downloads, alerts, cloud saves, and higher limits. Check testfol.io/pricing for current terms.
Can ENSEMBLE backtest leveraged ETFs?
It can backtest any listed leveraged ETF over its actual history, such as UPRO or TQQQ since their launch dates. It does not simulate leverage on an unlevered fund or extend history with synthetic data, which testfol.io does with its ticker modifiers and simulated funds. For long-history leveraged backtests, testfol.io is the better tool.
Which uses daily data?
Both. testfol.io and ENSEMBLE compute results from daily prices, which gives more accurate drawdown figures than monthly tools. ENSEMBLE additionally charges a simulated transaction cost on every trade and computes metrics on the net series.
Does testfol.io have an API?
No public API is documented as of September 2026. ENSEMBLE exposes everything through a REST API and a hosted MCP server for AI assistants and custom agents.

Related

Backtests are illustrative. Past performance does not guarantee future results. ENSEMBLE is a software platform, not an investment adviser.

Part of Backtesting tools compared.

Backtest this strategy on ENSEMBLE.Run this backtest