Robo-advisor and wealthtech testing
FintechAssuranceLabs tests robo-advisors and digital wealth platforms, products like Betterment, Wealthfront, and Acorns, that charge a percentage of assets under management or a subscription. The test scope covers advisory fee billing, drift-based rebalancing, tax-loss harvesting and wash sale checks, tax-lot relief, recurring and round-up deposits, and the evidence securities regulators request.
What breaks in robo-advisors and what it costs
A robo-advisor earns its advisory fee or subscription on every managed account, every day, so a defect in valuation, trading, or tax logic repeats across the book until a billing run, a tax form, or an examiner finds it.
- Advisory fee billed on the wrong asset base. The billing job reads the custodial feed, which counts a pending deposit in the balance before the deposit settles, and it bills two linked household accounts separately. On a synthetic schedule of 0.40% up to 100,000.00 and 0.25% above, household accounts of 80,000.00 and 60,000.00 each billed at 0.40% pay 560.00 per year instead of 500.00. The SEC Division of Examinations lists incorrect householding, misapplied breakpoints, pending deposits in custodial feeds, and unrefunded prepaid fees on terminated accounts among observed fee deficiencies, which often led advisers to return money to clients (SEC risk alert, 10 November 2021). Our financial calculation testing recalculates each fee from an independent reference model.
- Harvested loss undone by a recurring deposit. The tax-loss harvesting engine sells a fund at a loss and switches to a replacement fund, but the weekly recurring deposit or a dividend reinvestment buys the original fund 12 days later. IRC section 1091(a) disallows the loss when substantially identical securities are acquired within 30 days before or after the sale. For covered securities with the same CUSIP in the same account, 26 CFR 1.6045-1(d)(6)(iii)(A) requires the broker to report the disallowed loss on Form 1099-B and add it to the basis of the new shares. When the repurchase happens in the client's IRA, Rev. Rul. 2008-5 holds that the loss is disallowed and the IRA basis is not increased, so the tax benefit is lost for good.
- Lot relief method differs between engine and custodian. The engine computes the harvested loss on the highest-cost lots, but the sell order reaches the clearing broker without a lot instruction. Under 26 CFR 1.1012-1(c)(1), stock sold without adequate identification is charged against the earliest lot, and 1.1012-1(c)(8) accepts a standing order as that identification. The 1099-B then reports a different basis and holding period than the in-app tax report, and the client files on the 1099-B.
- Drift check that counts unsettled cash. The rebalancer treats an unsettled deposit as a cash overweight, sells equities to restore the 60/40 target, and buys them back after settlement. Each cycle realises short-term gains in taxable accounts. SEC staff guidance says a robo-adviser should consider disclosing that its algorithm might rebalance more often than a client expects, and should consider policies for testing algorithmic code before and after release (IM Guidance Update 2017-02).
- Depreciation alert measured from the wrong baseline. An EU portfolio management app compares today's value with yesterday's value, or resets the baseline after each deposit, so a gradual 12% fall never triggers a notice. Article 62(1) of Delegated Regulation (EU) 2017/565 requires the firm to inform the client when the portfolio value at the start of the reporting period depreciates by 10%, and at each further 10%, by the end of that business day.
Licence flag and the evidence regulators ask for
Robo-advisors carry the licence flag: discretionary portfolio management needs investment adviser registration or investment firm authorisation, and trades run through a registered broker-dealer or custodian. Regulatory sources in this section were checked on 2026-09-16.
United States
Advisers register with the SEC under section 203 of the Investment Advisers Act of 1940, or with their state where section 203A applies, and client trades usually clear through a FINRA member broker-dealer. Rule 206(4)-7 requires written compliance policies reviewed at least annually, and Rule 204-2 requires true, accurate, and current books and records. FinCEN's anti-money laundering programme rule for registered investment advisers now takes effect on 1 January 2028, after a final rule dated 31 December 2025 postponed it (FinCEN). Evidence we produce for an SEC examination:
- fee recalculation results per account against the advisory agreement and Form ADV Part 2A fee description
- prorated fee and refund checks for accounts opened, funded, or closed mid-cycle
- wash sale and lot relief test results reconciled to Form 1099-B output
- algorithm release test records: rebalancing and harvesting cases run before and after each model change
European Union
Portfolio management and investment advice need investment firm authorisation under MiFID II Article 5, and investment firms are in scope of DORA and the EU anti-money laundering rules. Paragraph 90 of ESMA's suitability guidelines (ESMA35-43-3172) states that firms using automated tools should regularly monitor and test their algorithms and should have a documented test strategy with test plans, test cases, test results, and defect resolution. Evidence we produce for a national competent authority:
- the algorithm test strategy, test cases, and results in the structure paragraph 90 describes
- depreciation notice tests at 10% and 20% thresholds, including thresholds crossed on non-business days
- suitability mapping checks from questionnaire answers to model portfolios
Canada
Discretionary online advice requires registration as a portfolio manager, an adviser category in section 7.2 of National Instrument 31-103. CSA Staff Notice 31-342 (24 September 2015) says there is no online advice exemption, describes rebalancing to the target mix at appropriate intervals, and says the system should prompt clients to update their information at least annually. FINTRAC defines a securities dealer to include firms authorised to provide portfolio management, so the FINTRAC obligations for client identification and reporting apply (FINTRAC). Evidence we produce: questionnaire-to-portfolio mapping tests, KYC update prompt and review workflow results, and rebalancing records per account.
Robo-advisor portfolio rebalancing and tax-loss harvesting test cases
We run these scenarios with the corporate action and rebalancing suite from trading and investment platform testing:
- Bill advisory fees on accounts opened, funded, partly withdrawn, and closed mid-quarter, including prepaid fees refunded after a transfer out through the custodian.
- Apply tiered breakpoints across linked household accounts, a spouse unlinking during the cycle, and a fee schedule change on the first day of a quarter.
- Push holdings past absolute and relative drift bands with settled cash, unsettled deposits, pending dividends, and a halted fund.
- Harvest a loss, then buy the original fund within 30 days through a recurring deposit, a dividend reinvestment, a round-up, and a purchase in the same client's IRA.
- Sell with a standing lot instruction and without one, and compare basis, holding period, and gain type with the custodian's 1099-B file.
- Run recurring IRA contributions past the 2026 limit of 7,500 USD, plus the 1,100 USD catch-up for clients aged 50 and over (IRS IR-2025-111), and verify that the next debit stops, because IRC section 4973 imposes a 6% excise tax on excess contributions.
- Return a funding debit as R01 after the shares were bought, and check the sale, the loss posting, and the account restriction, using the Nacha return code testing guide.
- Change a client's risk answers, and verify that the new model portfolio, the rebalancing trades, and the suitability record update together.
Integrations and protocols to cover
- Custodian and clearing APIs: order placement for whole and fractional shares, allocation of block trades to client accounts, and end-of-day position, cash, and activity files reconciled with the platform ledger.
- Cost basis and tax reporting files: lot-level basis data, standing lot instructions, and Form 1099-B and 1099-DIV output from the clearing broker.
- Account transfers: ACATS transfer requests in and out, with cost basis carried over and prepaid fees handled on exit.
- Funding rails: Nacha ACH debits for one-off and recurring deposits, card-linked round-up aggregation, and SEPA Direct Debit as ISO 20022 pain.008 in the EU.
- Bank account linking: open banking and aggregator APIs for funding sources and held-away balances, tested through open banking API testing.
- Market and fund data: end-of-day prices, fund reference data, and dividend and split notices that feed valuation, drift, and billing.
- KYC vendor APIs and suitability questionnaires at onboarding and at each periodic information update.
Related
Standards
- EU AML directives and regulation, KYC obligations
- Digital Operational Resilience Act
- GDPR for financial data
- European Accessibility Act, with WCAG 2.2 and EN 301 549
- Open Banking standards: UK OBIE, Berlin Group
- CFPB personal financial data rights rule (section 1033)
- Nacha Operating Rules for ACH
- PCMLTFA and FINTRAC obligations
Services
Guides
- How to test the accrued interest formula and day count conventions
- How to test banker's rounding in payment and ledger code
- How to test Nacha return codes: ACH return entries, time frames, and ledger effects
- How to test 90-day reauthentication, consent expiry, and token refresh in open banking
- How to test ledger reconciliation against settlement files and bank statements
Sample deliverable
Sample, synthetic data
| ID | Source pair and instrument or asset | Internal quantity or amount | External quantity or amount | Difference (internal minus external) | Break classification and cause |
|---|---|---|---|---|---|
| POS-01 | Internal position ledger vs custodian settled position file: Equity A shares | 1,200 shares | 1,000 shares | +200 shares | Timing break, expected: a 200-share buy executed on trade date settles on T+1 and is absent from the settled position file until the next file |
| POS-02 | Internal position ledger vs clearing position file: Equity B shares | 500 shares | 1,000 shares | -500 shares | Corporate action break, open: the clearing file applies a 2-for-1 split on the effective date and the internal ledger has no split entry |
| POS-03 | Portfolio ledger vs custodian holdings file: Fund A units | 1,250.457362 units | 1,250.457 units | +0.000362 units | Rounding break inside the 0.001-unit tolerance: the portfolio ledger stores units to 6 decimal places and the custodian file to 3 |
| POS-04 | Hot wallet ledger vs blockchain node balance: Testnet coin A on a public testnet | 2.500000 coin A | 2.000000 coin A | +0.500000 coin A | True break, defect: deposit DEP-7713 was credited after 1 confirmation against a configured threshold of 12, and a chain reorganisation removed the transaction from the canonical chain |
| POS-05 | Hot wallet ledger vs blockchain node balance: Testnet coin A on a public testnet | 50.000000 coin A | 49.999580 coin A | +0.000420 coin A | True break, defect: the network fee for withdrawal WD-2291 was paid from the hot wallet and has no ledger entry |
| POS-06 | Tracker holdings from imported exchange history vs self-custody wallet node balance: Testnet coin B | 1.0000 coin B | 0.9995 coin B | +0.0005 coin B | True break, defect: the import records the exchange withdrawal at the gross amount and drops the 0.0005 coin B withdrawal fee, so the lot quantity is overstated by 0.0005 coin B and later disposals consume units the wallet does not hold |
| POS-07 | EWA advance ledger vs employer payroll deduction file: employee EMP-0042, pay period PP-18 | 350.00 XTS | 300.00 XTS | +50.00 XTS | Timing break, expected: advance ADV-5520 was requested after the payroll cut-off and the employer file deducts it in pay period PP-19 |
| POS-08 | Revenue-share remittance ledger vs expected remittance recalculated from processor revenue feed: agreement RBF-0310, month M-06 | 1,200.00 XTS | 1,160.00 XTS | +40.00 XTS | Calculation break, defect: the remittance applies the 8% share to 15,000.00 XTS gross revenue, while the agreement defines the share on 14,500.00 XTS revenue net of refunds |
Amounts use XTS, the ISO 4217 code reserved for testing; Equity A, Equity B, Fund A, and testnet coins A and B are generic test instruments with no market value, and all employee, agreement, deposit, and withdrawal IDs are invented.
Questions
What is a robo advisor?
How do robo advisors work?
What is tax loss harvesting?
How much does a robo advisor cost?
Scope testing for your wealth platform
Send your fee schedule, rebalancing rules, account types, and custodian setup, and we return a test scope covering fee, rebalancing, and tax-lot flows with the evidence each regulator reads.
Scope your testing