Frequently asked questions

Everything you need to know about Chartmatic, analysis, billing, and your account.

Getting Started

The Analysis

Pricing & Billing

Account & Settings

Legal & Safety

import { useMemo, useState, startTransition, type ReactNode } from "react"

import { addPropertyControls } from "framer"

import { AnimatePresence, motion, useReducedMotion } from "framer-motion"


interface FAQItem {

question: string

answer: ReactNode

}


interface FAQSection {

title: string

items: FAQItem[]

}


interface MyComponentProps {}


/**

* @framerSupportedLayoutWidth any

* @framerSupportedLayoutHeight auto

*/

export default function ChartmaticFAQ(props: MyComponentProps) {

const shouldReduceMotion = useReducedMotion()

const [openKey, setOpenKey] = useState<string | null>(null)


const sections = useMemo<FAQSection[]>(() => [

{

title: "Getting Started",

items: [

{

question: "What is Chartmatic?",

answer: (<>Chartmatic is an AI-powered trading chart analyzer. Upload a screenshot of any trading chart and get an instant structured analysis — trend direction, key levels, a Golden Line pivot, bull and bear cases, entry zones, stop loss, and price targets. It's built for traders who want a second opinion before they trade.</>),

},

{

question: "How do I upload a chart?",

answer: (<>Three ways — copy your chart screenshot and paste it anywhere on the page (Ctrl+C / Ctrl+V), drag and drop an image file directly onto the upload zone, or click Browse to select a file from your device. PNG, JPG, and WebP are all supported.</>),

},

{

question: "What makes a good chart to upload?",

answer: (<>For best results upload a chart that shows at least 2-4 hours of price history, includes a visible price axis and ticker symbol, and has a clear timeframe label. Avoid extremely zoomed-in views with fewer than 10 candles visible. The more context the chart shows, the more accurate the analysis.</>),

},

{

question: "What asset classes does Chartmatic support?",

answer: (<>Chartmatic works with any asset class — futures, equities, forex, crypto, options, ETFs, and more. Just select the correct vehicle before running your analysis for the most accurate output.</>),

},

{

question: "What chart types and platforms work?",

answer: (<>Any charting platform works — TradingView, ThinkOrSwim, NinjaTrader, Webull, and others. Candlestick, bar, Heikin Ashi, and line charts are all supported. Dark and light themes both work fine.</>),

},

],

},

{

title: "The Analysis",

items: [

{

question: "What is the Golden Line?",

answer: (<>The Golden Line is the single most important price level on your chart — the key pivot that defines the battle between buyers and sellers. Above it, bulls are in control. Below it, bears are. It's identified automatically on every Pro analysis.</>),

},

{

question: "What are the Bull and Bear cases?",

answer: (<>Every analysis includes both a bullish and bearish scenario — not just the direction the AI thinks is most likely. The bull case tells you what conditions would push price higher and what target to watch. The bear case tells you what would drive it lower. Both sides of the trade, every time.</>),

},

{

question: "How accurate is the AI?",

answer: (<>Chartmatic identifies patterns and probabilities based on what the chart shows. It is not a crystal ball and it does not predict the future. Markets are unpredictable and AI analysis can be wrong. Always verify levels independently and never trade based solely on any single tool or opinion — including this one.</>),

},

{

question: "How long does an analysis take?",

answer: (<>Most analyses complete in 25-40 seconds. If you have Live Market Context enabled (Pro feature), add approximately 30-60 seconds for the news pre-flight. You'll see a status message while it runs.</>),

},

{

question: "What is Live Market Context?",

answer: (<>A Pro feature that pulls live news headlines, economic calendar events, and market sentiment for your asset before running the chart analysis. The AI incorporates this context into its output — flagging upcoming high-impact events, noting how current news supports or contradicts what the chart shows, and warning you if a major event is imminent.</>),

},

{

question: "What is Thesis Invalidation?",

answer: (<>The specific price level and action that would break the primary trade thesis. If price hits that level, the setup is off — it's your signal to reassess rather than hold and hope.</>),

},

],

},

{

title: "Pricing & Billing",

items: [

{

question: "What is included in the free trial?",

answer: (<>4 analyses at no cost, no credit card required. Free trial analyses include trend direction, key support and resistance levels, pattern detection, entry zone, stop loss, Target 1, and Risk:Reward ratio. No rollover, no reset.</>),

},

{

question: "What is a Founding Member?",

answer: (<>The first 100 subscribers who upgrade to Pro lock in a rate of $12.99/month forever — as long as their subscription stays active. This price is never available again after the first 100 spots are filled. Founding Members who cancel can resubscribe at the founding rate one time only.</>),

},

{

question: "What does Standard Pro include?",

answer: (<>150 analyses per month, all Pro features — Golden Line, Bull and Bear cases, Watch Zones, Thesis Invalidation, Live Market Context, Analysis History, up to 20 languages, and personalized depth levels (Beginner, Intermediate, Expert). Monthly analyses reset on the 1st of each month and do not roll over.</>),

},

{

question: "What is the Analysis Bundle?",

answer: (<>A one-time purchase of 100 analyses for $9.99. Bundle analyses never expire, survive subscription cancellations, and draw down before your monthly cap. Available on any plan including free.</>),

},

{

question: "Can free users purchase the Analysis Bundle?",

answer: (<>Yes — the Analysis Bundle is available on any plan including free. Bundle analyses give you more runs but not Pro features. To unlock Golden Line, Bull and Bear cases, Watch Zones, and Live Market Context, you'll need a Pro subscription.</>),

},

{

question: "Can I cancel anytime?",

answer: (<>Yes — cancel anytime from your Account page. You keep full access until the end of your current billing period. No partial refunds are issued for unused time or analyses.</>),

},

{

question: "Do unused monthly analyses roll over?",

answer: (<>No — monthly analyses reset on the 1st of each month. If you want analyses that never expire, the Analysis Bundle is the right option.</>),

},

{

question: "Is there a refund policy?",

answer: (<>Subscriptions are non-refundable for partial months. Bundle purchases are non-refundable. In exceptional circumstances — such as a significant technical failure — refunds may be issued at our discretion. Contact hello@chartmatic.ai.</>),

},

],

},

{

title: "Account & Settings",

items: [

{

question: "How do referrals work?",

answer: (<>Every account gets a unique referral code found in your Account page. Share it with friends. When they run their first analysis you earn 50 bonus analyses. When they upgrade to a paid plan you earn 150 more. Bonus analyses are added to your bundle balance and never expire.</>),

},

{

question: "Can I change my experience level?",

answer: (<>Yes — Pro users can set their experience level (Beginner, Intermediate, or Expert) in Account settings. This changes the depth and terminology of every analysis. Beginner uses plain English with definitions. Expert is precise and assumes full TA knowledge.</>),

},

{

question: "What languages are supported?",

answer: (<>Pro users can receive analysis in up to 20 languages including Spanish, French, German, Japanese, Korean, Chinese, Arabic, Hindi, and more. Set your preferred language in Account settings. Standard trading terminology always remains in English regardless of language selection.</>),

},

{

question: "How does Analysis History work?",

answer: (<>Pro users have their last 10 analyses saved to their account and accessible across sessions. Click Load history in the history bar to retrieve past analyses. Free users have in-session history only — it clears on refresh.</>),

},

{

question: "How do I contact support?",

answer: (<>Email us at hello@chartmatic.ai. We read every message and respond as quickly as we can.</>),

},

],

},

{

title: "Legal & Safety",

items: [

{

question: "Is this financial advice?",

answer: (<>No. Chartmatic is an educational tool only. Nothing on this platform constitutes financial advice, investment advice, or trading recommendations. AI analysis reflects patterns in chart images at a point in time — it can and does make mistakes. All trading decisions are solely your responsibility.</>),

},

{

question: "Who can use Chartmatic?",

answer: (<>Chartmatic is available to users 18 years of age or older. By creating an account you confirm you meet this requirement and agree to our Terms of Service, Privacy Policy, and Refund Policy.</>),

},

{

question: "How is my data handled?",

answer: (<>Chart images are transmitted to Anthropic's API for analysis and are automatically deleted from Anthropic's systems within 30 days. They are never used to train AI models. Your account data is stored securely in Supabase. We may use your email address to build custom audiences for Chartmatic advertising on social media platforms — your data is never sold or shared with third parties. See our Privacy Policy for full details.</>),

},

],

},

], [])


return (

<main

style={{

position: "relative",

width: "100%",

maxWidth: 740,

height: "auto",

overflow: "visible",

boxSizing: "border-box",

margin: "0 auto",

background: "#FFFFFF",

color: "#1D1D1F",

fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, system-ui, sans-serif',

padding: "clamp(28px, 5vw, 44px) 0 clamp(28px, 4vw, 40px)",

}}

>

<header style={{ textAlign: "center" }}>

<h1

style={{

margin: 0,

fontSize: "clamp(32px, 5.2vw, 36px)",

lineHeight: 1.2,

fontWeight: 600,

letterSpacing: "-0.01em",

color: "#1D1D1F",

}}

>

Frequently asked questions

</h1>

<p

style={{

margin: "14px auto 0",

maxWidth: 640,

fontSize: 16,

lineHeight: 1.5,

fontWeight: 400,

color: "#6E6E73",

}}

>

Everything you need to know about Chartmatic, analysis, billing, and your account.

</p>

</header>


<div style={{ height: "clamp(48px, 9vw, 64px)" }} />


{sections.map((section, sectionIndex) => (

<section

key={section.title}

aria-label={section.title}

style={{

marginBottom: sectionIndex < sections.length - 1 ? "clamp(40px, 9vw, 56px)" : 0,

}}

>

<h2

style={{

margin: 0,

marginBottom: 16,

fontSize: 19,

lineHeight: 1.3,

fontWeight: 600,

color: "#1D1D1F",

textAlign: "left",

}}

>

{section.title}

</h2>

<div>

{section.items.map((item, itemIndex) => {

const key = `${section.title}-${itemIndex}`

const isOpen = openKey === key

const contentId = `faq-content-${sectionIndex}-${itemIndex}`

const buttonId = `faq-button-${sectionIndex}-${itemIndex}`


return (

<div

key={key}

style={{

borderBottom: "1px solid #D2D2D7",

borderRadius: isOpen ? 12 : 0,

background: isOpen ? "#F8F8FA" : "transparent",

transition: shouldReduceMotion ? "none" : "background 200ms ease",

}}

>

<button

id={buttonId}

type="button"

aria-expanded={isOpen}

aria-controls={contentId}

onClick={() =>

startTransition(() =>

setOpenKey(current => current === key ? null : key)

)

}

style={{

width: "100%",

background: "transparent",

border: "none",

cursor: "pointer",

textAlign: "left",

padding: "20px 0",

display: "flex",

alignItems: "center",

justifyContent: "space-between",

gap: 20,

color: "#1D1D1F",

}}

>

<span

style={{

fontSize: 16,

lineHeight: 1.4,

fontWeight: 600,

}}

>

{item.question}

</span>

<span

aria-hidden

style={{

position: "relative",

width: 16,

height: 16,

flexShrink: 0,

}}

>

{/* Horizontal bar */}

<span

style={{

position: "absolute",

top: "50%",

left: 0,

right: 0,

height: 2,

marginTop: -1,

borderRadius: 2,

background: isOpen ? "#0071E3" : "#6E6E73",

}}

/>

{/* Vertical bar */}

<span

style={{

position: "absolute",

top: 0,

bottom: 0,

left: "50%",

width: 2,

marginLeft: -1,

borderRadius: 2,

background: isOpen ? "#0071E3" : "#6E6E73",

transform: isOpen ? "scaleY(0)" : "scaleY(1)",

opacity: isOpen ? 0 : 1,

transition: shouldReduceMotion ? "none" : "transform 200ms ease, opacity 200ms ease",

}}

/>

</span>

</button>


<AnimatePresence initial={false}>

{isOpen && (

<motion.div

id={contentId}

role="region"

aria-labelledby={buttonId}

key="content"

initial={shouldReduceMotion ? false : { height: 0, opacity: 0 }}

animate={{ height: "auto", opacity: 1 }}

exit={shouldReduceMotion ? { opacity: 0 } : { height: 0, opacity: 0 }}

transition={{ duration: 0.22, ease: "easeOut" }}

style={{ overflow: "hidden" }}

>

<div

style={{

padding: "0 0 20px",

color: "#6E6E73",

fontSize: 14,

fontWeight: 400,

lineHeight: 1.6,

maxWidth: 620,

}}

>

{item.answer}

</div>

</motion.div>

)}

</AnimatePresence>

</div>

)

})}

</div>

</section>

))}

</main>

)

}


addPropertyControls(ChartmaticFAQ, {})

© 2026 Chartmatic.ai.

AI-generated educational analysis only —

not financial advice, not always accurate, never a guarantee.

All trades are solely your responsibility.

© 2026 Chartmatic.ai.

AI-generated educational analysis only —

not financial advice, not always accurate, never a guarantee.

All trades are solely your responsibility.