Disha AI

Enter password to view the deck

 
INR USD

Disha!

AI Health Coach.
Available 24/7. No judgement. Real care.

Disha
🏆 #1 Trending — Health & Fitness, India
App Store — #1 Trending in Health & Fitness
App Store
Play Store — #1 Trending in Health & Fitness
Play Store

Chronic care
is broken.

200 million Indians are living with a chronic condition. The system gives them a diagnosis, a prescription, and a goodbye.
No structured support. No meaningful patient education. No mechanism for compliance.
Predictably most fall off within weeks.

101M
Diabetes
70M
Obesity
50M
Erectile Dysf.
42M
Thyroid
36M
PCOS
27M
Fertility Issues
What chronic care actually needs isn't complicated. Something that knows your entire health story. That helps you get answers at 11pm when you're scared. That helps you navigate the day-to-day decisions. That motivates you when you're down. That helps you get back on track.

That's not an app. That's a person.

Every company arrived at
the same place.

The product did not drive outcomes; the person did.

The product didn't retain users. The person did.

🇮🇳
Sugar.fit
Sugar.fit
300+ coaches
HealthifyMe
HealthifyMe
2,000+ coaches
BeatO
BeatO
500+ certified coaches
🇺🇸
Noom
Noom
2,700 coaches
Livongo
Livongo
All coaches are CDEs

Only humans work

They leave.
When a coach quits, their patients churn with them.
They err.
Inconsistent quality erodes trust and outcomes.
They don't scale.
Supply of quality coaches goes linearly and bottleneck scale.

The cost of human coaching.

Need intensity varies. Willingness to pay with it.
High Low EPISODE 1 · ACUTE PHASE LOW INTENSITY · SPORADIC EPISODE 2 LONG TAIL Diagnosis Time → THE DEAD ZONE Too expensive to serve. ₹3,000/mo Human coach
User's need intensity
Cost of human coach
Health is continuous in need. It becomes episodic in spending.

Now bring the cost to near zero.

What if you could build a coach that never left, never erred, and cost a fraction?
High Low EPISODE 1 · ACUTE PHASE LOW INTENSITY · SPORADIC EPISODE 2 LONG TAIL Diagnosis Time → ₹3,000/mo Human coach ₹300/mo What if?
User's need intensity
Cost of human coach
Cost of an AI coach
At this cost the relationship never breaks and that changes everything.

Your health coach.
A person, not an app.

What makes Disha different
She listens — context, history, emotion
She counsels — empathy-first, outcome-driven
She shows up — proactively, when life gets hard
She adapts — every person gets a different Disha
Disha giving thumbs up
Disha Instagram profile — disha.health

Inside the Disha App

Disha calling screen

Proactive Coaching Calls

Disha calls you for coaching. 20-min onboarding consultation when you start.

Disha chat screen
Memory
Remembers everything — context, history, preferences
Knowledge Base
1000+ health protocols powering every reply

Smart Conversations

Memory + Knowledge Base power every reply with full context.

Disha plans dashboard

Protocol-Driven Plans

Diet & fitness planning from memory. Built-in protocols personalize everything.

Warda Javed.

29 years old. Lucknow. Diagnosed with PCOD, trying to conceive, and feeling unsupported at home.

1
Joined with PCOD, trying to conceive
Signed up July 26 on fertility medication, anxious, and looking for guidance. She lost 3 kg.
2
Pregnant within 1 month
Pregnancy confirmed August 27. Disha supported her through every milestone from day one.
3
34 weeks — Disha by her side every step
From explaining reports to providing pregnancy nutrition and exercises, Disha became her most trusted companion.
💬
1302
Messages exchanged
🌙
71
Late-night messages
after 11:30 PM
📋
10+
Medical reports explained
2 AM
Still there when
no one else is

Real conversations. Real impact.

She explains, so you don’t have to Google
She calms you down at midnight
She takes care of pregnancy nutrition
She is patient when you’re anxious
“Feels unsupported at home.
Looks to Disha for guidance.”
— From Warda’s actual user profile
User downloads Disha
20–30 min onboarding call
Disha listens, understands, and plans — just for you
Personalised Health Plan
PCOS
Pregnancy
Weight loss
Diabetes
Thyroid
Preconception
Erectile Dysf.
Postpartum
Gut health
Mental wellness
100+ more
There is no fixed user journey.
Every path is designed by Disha — in real time, from the very first call.
A PCOS patient's journey looks nothing like a pregnancy or a diabetes journey.

Disha is already delivering care.
At scale.

We launched in September 2025. In just 6 months:

0
Total Talk Time
0
Total Messages
₹2.7Cr+
Last 30 Days Revenue
Month-over-month growth · Nov 2025 → Mar 2026
👥
Active Users
▲ 11x from Nov
Nov
34K
Dec
97K
Jan
284K
Feb
377K
📞
Monthly Talktime (Minutes)
▲ 8.5x from Nov
Nov
336K
Dec
868K
Jan
2.25M
Feb
2.87M
💬
Monthly Messages
▲ 23x from Nov
Nov
266K
Dec
911K
Jan
2.99M
Feb
4.18M

Trending #1 on Play Store & App Store in Health category

Curelink · 2021 – 2025

We didn't
theorise this
problem.
We lived it.

  • 5 years in healthcare
  • 150 coaches scaled
  • 2,000+ Partner Doctors
  • 2,00,000+ patients served
150+ Health Coaches
150+ Health Coaches
Our Team & Doctor Partners
Our Team & Doctor Partners

The Birth of Disha

Building blocks of Disha were forged in our pursuit of delivering better care. We converted our health coaches to become super coaches.

Curelink Co-Pilot
2021 – 2025
Goal: Automate chat & health plan generation
Achieved 89% accuracy in chat automation
📞Call Summarization
Transcribing content between calls and chats
📚Knowledge Base
Manually curated clinical instructions across 4 sections
🥗Diet Plan Generation
Personalized meal plans adapted to culture, budget & medical needs
📣Proactive Outreach
Automated chat nudges, reminders & check-ins
🎙️Dual-Channel Recordings
Separate coach & patient audio tracks used to fine-tune models
🧠Memory
Persistent patient context across every touchpoint
Disha
From internal co-pilot to autonomous AI health coach

Human-Annotated Data

5 years of Curelink's Co-Pilot produced a proprietary, human-annotated dataset that no competitor can replicate overnight. Every consultation, every voice call, every diet chart — captured, cleansed, and labelled by real clinicians.

🔗
Life-cycle depth
Every touch-point captured: intake, labs, plans, follow-ups, outcomes.
🏷️
Human-annotated by clinicians
Notes, goals, interventions & results tagged by practising experts.
Fine-tuning ready
Structured, time-stamped & query-ready for model training and evaluation.
12M+
Chat Queries
Real day-to-day questions, wins & setbacks
23M+
Voice-Consult Minutes
Rich language, tone & empathy cues
45K+
Complete Patient Journeys
From first consult to outcome follow-up
200K+
Personalized Diet Charts
Food, culture, budget & adherence data
21 TB
Structured Longitudinal Records
All cleansed, time-stamped & query-ready
Fine-tuning ready

Our Unfair Advantage — Team

Disha AI Team
12 people. One mission.

Aman & Divyansh

10 years together. 5 years in healthcare.

4 Engineers
4 Health Coaches
1 Doctor
1 HR + Admin

Our Aspiration: Family Doctor
for a Billion People

What we are building first
❤️
Relationship
📊
Data
🛡️
Trust
Once these are built, we become the de facto health OS and health concierge for the entire family
💊GLP-1 & Peptides
🩺AI Family Doctor
🔬Lab Test Booking
👨‍⚕️Specialist Referrals

Two curves.
Both going vertical.

Net Revenue (MoM)

₹1.2L
Sep
₹6L
Oct
₹15.7L
Nov
₹42.5L
Dec
₹99.5L
Jan
₹1.6Cr
Feb
~₹2.4Cr
Mar

New Trial Subscribers (MoM)

2K
Sep
5K
Oct
12K
Nov
35K
Dec
80K
Jan
1.2L
Feb
~1.4L
Mar
Unit Economics
Paid Channel CAC
₹360
per acquired user
Lifetime Value (LTV)
₹800
per acquired user · 2.2× CAC
CAC + Inference Recovery
90 days
full payback window

Beyond paid ads.
3 organic growth bets.

Meta & Google remain our base — these three experiments build a brand that acquires itself.

@disha.health
India's first AI Health Coach
~250K
followers
71
posts
Experiment 01
Disha as Influencer
First AI entity to 10M health followers
  • ~250K followers in 5 months — organically
  • 2K users + 8K messages via Instagram daily
  • POV content + human DMs drive follow-back loop
North star: First AI entity to 10M health followers
Experiment 02
Social Accountability UGC Content
Every milestone → a UGC moment
  • User hits a streak → Disha creates a personalised achievement card
  • Chat nudges user to post & tag Disha
  • Disha reshares every single one
Moat: Every tag compounds one identity — zero brand dilution
Experiment 03
Give One, Get One
Referrals that feel like care, not marketing
  • 1 month free for referring a friend or family member
  • Triggered at active streaks — Disha makes the ask
  • Already happening organically, before any incentive
Insight: WHOOP proved referral works in health — Disha has warmer trust signals already

Three chapters.
One clear mission.

Sep — Nov 2025

Chapter 1: Solve Day 0

  • Perfect the onboarding call
  • Build the first relationship
  • Prove users will talk to an AI for 19 minutes
✓ 80% completion rate. Day 0 solved.
Jan — Mar 2026

Chapter 2: Build the Foundation

  • Memory layer & context-aware chat
  • Data curation pipelines
  • Call cost ₹15₹2.2/min
  • Internal tooling for A/B testing at scale
✓ Platform ready. Unit economics cracked. Profitable.
Starts Apr '26
Apr — Sep 2026

Chapter 3

Retention
Our #1 focus — every feature we build from here is designed to bring users back, every single day.

Retention is improving.
It's our #1 focus.

Usage = Talktime or Manually typed message.
Effort, not consumption.
Effort correlates to Outcomes.
📈 W1 / W2 / W3 / W4 Usage Cohorts
Signup MonthW1W2W3W4
Oct '25 97.35%21.22%9.39%6.57%
Nov '25 95.05%23.82%11.3%7.57%
Dec '25 98.19%28.99%13.95%9.43%
Jan '26 98.88%30.16%18.45%13.46%
Feb '26 98.67%25.58%15.81%10.97%
📅 Month-on-Month Retention
Sign up monthM1M2M3
Oct '25 97.43%9.3%4.57%
Nov '25 95.54%10.95%4.28%
Dec '25 98.34%11.59%5.05%
Jan '26 98.94%15.11%
Feb '26 98.72%
Revenue Retention — Percentage of Users Renewing the Subscription
M1
52%
M2
60%
M3
70%
M4
75%
M5

Active users by subscribing users

Continuous improvement in activation rate with deepening per-user engagement: proof of real improving product-market fit.

98.7%
M1 Activation (Feb '26)
▲ +1.3 pp from Oct
71
Avg Msgs / M1 User (Jan)
▲ 3.3× from Oct
20%
M2 Activation (Jan '26)
▲ +9 pp from Oct
78
Avg Msgs / M2 User (Jan)
▲ 3.8× from Oct
Cohort Breakdown
📊 M1 Active User — Usage & Calls
Sign up monthM1 SubsActiveActive %Avg MsgsAvg Talk (m)
Oct '25 2,300 2,241 97.43% 21.54 20.48
Nov '25 5,114 4,886 95.54% 29.2 22.08
Dec '25 13,403 13,180 98.34% 48.27 23.01
Jan '26 27,919 27,624 98.94% 71.32 23.46
Feb '26 39,131 38,629 98.72% 56.67 20
📊 M2 Active User — Usage & Calls
Sign up monthM2 SubsActiveActive %Avg MsgsAvg Talk (m)
Oct '25 1,209 136 11.25% 20.65 2.87
Nov '25 2,751 306 11.12% 27.59 4.8
Dec '25 7,198 1,083 15.05% 63.98 5.29
Jan '26 13,467 2,699 20.04% 78.1 8.1

Activation scaled without diluting. Even as the subscriber base grew 17× (2.3K → 39.1K), M1 activation held rock-steady above 95% — peaking at 98.94% in Jan. Per-user messages grew 3.3× from 22 to 71. M2 re-engagement nearly doubled — 20% activation with 78 avg messages in Jan — signalling deepening habit formation, not one-time curiosity.

Four pillars.
One brain that runs them all.

Everything a human coach does — proactively, at zero marginal cost. Four pillars of daily engagement, grounded in an education layer, all orchestrated by a compliance engine that decides when to reach out and what each user needs next.

01 💬
Proactive Check-ins
Chat + Call
  • Weekly review calls
  • Mid-week check-in calls
  • Motivation calls
  • Reminder calls & nudges
02 🏃
Exercise & Sessions
Live + Guided
  • Exercise & yoga
  • Guided meditation
  • Antenatal · Zumba
  • Garbh Sanskar
03 📋
Care Plans & I-Charts
Condition-specific
  • Weight loss
  • Sexual wellness — ED/PE
  • Skin & hair care routines
  • Condition care routines
04 💊
On-Demand: Rx
Anytime
  • Prescriptions (Rx) on demand
  • Instant answers, 24×7
  • Whatever the user needs, now
care plans & routines are built on
📚
Education Layer
Every plan, recipe & routine explains the "why" — so users understand, trust, and stick to it.
and all of it runs on
⚙️
Compliance Engine
The brain that orchestrates everything — it computes, in real time:
When to talk to the user
📞 When to proactively call
🎯 The right moment to engage
🏃 What exercise they need
What breaks they need
🥗 The diet plan to follow
💊 What they can get on-demand
📊 The next best action

The only bet
you are making.

What is proven

  • Two GTM channels that work
  • ₹2.7 crore monthly revenue with 30% profits
  • A team who delivered results in the last 5 years with 150 coaches serving more than 2 lakh patients

What has to be proved

  • Retention — Disha is not yet a complete coach; capabilities are still being built. Can we improve retention as she matures?

We closed a $3.5 million seed round in April 2022 from Elevation Capital, Venture Highway, and some angels.

15+ health conditions.
One trusted companion.

Health goals of users who signed up in the last 7 days — showing the breadth of conditions Disha serves.

Health Goals
Condition breakdown
Demographics
Age breakdown

Share of new signups in the last 7 days by age band (illustrative).

18–24
22%
25–34
41%
35–44
24%
45+
13%

Disha with GLP-1 Agonists

Glucagon-like peptides that control blood sugar, slow digestion, and signal fullness — powering the next generation of weight & metabolic care.

In-House Doctor
Titration management — gradual dose escalation from lowest effective dose, adjusting every ~4 weeks based on tolerability and targets
Obese patients (>25% of users) — GLP-1 is almost always indicated; can be prescribed for virtually all
BMI ≥ 30 category
Overweight patients — at physician’s discretion based on comorbidities and metabolic status
Pre-prescription workup & written test summary
HbA1c Fasting Glucose eGFR LFTs Lipid Profile Amylase / Lipase TSH CBC
Medicine
GLP-1 Cost per Month (INR)
₹28,000
1 year
ago
₹10,000
3-4 months
ago
₹1,250–1,716
Today
~96% price drop
Alterme
by Zydus
₹1,250
Obesema
by Alkem
₹1,716
Regulatory Moat DCGI Mandate
DCGI banned all direct-to-consumer marketing of GLP-1 (Mar 2026). Rx restricted to endocrinologists, internists & cardiologists. 49 businesses audited; violators face license cancellation.
Disha’s AI counsels organically, then routes to our in-house doctor for Rx — fully compliant, no marketing needed.
No competitor can replicate this AI-counselling-to-doctor funnel — the only scalable, regulation-compliant distribution path.
Health Coaching
1 Ramp-On
~4–8 weeks
Heavy intervention period. Appetite drops sharply in the first few weeks — solid food intake almost stops. The coach must guide the transition.
Shift to small, frequent meals to sustain metabolism while the body adjusts to the medication
Day-to-day symptom management techniques — what to eat, when, and how much during each titration step
Nausea Vomiting Constipation Bloating Abdomen Pain Low Appetite
Disha handles daily coaching, dietary pivots & escalations
2 Maintenance
~3–6 months
Steady-state monitoring. Weight loss is active; the focus shifts to preserving muscle mass and building sustainable habits.
Protein-first diet plans to prevent muscle mass loss during rapid weight reduction
Exercise routines introduced — Disha guides live workout sessions tailored to the user’s capacity
Ongoing dietary compliance, glucose & weight tracking, and dose-hold reviews
Disha tracks compliance, runs live exercises & flags lapses
3 Off-Ramp
6–18 months total
Gradual tapering & lifestyle lock-in. Two paths based on clinical outcome and user preference:
Continue low-dose — doctor decides to maintain a reduced dose for long-term metabolic support
Full discontinuation — appetite returns; Disha ramps up exercise intensity and meal volume to compensate for the hunger rebound
User preference matters — some want to stop early; Disha adapts the plan in real time to sustain results
Disha adapts exercise & diet to prevent weight regain
Escalation to Doctor
Throughout all phases, Disha triages symptoms using a red / amber / yellow protocol. Severe cases (persistent vomiting, dehydration, suspected pancreatitis) are routed to our in-house physician same-day; non-urgent flags are documented for the next scheduled review.

How Disha is different from ChatGPT

No Diagnosis
Lack of Probing
Follow-ups
& Checkins
Confrontational
counselling
Care and
intervention
protocols
Indian Cultural
and Regional
Relevance

Why those features are difficult to build?

Propriety Health Data on which it is fine tuned on.

Conviction on the final user experience.

Regulatory advantage in India compared to stricter US healthcare regulations.

Why

Healthify Me is not able to do it?

App-Locked DNA

Feature-heavy app flows; chats are an after-thought, not the product.

Cannibalisation Risk

Replacing paid human coaches with AI cannibalises their highest-margin revenue stream.

No Clean Data Trove

Calls & WhatsApp pings stored as one-channel mush → useless for fine-tuning.

Curelink was born conversational — nothing to unlearn, nothing to undo.

Why Disha is not Super Living

Super Living is a content-first lifestyle brand. Disha is a healthcare company — the product philosophy, success metrics, and moat are fundamentally different.

Super Living
Engagement metrics — views, likes, time-on-app; zero health-outcome data
One-size-fits-all content library — same tips for every user
Passive consumption — users scroll, watch, and hope for the best
No feedback loop — impossible to know if advice was ever followed
VS
Disha
Real outcomes — HbA1c drops, weight loss, BP under control
Hyper-personalised to each user’s labs, medications, history & goals
Active intervention — proactive check-ins, follow-ups & confrontational counselling
Closed-loop monitoring — tracks every metric, adjusts care plans in real time

Disha’s direction: become the AI doctor that orchestrates the entire health journey — not a media company that inspires and hopes for the best.

imateCounter(el, target, suffix, duration){ const start = performance.now(); suffix = suffix || ''; duration = duration || 1500; function step(now){ const t = Math.min((now-start)/duration, 1); const ease = 1 - Math.pow(1-t, 3); let val = Math.floor(ease * target); if(target >= 1000000) el.textContent = (val/1000000).toFixed(1)+'M' + suffix; else if(target >= 1000) el.textContent = Math.round(val/1000)+'K' + suffix; else el.textContent = val + suffix; if(t < 1) requestAnimationFrame(step); else{ if(target >= 1000000) el.textContent = (target/1000000).toFixed(1)+'M' + suffix; else if(target >= 1000) el.textContent = Math.round(target/1000)+'K' + suffix; else el.textContent = target + suffix; } } requestAnimationFrame(step); } const counterObs = new IntersectionObserver((entries)=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ const el = entry.target; const target = parseInt(el.dataset.target); const suffix = el.dataset.suffix || ''; if(target && !el.dataset.animated){ el.dataset.animated = '1'; animateCounter(el, target, suffix); } counterObs.unobserve(el); } }); },{threshold:0.3}); document.querySelectorAll('[data-target]').forEach(el=>counterObs.observe(el)); // ── Animated Bars (Revenue + Scale + DoD) ── const barObs = new IntersectionObserver((entries)=>{ entries.forEach(entry=>{ if(entry.isIntersecting){ const fills = entry.target.querySelectorAll('[data-height]'); fills.forEach((fill,i)=>{ setTimeout(()=>{ fill.style.height = fill.dataset.height + '%'; }, i * 80); }); const widthFills = entry.target.querySelectorAll('[data-width]'); widthFills.forEach((fill,i)=>{ setTimeout(()=>{ fill.style.width = fill.dataset.width + '%'; }, i * 60); }); barObs.unobserve(entry.target); } }); },{threshold:0.2}); document.querySelectorAll('.bar-chart, .sc-bars, .mini-bars, .chart-container').forEach(el=>barObs.observe(el)); document.querySelectorAll('.sc-bar-fill[data-width]').forEach(el=>{el.style.width='0%'}); document.querySelectorAll('.mini-bar-fill[data-width]').forEach(el=>{el.style.width='0%'}); // ── Segmentation Donut Chart with Labels ── (function(){ var svg=document.getElementById('segDonut'); if(!svg) return; var NS='http://www.w3.org/2000/svg'; var cx=480,cy=260,R=185,r=112; var data=[ {name:'Weight Loss',pct:35.7,color:'#10893e'}, {name:'Sexual Wellness',pct:26.0,color:'#a78bfa'}, {name:'Addiction',pct:7.0,color:'#fb7185'}, {name:'Others',pct:6.4,color:'#94a3b8'}, {name:'PCOS & Periods',pct:3.9,color:'#f472b6'}, {name:'Hair Fall',pct:3.4,color:'#fbbf24'}, {name:'Mental Health',pct:3.3,color:'#818cf8'}, {name:'Weight Gain',pct:3.0,color:'#14b8a6'}, {name:'Acne & Pimples',pct:2.9,color:'#f97316'}, {name:'Diabetes',pct:2.2,color:'#22d3ee'}, {name:'Gut, Thyroid & more',pct:6.3,color:'#cbd5e1'} ]; var font="'Inter',system-ui,sans-serif"; function ptXY(radius,deg){ var rad=(deg-90)*Math.PI/180; return {x:cx+radius*Math.cos(rad),y:cy+radius*Math.sin(rad)}; } var angle=0; data.forEach(function(d){ d.s=angle;d.sw=d.pct/100*360;d.e=angle+d.sw;d.m=angle+d.sw/2;angle=d.e; }); data.forEach(function(d){ var g=0.5,s=ptXY(R,d.s+g),e=ptXY(R,d.e-g),si=ptXY(r,d.s+g),ei=ptXY(r,d.e-g); var la=d.sw-g*2>180?1:0; var p=document.createElementNS(NS,'path'); p.setAttribute('d','M'+s.x.toFixed(2)+','+s.y.toFixed(2)+' A'+R+','+R+' 0 '+la+' 1 '+e.x.toFixed(2)+','+e.y.toFixed(2)+' L'+ei.x.toFixed(2)+','+ei.y.toFixed(2)+' A'+r+','+r+' 0 '+la+' 0 '+si.x.toFixed(2)+','+si.y.toFixed(2)+' Z'); p.setAttribute('fill',d.color); svg.appendChild(p); }); var edgeR=R+10,minGap=28; var rightG=[],leftG=[]; data.forEach(function(d){ var ep=ptXY(edgeR,d.m); d.ep=ep;d.ly=ep.y; if(d.m<180) rightG.push(d); else leftG.push(d); }); function spread(g){ g.sort(function(a,b){return a.ly-b.ly}); for(var i=1;i2){ var nc=0,ac=0; g.forEach(function(d){nc+=d.ep.y;ac+=d.ly}); nc/=g.length;ac/=g.length; var drift=ac-nc; if(Math.abs(drift)>15){ var fix=drift*0.5; g.forEach(function(d){d.ly-=fix}); } } } spread(rightG); spread(leftG); function drawGroup(g,isR){ var colX=isR?730:230; g.forEach(function(d){ var lnS=d.ep; var midX=isR?Math.max(lnS.x+12,colX-40):Math.min(lnS.x-12,colX+40); var ln=document.createElementNS(NS,'polyline'); ln.setAttribute('points',lnS.x.toFixed(1)+','+lnS.y.toFixed(1)+' '+midX.toFixed(1)+','+d.ly.toFixed(1)+' '+colX+','+d.ly.toFixed(1)); ln.setAttribute('stroke','#d1d5db');ln.setAttribute('stroke-width','1.2');ln.setAttribute('fill','none'); svg.appendChild(ln); var dot=document.createElementNS(NS,'circle'); dot.setAttribute('cx',colX);dot.setAttribute('cy',d.ly.toFixed(1)); dot.setAttribute('r','5');dot.setAttribute('fill',d.color); svg.appendChild(dot); var tx=isR?colX+14:colX-14; var txt=document.createElementNS(NS,'text'); txt.setAttribute('x',tx);txt.setAttribute('y',(d.ly+5).toFixed(1)); txt.setAttribute('font-size','13');txt.setAttribute('font-family',font); txt.setAttribute('fill','#374151');txt.setAttribute('text-anchor',isR?'start':'end'); var ns=document.createElementNS(NS,'tspan'); ns.setAttribute('font-weight','500');ns.textContent=d.name+' '; txt.appendChild(ns); var ps=document.createElementNS(NS,'tspan'); ps.setAttribute('font-weight','800');ps.setAttribute('fill','#111827'); ps.textContent=d.pct+'%'; txt.appendChild(ps); svg.appendChild(txt); }); } drawGroup(rightG,true); drawGroup(leftG,false); })(); })();