Elevating leadership

Deepening awareness

Transforming teams

Mission

To create inner shifts that deepen self-awareness and allow people to lead with clarity and consciousness.

SERVICES

Leadership Development


My leadership trainings are built on one belief: real change begins within. These programs help leaders strengthen their self-awareness, understand their emotional landscape, and show up with clarity and intention. The work is equal parts reflection and real-world practice, guiding leaders to communicate with presence, make decisions from a grounded place, and create cultures where people feel seen, safe, and inspired to rise.

Human Skills Development


My soft skills trainings help people navigate the everyday moments that shape trust, teamwork, and communication. These sessions turn simple interactions into meaningful ones — from expressing ideas clearly to managing emotions in real time. Whether it’s Public Speaking & Executive Presence, Emotional Intelligence, Conflict Resolution, or Effective Communication, the focus is on practical shifts that make work feel smoother and relationships easier. People walk away feeling more confident in conversations, more grounded under pressure, and more connected to the teams they work with.

Private Coaching


Private coaching is for the moments when life feels overwhelming, when your mind won’t stop running, or when you’ve lost the thread of who you are beneath the noise. It’s a space to untangle self-doubt, quiet the inner critic, and stop repeating patterns that keep you stuck. Together, we slow things down so you can rebuild trust in your own voice, find clarity in your decisions, and reconnect with a steadier, more grounded version of yourself. This work is honest and personal.

Real transformation begins the moment you reconnect with who you are

Hi, I am Shilpa. I help people lead and live with more clarity, confidence, and self-awareness.

Read More

A NEW DIFFERENT PERSPECTIVE.

Sara Phillips
A freelance web designer based in Australia

import React, { useState, useEffect, useMemo } from "react"; import { Radar, RadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, ResponsiveContainer, } from "recharts"; import { Compass, MessageCircle, Users, Scale, Wind, RotateCcw, Lock, Printer, RefreshCw, } from "lucide-react"; // --------------------------------------------------------------------------- // CONFIG — change this before sending the tool out // --------------------------------------------------------------------------- const COACH_PASSCODE = "coach123"; // change me before you distribute this const STORAGE_KEY = "eq-coaching-submissions"; // --------------------------------------------------------------------------- // Original item bank, grouped into five composites inspired by the general // structure of trait/mixed-model EQ frameworks (this is an original // instrument — not a reproduction of any commercial test). // --------------------------------------------------------------------------- const COMPOSITES = [ { key: "selfPerception", label: "Self-perception", short: "Knowing yourself", icon: Compass, blurb: "How clearly you recognize your own emotions, strengths, and limits, and how much you value yourself.", items: [ { t: "I can usually name the exact emotion I'm feeling, not just 'good' or 'bad'.", r: false }, { t: "I'm often surprised by my own reactions after the fact.", r: true }, { t: "I have a realistic sense of what I'm good at and what I'm not.", r: false }, { t: "I generally like who I am, flaws included.", r: false }, { t: "I tend to brush past my feelings instead of noticing them as they happen.", r: true }, { t: "I know what situations tend to trigger strong reactions in me.", r: false }, ], }, { key: "selfExpression", label: "Self-expression", short: "Saying what you mean", icon: MessageCircle, blurb: "How honestly and clearly you communicate feelings and needs, and how comfortable you are asserting yourself.", items: [ { t: "I can tell someone I disagree with them without much difficulty.", r: false }, { t: "I often say 'I'm fine' when I'm actually not.", r: true }, { t: "I find it easy to ask directly for what I need.", r: false }, { t: "I stay quiet in groups even when I have something worth saying.", r: true }, { t: "People generally know where they stand with me emotionally.", r: false }, { t: "I'd rather avoid a conversation than risk an awkward moment.", r: true }, ], }, { key: "interpersonal", label: "Interpersonal", short: "Reading the room", icon: Users, blurb: "How well you build relationships, read other people's emotions, and cooperate with others.", items: [ { t: "I can usually tell when someone is upset even if they say they're fine.", r: false }, { t: "I find it hard to see a conflict from the other person's point of view.", r: true }, { t: "People tend to open up to me easily.", r: false }, { t: "I keep a mental note of how the people close to me are doing emotionally.", r: false }, { t: "I get impatient with people who are more emotional than I am.", r: true }, { t: "I actively work to keep my close relationships in good shape.", r: false }, ], }, { key: "decisionMaking", label: "Decision-making", short: "Thinking it through", icon: Scale, blurb: "How well you weigh emotion and logic together, resist impulsive choices, and solve problems under pressure.", items: [ { t: "Strong emotions rarely derail my judgment when a decision really matters.", r: false }, { t: "I've made choices I regretted because I acted on impulse.", r: true }, { t: "When a problem is emotionally charged, I can still think clearly about it.", r: false }, { t: "I tend to put off hard decisions until I'm forced to make them.", r: true }, { t: "I can separate 'how I feel about this' from 'what's actually true.'", r: false }, { t: "Under pressure, I still consider the consequences before I act.", r: false }, ], }, { key: "stressManagement", label: "Stress management", short: "Staying steady", icon: Wind, blurb: "How well you tolerate pressure, stay flexible when plans change, and stay optimistic without denying reality.", items: [ { t: "I recover fairly quickly after something stressful happens.", r: false }, { t: "Unexpected changes to my plans throw me off for a long time.", r: true }, { t: "I have go-to ways of calming myself down when I'm wound up.", r: false }, { t: "Under a lot of pressure, I tend to snap at people around me.", r: true }, { t: "I generally expect things to work out, even when they're rocky right now.", r: false }, { t: "Small setbacks can ruin my whole day.", r: true }, ], }, ]; const LIKERT = [ { v: 1, label: "Strongly disagree" }, { v: 2, label: "Disagree" }, { v: 3, label: "Neutral" }, { v: 4, label: "Agree" }, { v: 5, label: "Strongly agree" }, ]; function bandFor(score) { if (score >= 80) return { label: "Well-developed", tone: "#0F6E56", bg: "#E1F5EE" }; if (score >= 60) return { label: "Solid, room to grow", tone: "#185FA5", bg: "#E6F1FB" }; if (score >= 40) return { label: "Emerging", tone: "#854F0B", bg: "#FAEEDA" }; return { label: "Worth focused attention", tone: "#993C1D", bg: "#FAECE7" }; } async function loadSubmissions() { try { const res = await window.storage.get(STORAGE_KEY, true); if (!res || !res.value) return []; const parsed = JSON.parse(res.value); return Array.isArray(parsed) ? parsed : []; } catch (e) { // key doesn't exist yet — that's fine, treat as empty return []; } } async function appendSubmission(entry) { const current = await loadSubmissions(); const next = [entry, ...current]; await window.storage.set(STORAGE_KEY, JSON.stringify(next), true); return next; } export default function EQAssessment() { const [stage, setStage] = useState("intro"); // intro | quiz | results | coachLogin | coachDashboard const [name, setName] = useState(""); const [team, setTeam] = useState(""); const [nameError, setNameError] = useState(""); const [answers, setAnswers] = useState({}); const [pageIdx, setPageIdx] = useState(0); const [saved, setSaved] = useState(false); const [saveError, setSaveError] = useState(""); const [passcodeInput, setPasscodeInput] = useState(""); const [passcodeError, setPasscodeError] = useState(""); const [dashboardData, setDashboardData] = useState([]); const [dashboardLoading, setDashboardLoading] = useState(false); const [dashboardError, setDashboardError] = useState(""); const [expandedRow, setExpandedRow] = useState(null); const currentComposite = COMPOSITES[pageIdx]; const totalPages = COMPOSITES.length; const ALL_ITEMS = useMemo( () => COMPOSITES.flatMap((c) => c.items.map((it, idx) => ({ ...it, id: `${c.key}-${idx}` }))), [] ); const answeredCount = Object.keys(answers).length; const progressPct = Math.round((answeredCount / ALL_ITEMS.length) * 100); const pageAnswered = currentComposite.items.every( (_, idx) => answers[`${currentComposite.key}-${idx}`] !== undefined ); function setAnswer(id, val) { setAnswers((prev) => ({ ...prev, [id]: val })); } const results = useMemo(() => { return COMPOSITES.map((c) => { const vals = c.items.map((it, idx) => { const raw = answers[`${c.key}-${idx}`]; if (raw === undefined) return null; return it.r ? 6 - raw : raw; }); if (vals.some((v) => v === null)) return { ...c, score: null }; const sum = vals.reduce((a, b) => a + b, 0); const max = vals.length * 5; return { ...c, score: Math.round((sum / max) * 100) }; }); }, [answers]); const overallScore = useMemo(() => { const scored = results.filter((r) => r.score !== null); if (scored.length === 0) return null; return Math.round(scored.reduce((a, b) => a + b.score, 0) / scored.length); }, [results]); const radarData = results.map((r) => ({ composite: r.short, score: r.score ?? 0 })); // Auto-save once when results are reached useEffect(() => { if (stage !== "results" || saved || overallScore === null) return; const entry = { id: `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`, name: name.trim() || "Anonymous", team: team.trim() || "—", date: new Date().toISOString(), overall: overallScore, composites: Object.fromEntries(results.map((r) => [r.key, r.score])), }; appendSubmission(entry) .then(() => setSaved(true)) .catch(() => setSaveError("Couldn't save your results to the coach dashboard, but you can still view and print them below.")); // eslint-disable-next-line react-hooks/exhaustive-deps }, [stage]); function restart() { setAnswers({}); setPageIdx(0); setSaved(false); setSaveError(""); setName(""); setTeam(""); setStage("intro"); } function beginQuiz() { if (!name.trim()) { setNameError("Enter your name so your coach can identify your results."); return; } setNameError(""); setStage("quiz"); } function tryCoachLogin() { if (passcodeInput === COACH_PASSCODE) { setPasscodeError(""); setDashboardLoading(true); setDashboardError(""); loadSubmissions() .then((data) => { setDashboardData(data); setDashboardLoading(false); setStage("coachDashboard"); }) .catch(() => { setDashboardError("Couldn't load submissions right now."); setDashboardLoading(false); }); } else { setPasscodeError("Incorrect passcode."); } } function refreshDashboard() { setDashboardLoading(true); setDashboardError(""); loadSubmissions() .then((data) => { setDashboardData(data); setDashboardLoading(false); }) .catch(() => { setDashboardError("Couldn't refresh submissions right now."); setDashboardLoading(false); }); } const printCss = ` @media print { .no-print { display: none !important; } body { background: #ffffff !important; } } `; // ------------------------------------------------------------------- // INTRO // ------------------------------------------------------------------- if (stage === "intro") { return (

Self-assessment · 30 items · ~6 minutes

An emotional intelligence check-in

This is an original, informal self-assessment built around five commonly studied dimensions of emotional intelligence: self-perception, self-expression, interpersonal skill, decision-making, and stress management.

It's a reflection tool, not a validated psychometric instrument. Your name and results will be visible to your coach, so they can tailor your coaching sessions.

setName(e.target.value)} placeholder="Jordan Lee" style={styles.input} /> setTeam(e.target.value)} placeholder="e.g. Product, Sales" style={styles.input} /> {nameError &&

{nameError}

}
{COMPOSITES.map((c) => { const Icon = c.icon; return (
{c.label}
{c.blurb}
); })}
); } // ------------------------------------------------------------------- // QUIZ // ------------------------------------------------------------------- if (stage === "quiz") { const Icon = currentComposite.icon; return (

Section {pageIdx + 1} of {totalPages}

{currentComposite.label}

{currentComposite.blurb}

{currentComposite.items.map((item, idx) => { const id = `${currentComposite.key}-${idx}`; return (

{item.t}

{LIKERT.map((opt) => ( ))}
Strongly disagree Strongly agree
); })}
{pageIdx < totalPages - 1 ? ( ) : ( )}
); } // ------------------------------------------------------------------- // RESULTS // ------------------------------------------------------------------- if (stage === "results") { const overallBand = overallScore !== null ? bandFor(overallScore) : null; return (

{name ? `${name}'s results` : "Your results"}

Here's your profile

{overallScore}
overall, out of 100
{overallBand && ( {overallBand.label} )}
{results.map((r) => { const band = bandFor(r.score ?? 0); const Icon = r.icon; return (
{r.label}
{r.score}
); })}
{saveError &&

{saveError}

} {saved && !saveError && (

Your results have been shared with your coach.

)}

Remember: this is a self-report reflection exercise, scored by simple arithmetic — not a validated, normed psychometric result. Treat low or high areas as prompts for reflection, not verdicts.

); } // ------------------------------------------------------------------- // COACH LOGIN // ------------------------------------------------------------------- if (stage === "coachLogin") { return (

Coach access

Enter your passcode

This is a lightweight, client-side passcode, not real authentication. Don't share this artifact link publicly, and change the passcode in the code before wide distribution.

setPasscodeInput(e.target.value)} onKeyDown={(e) => e.key === "Enter" && tryCoachLogin()} placeholder="Passcode" style={styles.input} /> {passcodeError &&

{passcodeError}

}
); } // ------------------------------------------------------------------- // COACH DASHBOARD // ------------------------------------------------------------------- if (stage === "coachDashboard") { const sorted = [...dashboardData].sort((a, b) => new Date(b.date) - new Date(a.date)); return (

Coach dashboard

Team results

{dashboardError &&

{dashboardError}

} {dashboardLoading &&

Loading…

} {!dashboardLoading && sorted.length === 0 && (

No submissions yet. Share the link with your team.

)} {!dashboardLoading && sorted.length > 0 && (
{sorted.map((sub) => { const isOpen = expandedRow === sub.id; const band = bandFor(sub.overall); return (
setExpandedRow(isOpen ? null : sub.id)} >
{sub.name}
{sub.team} · {new Date(sub.date).toLocaleDateString()}
{sub.overall}
{isOpen && (
{COMPOSITES.map((c) => { const score = sub.composites?.[c.key] ?? 0; const b = bandFor(score); return (
{c.label}
{score}
); })}
)}
); })}
)}
); } return null; } // --------------------------------------------------------------------------- // Styles // --------------------------------------------------------------------------- const styles = { page: { minHeight: "100vh", background: "#F1EFE8", display: "flex", justifyContent: "center", padding: "32px 16px", fontFamily: "'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, serif", }, card: { width: "100%", maxWidth: 640, background: "#FFFFFF", borderRadius: 16, padding: "32px 32px 28px", boxShadow: "0 1px 3px rgba(0,0,0,0.06)", }, eyebrow: { fontSize: 12, letterSpacing: "0.08em", textTransform: "uppercase", color: "#888780", fontFamily: "'Helvetica Neue', Arial, sans-serif", margin: "0 0 8px", }, h1: { fontSize: 28, fontWeight: 600, margin: "0 0 12px", color: "#26215C", lineHeight: 1.25 }, h2: { fontSize: 20, fontWeight: 600, margin: 0, color: "#26215C" }, lead: { fontSize: 15, lineHeight: 1.6, color: "#2C2C2A", margin: "0 0 12px" }, note: { fontSize: 13, lineHeight: 1.6, color: "#5F5E5A", fontFamily: "'Helvetica Neue', Arial, sans-serif", background: "#F1EFE8", borderRadius: 10, padding: "12px 14px", margin: "0 0 20px", }, fieldGroup: { marginBottom: 24 }, fieldLabel: { display: "block", fontSize: 12, fontWeight: 600, color: "#5F5E5A", fontFamily: "'Helvetica Neue', Arial, sans-serif", marginBottom: 6, }, input: { width: "100%", height: 40, borderRadius: 8, border: "1px solid #D3D1C7", padding: "0 12px", fontSize: 14, fontFamily: "'Helvetica Neue', Arial, sans-serif", boxSizing: "border-box", marginBottom: 4, }, errorText: { fontSize: 12, color: "#993C1D", fontFamily: "'Helvetica Neue', Arial, sans-serif", margin: "4px 0 0", }, savedNote: { fontSize: 12, color: "#0F6E56", fontFamily: "'Helvetica Neue', Arial, sans-serif", margin: "0 0 12px", }, compositeGrid: { display: "flex", flexDirection: "column", gap: 12, marginBottom: 24 }, compositePreview: { display: "flex", gap: 12, alignItems: "flex-start", padding: "10px 0", borderTop: "1px solid #EEEDEA" }, compositePreviewLabel: { fontSize: 14, fontWeight: 600, color: "#2C2C2A", fontFamily: "'Helvetica Neue', Arial, sans-serif" }, compositePreviewBlurb: { fontSize: 13, color: "#5F5E5A", fontFamily: "'Helvetica Neue', Arial, sans-serif", lineHeight: 1.5 }, primaryBtn: { background: "#534AB7", color: "#FFFFFF", border: "none", borderRadius: 10, padding: "12px 22px", fontSize: 15, fontWeight: 600, cursor: "pointer", fontFamily: "'Helvetica Neue', Arial, sans-serif", width: "100%", }, secondaryBtn: { background: "transparent", color: "#534AB7", border: "1px solid #CECBF6", borderRadius: 10, padding: "10px 20px", fontSize: 14, fontWeight: 600, cursor: "pointer", fontFamily: "'Helvetica Neue', Arial, sans-serif", }, coachLink: { display: "block", margin: "16px auto 0", background: "none", border: "none", color: "#888780", fontSize: 12, fontFamily: "'Helvetica Neue', Arial, sans-serif", cursor: "pointer", }, progressTrack: { height: 4, width: "100%", background: "#EEEDEA", borderRadius: 2, marginBottom: 12, overflow: "hidden" }, progressFill: { height: "100%", background: "#7F77DD", transition: "width 0.2s ease" }, pageCounter: { fontSize: 12, color: "#888780", fontFamily: "'Helvetica Neue', Arial, sans-serif", margin: "0 0 12px", textTransform: "uppercase", letterSpacing: "0.06em", }, sectionHeader: { display: "flex", alignItems: "center", gap: 10, marginBottom: 6 }, sectionBlurb: { fontSize: 14, color: "#5F5E5A", fontFamily: "'Helvetica Neue', Arial, sans-serif", margin: "0 0 20px", lineHeight: 1.5 }, itemBlock: { padding: "16px 0", borderTop: "1px solid #EEEDEA" }, itemText: { fontSize: 15, color: "#2C2C2A", margin: "0 0 12px", lineHeight: 1.5 }, likertRow: { display: "flex", gap: 8 }, likertBtn: { flex: 1, height: 40, borderRadius: 8, border: "1px solid #D3D1C7", background: "#FFFFFF", color: "#5F5E5A", fontSize: 14, fontWeight: 600, cursor: "pointer", fontFamily: "'Helvetica Neue', Arial, sans-serif", }, likertBtnActive: { background: "#534AB7", borderColor: "#534AB7", color: "#FFFFFF" }, likertLabels: { display: "flex", justifyContent: "space-between", fontSize: 11, color: "#B4B2A9", marginTop: 6, fontFamily: "'Helvetica Neue', Arial, sans-serif" }, navRow: { display: "flex", justifyContent: "space-between", marginTop: 24, gap: 12 }, overallRow: { display: "flex", alignItems: "center", gap: 16, marginBottom: 8 }, overallScore: { fontSize: 48, fontWeight: 700, color: "#26215C", lineHeight: 1 }, overallLabel: { fontSize: 12, color: "#888780", fontFamily: "'Helvetica Neue', Arial, sans-serif" }, band: { fontSize: 13, fontWeight: 600, padding: "6px 14px", borderRadius: 20, fontFamily: "'Helvetica Neue', Arial, sans-serif" }, breakdownList: { margin: "20px 0" }, breakdownRow: { display: "flex", justifyContent: "space-between", alignItems: "center", padding: "10px 0", borderTop: "1px solid #EEEDEA", fontFamily: "'Helvetica Neue', Arial, sans-serif" }, breakdownLeft: { display: "flex", alignItems: "center", gap: 8, width: 160, flexShrink: 0 }, breakdownLabel: { fontSize: 13, fontWeight: 600, color: "#2C2C2A" }, breakdownRight: { display: "flex", alignItems: "center", gap: 10, flex: 1 }, miniBarTrack: { flex: 1, height: 6, background: "#EEEDEA", borderRadius: 3, overflow: "hidden" }, miniBarFill: { height: "100%", borderRadius: 3 }, breakdownScore: { fontSize: 13, fontWeight: 600, color: "#2C2C2A", width: 28, textAlign: "right" }, resultActions: { display: "flex", gap: 12, marginTop: 8 }, dashHeader: { display: "flex", justifyContent: "space-between", alignItems: "flex-start", marginBottom: 20 }, dashRow: { borderTop: "1px solid #EEEDEA", padding: "12px 0" }, dashRowHeader: { display: "flex", justifyContent: "space-between", alignItems: "center", cursor: "pointer" }, dashName: { fontSize: 14, fontWeight: 600, color: "#2C2C2A", fontFamily: "'Helvetica Neue', Arial, sans-serif" }, dashMeta: { fontSize: 12, color: "#888780", fontFamily: "'Helvetica Neue', Arial, sans-serif", marginTop: 2 }, dashDetail: { marginTop: 10, paddingLeft: 4 }, };

Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.

CONTACT US

shilpasainicoaching@gmail.com | +971569824546

© Copyright 2024 Shilpa Saini Coaching FZE