Product Guide 12
Fintech AI

Robo-Advisory: How to Build It

A step-by-step guide to building automated investment advice in India. Eight stages, the options at each one, exactly how each step connects to the next, real costs, and what breaks. Written for someone who has not built this before.

Verified September 2026Free · No signupOfficial sources only
BeginnerStart here. No prior knowledge assumed.

How to use this page

This page walks you through building one product: software that tells someone what to invest in, and then either helps them do it or deliberately does not. Goal in, portfolio out, rebalanced over time.

The regulator here is SEBI, not RBI, and the single most important thing to understand arrives before any code: the product most teams have in mind cannot be built by one entity.

Watch out

Advice and execution were structurally separated, and it was deliberate. A registered investment adviser advises and may not execute. An Execution Only Platform executes direct mutual fund plans and may not advise. The free-advice-plus-one-tap-buy product that several Indian platforms offered before 2023 is not one regulated activity that got harder — it is two regulated activities that may not sit in the same entity. Everything else on this page follows from that sentence.

What you are actually building

Before anything else, work out which of these you are. The answer determines your registration, your revenue model, your liability and roughly 80% of your architecture:

You areYou mayYou may NOTYou are paid by
Investment Adviser (IA)Recommend, plan, reviewExecuteThe client. Fee-only, capped
Research Analyst (RA)Publish research, model portfoliosGive personalised adviceSubscription
Execution Only Platform (EOP)Transact direct plansAdvise, or touch regular plansAMCs or investors, by category
DistributorSell regular plansAdviseCommission from the manufacturer
None of thesePublish general educationAnything a reasonable person reads as a recommendationNobody, safely
Note

“Robo-advisory” is not a registration category. There is no robo licence, no lighter-touch digital regime, and no threshold below which an algorithm counts as a calculator. SEBI regulates the activity, and a program that recommends securities to a specific person on the basis of their circumstances is giving investment advice regardless of whether a human read it first.

What this is not:

  • Not a way to avoid the fee cap. Advisory fees for individuals and HUFs are capped, and that ceiling is the first number in the model. Build Sheet 07 works through why.
  • Not safer because the advice came from a model. Using AI increases your responsibility; it does not share it. Step 6.
  • Not education because you called it education. Step 1.

The whole journey, in one table

#StepIn plain words
1Which entity are you?And is what you are planning actually advice.
2RegisterIA, EOP, or both through two entities.
3OnboardKYC, agreement, fee disclosure.
4Risk profilingCapacity and tolerance are different things.
5RecommendAnd store what you excluded.
6Deliver the adviceWith the AI disclosure, and a human who owns it.
7ExecutionThe wall, and how the client crosses it.
8Review and auditTwo clocks, and a line-wise annual audit.
Note

Steps 1, 5, 7 and 8 are the skipped ones. Steps 3, 4 and 6 are the parts that look like a product and a vendor will sell you all three. The registration question, the exclusions record, the execution wall and the audit trail are what an inspection is about.

IntermediateBuild it. Pipelines, tools and working code.

Steps 1 and 2 — the perimeter, and registration

Step 1 — Is what you are building actually advice?

Three screen tests, and if any answer is yes you are probably in the advisory perimeter:

  • Does the output use anything you know about this specific user?
  • Would a reasonable user read it as a recommendation?
  • Would you be comfortable if a regulator saw it without the disclaimer?

The drift is always gradual and it is always the same sequence. A calculator gains a “based on your answers” label. A fund table gains a default sort. A list gains a “popular with people like you” badge. No single change looks like the moment you started giving advice, and by the end you have.

Watch out

“For educational purposes only” is not a defence, and there is a large order saying so. SEBI's December 2025 action against an unregistered advisory operation impounded roughly ₹546 crore and imposed a market ban. The regulator's position is that a disclaimer does not change what an activity is — inside a course, a private group, a newsletter or a chatbot reply. If the label is doing the compliance work, there is no compliance.

Step 2 — Register, and budget properly for it

ItemPosition
Supervisory bodyIAASB — BSE Limited, appointed 25 July 2024 for five years. Your day-to-day counterparty, not SEBI
CapitalThe old corporate net-worth requirement was abolished in December 2024 and replaced by a deposit held under lien in favour of IAASB
QualificationSince November 2025, a graduate of any discipline with the required NISM certification may register. The finance-degree requirement is gone
Fee₹15,000 registration, within 15 days of approval. Budget 3 to 6 months for the process
Corporatisation trigger300 clients OR ₹3 crore in fees in a financial year, whichever comes first. Notify immediately, then 3 months to in-principle and 3 more to complete — onboarding continues throughout
Fee ceiling₹1.51 lakh per client per year for individuals and HUFs, inflation-revised
If you also want to executeA separate entity registered as an EOP. See step 7
Note

Depth on the IA framework — part-time IA, compliance officer eligibility, the perimeter of “investment advice”, the tooling and the data licensing trap — lives in Build Sheet 07 and is not repeated here. This page owns the workflow and the wiring.

Steps 3 to 5 — onboard, profile, recommend

Step 3 — Onboard

KYC, the advisory agreement, and the fee disclosure in writing before any advice. Nothing exotic, and one thing worth building properly on day one: the client should be able to see the fee they are paying as a rupee figure, not only as a percentage. Against a ceiling of ₹1.51 lakh a year, the absolute number is the one that gets questioned later.

Steps 4 and 5 — Profiling and the recommendation

Python — steps 4 and 5, profiling, the binding constraint, and the exclusions nobody stores
from datetime import date, timedelta

# STEP 4. TWO DIFFERENT THINGS, ROUTINELY COLLAPSED INTO ONE SCORE.
#
#   CAPACITY  = how much loss this person can absorb without the plan failing.
#               Arithmetic. Horizon, income stability, dependants, emergency
#               fund, the size of this pot relative to everything else.
#   TOLERANCE = how much loss this person can live through without selling.
#               Psychology. Measured by questionnaire, and questionnaires are
#               optimistic on a day the market is calm.
#
# A single "risk score" that blends them is unusable, because the two failure
# modes are opposite: too much capacity wastes return, too much tolerance
# produces a complaint after a drawdown.

def risk_inputs(client):
    capacity = score_capacity(client)          # 1..7
    tolerance = score_tolerance(client)        # 1..7
    required = required_for_goal(client)       # what the GOAL demands
    binding = min(capacity, tolerance)         # never 'required'
    return {
        "capacity": capacity, "tolerance": tolerance,
        "required": required, "binding": binding,
        # The asymmetry that predicts complaints. Flag it, and record that
        # the conversation happened.
        "flag_review": tolerance - capacity >= 2,
        "goal_unreachable": required > binding,
    }

def resolve_goal(inp, client):
    """If the goal needs more risk than the client can bear, the GOAL changes
    -- horizon, contribution or target -- not the portfolio. This is exactly
    the constraint an optimiser will quietly relax if you let it."""
    if not inp["goal_unreachable"]:
        return {"action": "proceed"}
    return {"action": "renegotiate_goal",
            "options": ["extend_horizon", "raise_contribution", "lower_target"],
            "not_an_option": "raise_risk_above_binding"}

# STEP 5. THE RECOMMENDATION, AND THE PART EVERYONE DROPS.
def recommend(universe, inp, policy):
    included, excluded = [], []
    for f in universe:
        why = exclusion_reason(f, inp, policy)   # ONE reason, the first that bites
        (excluded if why else included).append({"fund": f["id"], "reason": why}
                                               if why else {"fund": f["id"]})
    return {
        "as_of": date.today().isoformat(),
        "binding_constraint": inp["binding"],
        "universe_size": len(universe),
        "included": included,
        # "Why was this fund never recommended to this client?" has a correct
        # answer and it CANNOT be recomputed later, because the catalogue, the
        # policy and the client's profile will all have moved.
        "excluded": excluded,
        "policy_version": policy["version"],
        "universe_snapshot_hash": sha256_of(universe),
    }

# WHAT TO CHECK
# [ ] capacity and tolerance stored SEPARATELY, and both shown to the client
# [ ] 'required' is never a permission. If the goal needs more risk than the
#     client can bear, the goal changes
# [ ] tolerance exceeding capacity by two bands or more is flagged, the
#     conversation is had, and the fact that it was had is recorded
# [ ] store EXCLUSIONS, not just the recommendation. Cheap to write, and the
#     difference between inspection-ready and inspection-panicked
# [ ] store the universe as it stood, not a pointer to a catalogue that
#     changes weekly
# [ ] a risk profile has an expiry. So does a recommendation. They are not
#     the same clock -- see step 8

The gotcha that separates a defensible product from a pretty one: store the exclusions. Every robo-advisor stores what it recommended. Almost none stores what it ruled out and why, because at build time the excluded set looks like the absence of data rather than data.

It is not. “Why was this fund never recommended to this client?” has a correct answer, it is the question an inspection asks, and it cannot be reconstructed later — the catalogue changes weekly, the policy changes quarterly, and the client’s profile changes annually. A few kilobytes per recommendation buys an answer that no amount of effort afterwards can.

Steps 6 to 8 — delivery, the wall, the clocks

Steps 6 to 8 — Delivery, the wall, and the two clocks

Python — steps 6 to 8, the AI disclosure, the execution wall, and two clocks
# STEP 6. DELIVERY, AND THE DISCLOSURE.
# SEBI (Intermediaries) (Amendment) Regulations, 2025 -- notified 10 February
# 2025 -- inserted Regulation 16C: a regulated entity is SOLELY liable for
# the AI/ML tools it uses, whether built in-house or bought. Liability covers
# data privacy and security, the integrity of the output, and compliance with
# all applicable law. There is no vendor to point at.

def deliver(advice, client, ai_used):
    return {
        "advice_id": advice["id"],
        "delivered_at_ist": now_ist(),
        "ai_disclosure": describe_ai_use(ai_used) if ai_used else None,
        # Disclosing the EXTENT of AI use is the requirement. "We use AI" is
        # not an extent. Which step, on what inputs, reviewed by whom.
        "reviewed_by": advice["qualified_reviewer"],   # a named person
        "rationale_plain_words": advice["rationale"],
        "rendered_document": advice["pdf_bytes"],      # what they SAW
    }

# STEP 7. THE WALL.
# An investment adviser may not execute. An Execution Only Platform may not
# advise. The client crosses between them; your code must not.

EOP_CATEGORY = {
    1: {"registers_with": "AMFI", "agent_of": "AMC",      "paid_by": "AMC"},
    2: {"registers_with": "stock_exchange_EOP_segment",
        "agent_of": "investor", "paid_by": "investor",
        "base_minimum_capital_rupees": 10_00_000},
}

def handoff(advice, client, eop):
    # Direct plans only. An EOP may not touch regular plans, and an entity may
    # not be Category 1 and Category 2 at once.
    assert all(f["plan"] == "DIRECT" for f in advice["included"]), "EOP: direct plans only"
    assert eop["entity_id"] != advice["adviser_entity_id"], "advice and execution: separate entities"
    return {
        "action": "present_to_client_for_authorisation",   # never auto-execute
        "client_authorises": True,
        "route": eop["entity_id"],
        "adviser_receives_from_amc": 0,        # fee-only. No commission, ever.
    }

# STEP 8. TWO CLOCKS, AND THEY ARE NOT THE SAME CLOCK.
def clocks(client, advice):
    return {
        "profile_valid_until": client["profiled_on"] + timedelta(days=365),
        "advice_valid_until": advice["as_of"] + timedelta(days=advice["shelf_life_days"]),
        # Suitability can lapse with NOBODY transacting: the fund changed
        # mandate, or the client's circumstances did. Both need a trigger.
        "watch": ["mandate_change", "life_event", "drawdown_breach"],
    }

def monitoring_record(run):
    # Record the runs that found NOTHING. An absence of records is
    # indistinguishable from an absence of monitoring, including to you.
    return {"ran_at_ist": now_ist(), "clients_checked": run["n"],
            "exceptions": run["exceptions"], "no_exception_is_a_result": True}

# WHAT TO CHECK
# [ ] the adviser entity receives nothing from any product manufacturer. Not
#     a rebate, not a marketing fee, not a platform contribution
# [ ] no auto-execution. The client authorises, every time
# [ ] a fund changing mandate re-checks EVERY client holding it. Suitability
#     regresses without anyone transacting
# [ ] glide paths beat annual reviews -- a yearly step-down is wrong for 364
#     days and most wrong in the year before the client needs the money
# [ ] the AI disclosure names the STEP and the INPUTS, not the vendor
# [ ] the annual compliance audit is LINE-WISE against every provision, by a
#     CA, CS or CMA. Build the evidence as you go or reconstruct it in March

The AI position, stated plainly because it is the opposite of what most teams assume: using AI increases your responsibility, it does not share it. SEBI’s position is that responsibility for AI-assisted advice sits with the adviser irrespective of the scale and scenario of AI usage, that the integrity and transparency of the derived advice must be ensured, and that the extent of AI use must be disclosed to the client. Since 10 February 2025 that has had a regulation number: Regulation 16C makes a regulated entity solely liable for AI and ML tools it uses, whether developed in-house or procured.

Watch out

A fuller AI framework is coming and it is not final yet. SEBI put out a consultation on responsible AI in the securities market on 20 June 2025, comments closed 11 July 2025, and the Chairman has since signalled a tiered framework by purpose of AI use, with kill switches and human oversight. Principles trailed in the consultation: board-level governance with technically competent senior oversight, third-party model oversight, independent audits and periodic review, disclosure to clients where AI directly affects them — advisory is named — and testing in an environment segregated from live. Not final at the time of writing. Design to it anyway, because Regulation 16C already puts the liability on you and the tiering only decides how much evidence you have to keep.

The execution wall, in detail

This is the structural fact of the product, so it is worth being precise about what sits on each side.

Category 1 EOPCategory 2 EOP
Registers withAMFIStock exchange, EOP segment, as a stock broker
Acts as agent ofThe AMCsThe investor
Integrates withAMCs and their RTAsThe exchange platform
Paid byThe AMCsThe investor
Deposit₹10 lakh base minimum capital, not additive if already a member in another segment

Both categories: direct plans only, and you may not be both. An EOP may not provide services for regular plans at all, and Category 2 may not act as a transaction aggregator for direct plans.

Note

The commercial consequence is the one to plan around. The pre-2023 Indian model was free advice subsidised by execution or distribution revenue. The separation removed the subsidy: the adviser is fee-only against a capped fee, and the execution platform cannot advise. If your plan assumes advice is a free acquisition channel for an execution business, it is a plan for a structure that no longer exists — and that was the point of the change, not a side effect of it.

What it costs

Robo-advisory — what it costs

Verified September 2026
IA registrationdirect
₹15,000 within 15 days of approval, plus a deposit held under lien in favour of IAASB since the corporate net-worth requirement was abolished in December 2024. Budget 3 to 6 months for the process itself.
A second entity, if you want to executedirect
An EOP registration. Category 1 through AMFI; Category 2 as a stock broker with a ₹10 lakh base minimum capital deposit, not additive if you are already a member in another segment. Two entities, two sets of filings, two boards.
The fee ceilingindirect
₹1.51 lakh per client per year for individuals and HUFs is the ceiling, and the realistic retail average is a fraction of it. It decides whether you can afford human oversight per client, which decides whether you can be advisory at all. Most Indian plans fail at this line rather than at the technology — worked through in Build Sheet 07.
The calculation layerdirect
Effectively free and should be built rather than bought. There is no meaningful optimiser market at Indian retail advisory scale. What a wealthtech platform actually sells is RTA plumbing, reporting and compliance workflow — evaluate it on that.
Market datadirect
Read the redistribution licence before you show a price to a client. A broker API licence generally covers your own use; showing that data to your clients is redistribution. Teams find this in diligence. Detail in Build Sheet 07.
Compliance auditdirect
Annual, line-wise against every provision, by a CA, CS or CMA, with adverse findings filed to timeline. Cheap if the evidence accumulates automatically; expensive if it is reconstructed in March.
AI, as a cost rather than a savingindirect
Regulation 16C makes you solely liable for a model you bought. Add independent review, the disclosure surface, segregated testing and the evidence trail to the subscription price before comparing it against a human.
Where to buy these: Wealth Advisory Build Sheet names every tool with its unit cost. Getting Access covers which ones you can sign up for today, which need a sales call, and which are licensed.
Note

The number that decides the business is clients per adviser. Everything above is fixed cost against a capped per-client fee, so the model lives or dies on how many clients one qualified person can oversee without the oversight becoming a rubber stamp. Work that number out in week one, the same way the Video KYC guide says to work out your audit rate — it is the ceiling on the business and almost nobody computes it until they hit it.

AdvancedShip it. Failure modes, thresholds and evidence.

Three versions you could build

Education, honestly

Build: calculators and explanatory content that use nothing about the individual user, with no default sort, no personalised badge and no “based on your answers”.

You get: a legitimate audience and no advisory perimeter. Run the three screen tests every release, because the drift is gradual and nobody intends it.

Fee-only advisory

Build: IA registration → onboarding with the fee in rupees → capacity and tolerance profiled separately → recommendations with stored exclusions → AI extent disclosed and a named reviewer → client authorises execution elsewhere → two review clocks → evidence accumulating for the annual audit.

Trade: a capped fee against a defensible position. The economics are hard and the compliance is tractable, which is the opposite of what most teams expect.

Advisory and execution, two entities

Build: the above, plus a separately registered EOP, with a handoff that presents for authorisation and never auto-executes, and an adviser entity that receives nothing from any manufacturer.

It breaks when: the two entities share a product team and the wall becomes a diagram rather than a control. Assert it in code — the adviser entity id and the execution entity id are different values, and a commission field on the adviser side is hard-coded to zero.

Note

If you take one thing from this page: store what you excluded, and why. It costs a few kilobytes per recommendation, it is the question an inspection actually asks, and it is the one artefact here that cannot be reconstructed at any price after the fact.

What goes wrong

What goes wrongWhyFix
One entity doing advice and executionBuilt to the pre-2023 model.Two entities. Assert the ids differ in code.
Capacity and tolerance blended into one scoreOne number is easier to display.Store and show both. The failure modes are opposite.
The optimiser relaxed the risk constraint“Required” treated as an input.The goal changes, never the binding constraint.
Cannot say why a fund was never recommendedExclusions were never stored.Store them at recommendation time, with the universe snapshot.
“We use AI” as the disclosureTreated as a label rather than an extent.Name the step, the inputs and the reviewer.
Vendor blamed for a model outputProcurement felt like risk transfer.Regulation 16C: sole liability, in-house or bought.
Auto-execution on acceptanceIt converts better.Client authorises. Every time.
Suitability lapsed with nobody transactingA fund changed mandate.Mandate change re-checks every client holding it.
No record of monitoring that found nothingOnly exceptions were logged.Log the run. Absence of records reads as absence of monitoring.
“Educational” content that personalisesGradual drift, no single guilty release.Three screen tests, every release.
Commission received on the adviser sideA platform rebate booked as revenue.Fee-only. Hard-code the field to zero and test it.

Where to go next

Watch out

This page is a guide, not a specification. Investment advice is a registered activity, the fee ceiling and the advice/execution separation are structural rather than negotiable, and the responsible-AI framework referred to here is a consultation. Nothing here is legal advice. Have your registration route, your advisory agreement and your execution handoff reviewed by qualified counsel before advising a single client.

Sources

Every figure, rule and date on this page, and where to check it. Entries are typed so you can see which are primary-sourced and which are industry reporting.

  1. officialSEBI (Investment Advisers) Regulations and the 2024–25 amendments — the abolition of the corporate net-worth requirement in December 2024 and its replacement with a deposit held under lien in favour of the IAASB; BSE Limited appointed as IAASB on 25 July 2024 for five years; the ₹15,000 registration fee; the 300-client or ₹3 crore corporatisation trigger; the ₹1.51 lakh per client annual fee ceiling for individuals and HUFs; the November 2025 opening of registration to graduates of any discipline holding the required NISM certification; and the annual line-wise compliance audit by a CA, CS or CMA. www.sebi.gov.in
  2. officialSEBI (Intermediaries) (Amendment) Regulations, 2025 — Regulation 16C — notified 10 February 2025 following a November 2024 consultation and the Board’s 208th meeting. A SEBI-regulated entity is solely liable for AI and ML tools it uses, whether developed in-house or procured, covering investor data privacy, the integrity of AI output and compliance with applicable law. Parallel amendments were made on the market infrastructure and depository side. www.sebi.gov.in
  3. officialSEBI regulatory framework for Execution Only Platforms — circular SEBI/HO/IMD/IMD-PoD-1/P/CIR/2023/86 dated 13 June 2023, effective 1 September 2023, with the base minimum capital circular of October 2023. Category 1 registering with AMFI as agent of the AMCs; Category 2 registering as a stock broker in the exchange EOP segment as agent of the investor with a ₹10 lakh deposit that is not additive across segments; direct plans only; no regular plans; and no transaction aggregation for direct plans by Category 2. www.sebi.gov.in
  4. officialSEBI position on advisory and execution segregation — the requirement that advisory and distribution be segregated at client level, and at group level for non-individuals, and that an individual may not provide advice and execution simultaneously — the basis for a robo-advisory platform needing a separate entity. www.sebi.gov.in
  5. officialSEBI consultation paper on responsible AI in the securities market — released 20 June 2025 with comments closed 11 July 2025: governance by technically competent senior management, third-party model oversight, data governance, independent audits and periodic review, disclosure to clients where AI directly affects them including advisory services, testing in an environment segregated from live, and a tiered approach by purpose of AI use. STATUS: NOT FINAL at the time of writing; the Chairman has since signalled tiering with kill switches and human oversight. www.sebi.gov.in
  6. officialSEBI enforcement on unregistered advisory — the December 2025 order impounding approximately ₹546 crore with a market ban, and the established position that a “for educational purposes only” label does not excuse unregistered advisory activity inside a course, a private group or a chatbot reply. www.sebi.gov.in
  7. industryCommentary on the effect of the EOP framework on robo-advisers — the observation that the framework ended the combined free-advice-plus-execution model, so investors no longer obtain both from one platform. Interpretation of a regulatory change, not a figure.
  8. industryReporting on SEBI’s forthcoming AI guidelines — the Chairman’s June and August 2026 remarks on a tiered responsible-AI framework and on SEBI’s own use of AI in surveillance. Speeches and reporting, not notified regulation — treat as direction.

Checked September 2026. The responsible-AI framework is a consultation, not a regulation. Regulation 16C is in force and already places the liability on you; verify the tiering before designing to it.

Ask an AI about this page

Opens your assistant with this page as the source, and a question rather than a summary. It will ask what you are building before it answers.

Nothing is sent from here. The link carries only this page’s title and address.