내 ETF 수익률을 움직이는 진짜 종목을 찾아라
ETF Scanner는 국내외 ETF 6,000여 종을 검색할 수 있고, 그중 구성종목을 확보한 4,000여 종은 종목 단위로 해부해, 오늘 내 ETF를 끌어올린 종목과 갉아먹은 종목을 눈으로 확인하게 해주는 무료 분석 도구입니다.
이 사이트가 답하려는 질문
대부분의 투자자는 자신이 보유한 ETF가 무엇을 담고 있는지는 알아도, 오늘 그 ETF의 등락을 실제로 누가 만들었는지는 모릅니다. 지수가 +1% 올랐을 때 그 상승분의 절반을 특정 한 종목이 만들었다면, 그것은 지수 투자가 아니라 사실상 그 종목에 대한 집중 투자에 가깝습니다. ETF Scanner는 다음 질문에 숫자로 답합니다.
- 오늘 내 ETF를 가장 많이 끌어올린 종목(영웅)과 끌어내린 종목(범인)은?
- 특정 종목 하나를 빼면 수익률이 어떻게 바뀌는가? (What-If 시뮬레이션)
- 내가 가진 여러 ETF가 사실은 같은 종목에 중복 노출되어 있지 않은가?
- 이 ETF는 얼마나 소수 종목에 집중되어 있는가? (집중도·HHI)
- 레버리지 ETF의 음의 복리가 장기 수익률을 얼마나 갉아먹는가?
제공하는 도구
데이터 출처
ETF Scanner는 공개된 1차 데이터만 사용합니다.
- 미국 ETF 구성종목·비중: 발행사(State Street/SPDR, Invesco, Direxion 등)가 무료로 공시하는 일일 보유내역과 공개 집계 데이터를 사용합니다.
- 국내 ETF 구성종목·비중: 한국거래소(KRX)가 공시하는 ETF PDF(구성종목) 등 공개 데이터를 기반으로 합니다.
계산 방법론
모든 지표는 공개된 정의에 따른 순수 계산이며, 임의의 가중치나 비공개 알고리즘을 쓰지 않습니다.
- 기여도(%p) = (종목 비중 ÷ 100) × 종목 등락률. 모든 구성종목 기여도의 합은 ETF 등락률과 일치합니다.
- What-If 수익률: 특정 종목을 제외하면 그 종목의 기여도만 빼고 나머지는 그대로 더합니다. 남은 비중을 100%로 다시 환산하지 않기 때문에, 수익률의 변화량이 화면에 적힌 그 종목의 기여도와 정확히 일치합니다.
- 집중도(HHI): 각 종목 비중의 제곱을 합해 상위 종목 쏠림 정도를 수치화합니다.
- 각 용어의 자세한 정의는 용어사전과 ETF 해부학에서 확인할 수 있습니다.
한계와 면책
화면의 수치는 종가 기준 참고 자료이며, 갱신 주기·소스 한계로 최신값과 다를 수 있습니다. 상장 ETF는 종목이 수백 개에 이르므로 화면에는 상위 종목만 나열하고 나머지는 "기타(Others)" 버킷으로 합산해 등락률 정합성을 유지합니다. 본 서비스가 제공하는 모든 정보는 투자 참고용이며 투자 권유가 아닙니다. 투자 결정과 그 결과에 대한 책임은 전적으로 투자자 본인에게 있습니다.
누가 만들고 있나
ETF Scanner는 회사가 아니라 개인이 만들고 운영하는 서비스입니다. 기획·개발·데이터 수집·글쓰기를 한 사람이 합니다. 광고 외에 수익 모델이 없고, 특정 운용사나 증권사와 제휴하거나 대가를 받고 상품을 소개하지 않습니다.
그래서 이 사이트에는 “추천 ETF”가 없습니다. 무엇을 사라고 말할 자격도 없고, 그렇게 말해서 돈을 받는 구조도 아닙니다. 대신 공시와 시세를 계산해 보여주고, 그 계산이 어떻게 나왔는지를 화면에 같이 적습니다.
데이터는 이렇게 만들어집니다
화면의 숫자는 사람이 손으로 입력하지 않습니다. 수집 봇이 정해진 시각에 돌아 공개 자료를 가져오고, 계산은 전부 코드가 합니다.
- 구성종목과 비중 — 발행사·운용사가 공시하는 일일 보유내역과 한국거래소 공개 자료. 하루 두 번 갱신합니다.
- 종가와 등락률 — 시세 봇이 장 마감 후 수집합니다. 장중 실시간 시세는 제공하지 않습니다.
- 총보수·순자산·상장일 — 발행사와 거래소가 공개하는 사실 정보입니다. 소개 문장은 그 사실로 직접 작성하며, 외부 설명문을 번역해 옮기지 않습니다.
- 리밸런싱 이력 — 매일의 구성 스냅샷을 비교해 편입·편출과 비중 변화를 자동으로 기록합니다.
숫자를 다루는 원칙
분석 도구에서 가장 나쁜 것은 틀린 숫자가 아니라, 틀렸는지 확인할 수 없는 숫자라고 생각합니다. 그래서 몇 가지를 규칙으로 정해 두고 지킵니다.
- 모르는 값을 0으로 적지 않습니다. 시세를 못 구한 종목에 0%를 쓰면 “안 움직였다”는 거짓이 됩니다. 그런 칸은 이유와 함께 비워 둡니다.
- 불러오는 중과 없음을 구분합니다. 아직 도착하지 않은 값과 구할 수 없는 값은 다른 상태이므로 화면에도 다르게 적습니다.
- 근사치는 근사치라고 밝힙니다. 상위 종목만 공개하는 상품은 나머지를 하나로 묶고, 그 값이 추정이라는 사실을 그 자리에 적습니다.
- 점수에는 근거를 붙입니다. 구조 건강도는 축마다 그 점수를 만든 원자료를 함께 적습니다. 자료가 없는 축은 0점을 주는 대신 계산에서 뺍니다 — 모르는 것을 낮은 점수로 위장하지 않기 위해서입니다.
- 사람의 활동을 지어내지 않습니다. 게시판에 가짜 글이나 가짜 좋아요를 넣지 않습니다. 자동으로 올라가는 글은 봇이라고 표시합니다.
아직 못 하는 것
할 수 있는 것만 적으면 소개가 아니라 광고가 됩니다. 지금 안 되는 것도 적어 둡니다.
- 장중 실시간 시세는 제공하지 않습니다. 모든 등락률은 종가 기준이고, 화면마다 기준 시각이 적혀 있습니다.
- 시세 수집은 한국·미국 상장 종목까지입니다. 중국 H주나 일본 시장을 담은 ETF는 구성종목은 보이지만 기여도는 계산하지 않습니다.
- 레버리지·인버스처럼 선물과 스왑으로 노출을 만드는 상품은 개별 주식이 없어 기여도 분석 자체가 성립하지 않습니다. 그런 상품은 1배 기준 종목과의 관계로 보여줍니다.
운영·문의
데이터 정정 요청, 제휴, 기타 문의는 kospi9988@gmail.com 또는 문의 페이지로 보내주세요.
Find the stocks that really move your ETF
ETF Scanner searches 6,000+ Korean and US ETFs, and dissects the 4,000+ whose holdings we have at the constituent level, so you can see exactly which holdings lifted — or dragged down — your ETF today.
The question this site answers
Most investors know what their ETF holds, but not who actually drove its move today. If the index rose +1% and a single stock produced half of that, you're not really index-investing — you're concentrated in that one name. ETF Scanner answers these questions with numbers:
- Which stock lifted my ETF the most (the hero) and which dragged it down (the suspect)?
- How would the return change if one stock were removed? (What-If simulation)
- Are my several ETFs secretly overlapping on the same stocks?
- How concentrated is this ETF in a few names? (HHI)
- How much does a leveraged ETF's volatility decay erode long-term returns?
Tools we provide
Data sources
ETF Scanner uses only public, primary-source data.
- US ETF holdings & weights: from issuers' free daily holdings disclosures (State Street/SPDR, Invesco, Direxion, …) and public aggregations.
- Korean ETF holdings & weights: based on public data such as the Korea Exchange (KRX) ETF constituent disclosures.
How the numbers are computed
Every metric is a plain calculation from public definitions — no arbitrary weighting or hidden algorithm.
- Contribution (%p) = (weight ÷ 100) × stock return. The sum of all holdings' contributions equals the ETF's return.
- What-If return: excluding a holding simply drops its contribution and leaves the rest untouched. Remaining weights are not renormalized, so the change in return equals exactly the contribution shown for that holding.
- Concentration (HHI): sum of squared weights, quantifying top-holding skew.
- Full definitions are in the Glossary and ETF Anatomy.
Limitations & disclaimer
Some figures may be reference-only, not live, due to refresh cadence and source limits. Since listed ETFs can hold hundreds of names, we show the top holdings and fold the rest into an "Others" bucket so the return still reconciles. All information here is for reference only and is not investment advice. Investment decisions and outcomes are solely your own responsibility.
Who builds this
ETF Scanner is built and run by one person, not a company — product, code, data collection and writing. There is no revenue model beyond advertising, and no affiliation with or payment from any asset manager or broker.
That is why there are no “recommended ETFs” here. We are not licensed to tell you what to buy, and we are not paid to. What we do instead is compute from disclosures and prices, and show how each number was produced.
How the data is produced
Nothing on screen is typed in by hand. Collection bots run on a schedule against public sources, and every figure is computed in code.
- Holdings and weights — issuers’ daily disclosures and Korea Exchange public data, refreshed twice a day.
- Closing prices and moves — collected after the close. We do not carry live intraday quotes.
- Fees, assets, inception — facts published by issuers and exchanges. Overview sentences are written from those facts, not translated from someone else’s copy.
- Rebalance history — daily snapshots are diffed to record additions, removals and weight shifts.
How we handle numbers
The worst thing in an analysis tool is not a wrong number — it is a number you cannot check. So a few rules are fixed and kept.
- Unknown is never written as zero. Printing 0% for a holding we could not price would assert it did not move. Those cells are left blank with the reason.
- Loading is not the same as missing. A value on its way and a value that does not exist are different states, and the screen says which.
- Approximations are labelled. Where only top holdings are disclosed, the remainder is folded into one row and marked as an estimate.
- Scores carry their evidence. Each health axis shows the raw figure behind it, and an axis with no data is excluded rather than scored zero — we will not disguise ignorance as a low mark.
- No invented activity. No fake posts or fake likes on the board, and anything posted automatically is labelled as a bot.
What we cannot do yet
Listing only what works would make this an ad, not an introduction. Here is what does not.
- No live intraday quotes. Every move is close-based, and each screen states its as-of time.
- Price coverage stops at Korean and US listings. Funds holding H-shares or Japanese names show their holdings but no contribution.
- Leveraged and inverse products build exposure from futures and swaps, so contribution does not apply. Those are shown against their 1x reference instead.
Contact
For data corrections, partnerships, or any inquiry, email kospi9988@gmail.com or use the contact page.