[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KFGZWHZ9B3WKVC5X7V2RZK":3,"skill-same:01M6KFGZWHZ9B3WKVC5X7V2RZK":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6KFGZWHZ9B3WKVC5X7V2RZK","run2_13f-data-analysis",null,"Comprehensive guide for analyzing SEC 13-F quarterly filings data (TSV format) including fund lookup, AUM, holdings comparison, and stock investor analysis.","cxcscmu\u002FSkillLearnBench","cxcscmu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142838272?v=4","01M6KCQDFQWPDSN0MKZY96MSQP","01M6KCQDM7G70TKJ28NTSQC0RZ",93,"MIT","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb2-self-feedback-claude-opus-4-6\u002Ffinancial-analysis\u002Frun2_13f-data-analysis\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"run2 13f data analysis","data","analysis","13f data analysis","data analysis","13f","stock","holdings comparison","holdings","for","comparison","filings","fund","guide","format","lookup","analyzing","2026-11-10 10:12:30",false,"---\nname: run2_13f-data-analysis\ndescription: Comprehensive guide for analyzing SEC 13-F quarterly filings data (TSV format) including fund lookup, AUM, holdings comparison, and stock investor analysis.\n---\n\n# SEC 13-F Data Analysis (Improved)\n\n## Data Files\n\nEach quarter folder contains TSV files:\n\n| File | Purpose | Key Columns |\n|------|---------|-------------|\n| COVERPAGE.tsv | Fund manager metadata | `ACCESSION_NUMBER`, `FILINGMANAGER_NAME` |\n| INFOTABLE.tsv | Individual stock holdings (~300MB) | `ACCESSION_NUMBER`, `NAMEOFISSUER`, `CUSIP`, `VALUE` (x1000), `SSHPRNAMT` (shares) |\n| SUMMARYPAGE.tsv | Aggregate stats per filing | `ACCESSION_NUMBER`, `TABLEENTRYTOTAL`, `TABLEVALUETOTAL` (x1000) |\n\n## Important Notes\n\n- **VALUE is in thousands of dollars** — multiply by 1000 for actual dollar amounts\n- **TABLEVALUETOTAL is also in thousands** in SUMMARYPAGE\n- **CUSIP casing**: INFOTABLE may have mixed-case CUSIPs (e.g., `69608A108` vs `69608a108`). Always normalize: `df['CUSIP'] = df['CUSIP'].str.upper()`\n- **Multiple accession numbers**: A single filer (e.g., Berkshire Hathaway) may have multiple filings. Use SUMMARYPAGE to identify the main one (largest TABLEVALUETOTAL).\n- **Low memory**: INFOTABLE is large. Use `low_memory=False` or specify `dtype={'CUSIP': str}`.\n\n## Workflow Patterns\n\n### 1. Fuzzy Search for a Fund\n```python\nfrom difflib import SequenceMatcher\ncover = pd.read_csv('COVERPAGE.tsv', sep='\\t', dtype=str)\ncover['score'] = cover['FILINGMANAGER_NAME'].apply(\n    lambda x: SequenceMatcher(None, search.lower(), str(x).lower()).ratio()\n)\nbest = cover.sort_values('score', ascending=False).iloc[0]\naccession = best['ACCESSION_NUMBER']\n```\n\n### 2. Get AUM (from SUMMARYPAGE)\n```python\nsummary = pd.read_csv('SUMMARYPAGE.tsv', sep='\\t')\nrow = summary[summary['ACCESSION_NUMBER'] == accession]\naum_thousands = row['TABLEVALUETOTAL'].values[0]\n```\n\n### 3. Get Number of Holdings\nUse `TABLEENTRYTOTAL` from SUMMARYPAGE or count unique CUSIPs from INFOTABLE (usually identical).\n\n### 4. Compare Holdings Across Quarters\n```python\nq2_h = info_q2[info_q2['ACCESSION_NUMBER']==acc_q2].groupby('CUSIP')['VALUE'].sum()\nq3_h = info_q3[info_q3['ACCESSION_NUMBER']==acc_q3].groupby('CUSIP')['VALUE'].sum()\ndiff = q3_h.subtract(q2_h, fill_value=0).sort_values(ascending=False)\ntop5_increased = diff.head(5).index.tolist()  # CUSIPs\n```\n\n### 5. Find Top Investors for a Stock\n```python\n# Find CUSIP by issuer name\nmatches = info[info['NAMEOFISSUER'].str.contains('NAME', case=False, na=False)]\ncusip = matches['CUSIP'].str.upper().mode()[0]\n# Aggregate by filing\nholders = info[info['CUSIP'].str.upper()==cusip].groupby('ACCESSION_NUMBER')['VALUE'].sum()\ntop = holders.sort_values(ascending=False).head(3)\n# Map to names via COVERPAGE\n```\n\n## Disambiguation Tips\n\n- When multiple accession numbers match the same filer, the one with higher `TABLEVALUETOTAL` or more `TABLEENTRYTOTAL` is typically the main 13F-HR filing.\n- Some funds file separate confidential treatment requests — filter by `ISCONFIDENTIALOMITTED='N'` if needed.\n","# SEC 13-F Data Analysis (Improved)\n\n## Data Files\n\nEach quarter folder contains TSV files:\n\n| File | Purpose | Key Columns |\n|------|---------|-------------|\n| COVERPAGE.tsv | Fund manager metadata | `ACCESSION_NUMBER`, `FILINGMANAGER_NAME` |\n| INFOTABLE.tsv | Individual stock holdings (~300MB) | `ACCESSION_NUMBER`, `NAMEOFISSUER`, `CUSIP`, `VALUE` (x1000), `SSHPRNAMT` (shares) |\n| SUMMARYPAGE.tsv | Aggregate stats per filing | `ACCESSION_NUMBER`, `TABLEENTRYTOTAL`, `TABLEVALUETOTAL` (x1000) |\n\n## Important Notes\n\n- **VALUE is in thousands of dollars** — multiply by 1000 for actual dollar amounts\n- **TABLEVALUETOTAL is also in thousands** in SUMMARYPAGE\n- **CUSIP casing**: INFOTABLE may have mixed-case CUSIPs (e.g., `69608A108` vs `69608a108`). Always normalize: `df['CUSIP'] = df['CUSIP'].str.upper()`\n- **Multiple accession numbers**: A single filer (e.g., Berkshire Hathaway) may have multiple filings. Use SUMMARYPAGE to identify the main one (largest TABLEVALUETOTAL).\n- **Low memory**: INFOTABLE is large. Use `low_memory=False` or specify `dtype={'CUSIP': str}`.\n\n## Workflow Patterns\n\n### 1. Fuzzy Search for a Fund\n```python\nfrom difflib import SequenceMatcher\ncover = pd.read_csv('COVERPAGE.tsv', sep='\\t', dtype=str)\ncover['score'] = cover['FILINGMANAGER_NAME'].apply(\n    lambda x: SequenceMatcher(None, search.lower(), str(x).lower()).ratio()\n)\nbest = cover.sort_values('score', ascending=False).iloc[0]\naccession = best['ACCESSION_NUMBER']\n```\n\n### 2. Get AUM (from SUMMARYPAGE)\n```python\nsummary = pd.read_csv('SUMMARYPAGE.tsv', sep='\\t')\nrow = summary[summary['ACCESSION_NUMBER'] == accession]\naum_thousands = row['TABLEVALUETOTAL'].values[0]\n```\n\n### 3. Get Number of Holdings\nUse `TABLEENTRYTOTAL` from SUMMARYPAGE or count unique CUSIPs from INFOTABLE (usually identical).\n\n### 4. Compare Holdings Across Quarters\n```python\nq2_h = info_q2[info_q2['ACCESSION_NUMBER']==acc_q2].groupby('CUSIP')['VALUE'].sum()\nq3_h = info_q3[info_q3['ACCESSION_NUMBER']==acc_q3].groupby('CUSIP')['VALUE'].sum()\ndiff = q3_h.subtract(q2_h, fill_value=0).sort_values(ascending=False)\ntop5_increased = diff.head(5).index.tolist()  # CUSIPs\n```\n\n### 5. Find Top Investors for a Stock\n```python\n# Find CUSIP by issuer name\nmatches = info[info['NAMEOFISSUER'].str.contains('NAME', case=False, na=False)]\ncusip = matches['CUSIP'].str.upper().mode()[0]\n# Aggregate by filing\nholders = info[info['CUSIP'].str.upper()==cusip].groupby('ACCESSION_NUMBER')['VALUE'].sum()\ntop = holders.sort_values(ascending=False).head(3)\n# Map to names via COVERPAGE\n```\n\n## Disambiguation Tips\n\n- When multiple accession numbers match the same filer, the one with higher `TABLEVALUETOTAL` or more `TABLEENTRYTOTAL` is typically the main 13F-HR filing.\n- Some funds file separate confidential treatment requests — filter by `ISCONFIDENTIALOMITTED='N'` if needed.\n",{"name":5,"description":7},"main","726e1f79b96b0cb3d729d0e55a1c847e0b5353ae","skills\u002Fb2-self-feedback-claude-opus-4-6\u002Ffinancial-analysis\u002Frun2_13f-data-analysis",7,"https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench","https:\u002F\u002Fcxcscmu.github.io\u002FSkillLearnBench","https:\u002F\u002Fgithub.com\u002Fcxcscmu","2026-10-02 22:55:36",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add cxcscmu\u002FSkillLearnBench --skill run2_13f-data-analysis",{"tool":64,"command":65},"bunx","bunx skills add cxcscmu\u002FSkillLearnBench --skill run2_13f-data-analysis",{"tool":67,"command":68},"pnpm","pnpm dlx skills add cxcscmu\u002FSkillLearnBench --skill run2_13f-data-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb2-self-feedback-claude-opus-4-6\u002Ffinancial-analysis\u002Frun2_13f-data-analysis\u002FSKILL.md",true,[],[73,89,113,131,151,163],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":82,"publishedAt":45},"01M6KM5KH175P5ABP5JMX2SBDQ","object_counter","Count occurrences of an object in the image using computer vision algorithm.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Fvideo-object-counting\u002Fobject_counter\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[83,84,85,86,87,88],"object counter","object","vision","computer","Computer Vision","image",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":98,"publishedAt":45},"01M6KM51TMVXG79MMPCS6Y8G86","travel-planning-workflow","Invoke this skill when performing travel planning. It defines a structured workflow for generating itineraries. Following this workflow is essential to ensure the final plan satisfies user requirements.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Ftravel-planning-workflow\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[99,100,101,102,103,104,105,106,107,37,108,109,110,111,112],"workflow","planning","planning workflow","travel","travel planning","travel planning workflow","structured","performing","plan","user","it","requirements","essential","itineraries",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":45},"01M6KM4DY820XHS9YTSK5QP5HD","bundled-dataset-search-tool","invoke this skill when you need to perform database search for travel planning. This skill provides some useful pre-packaged tools to look up accommodations, attractions, cities, driving distance, flights, and restaurants from the bundled dataset.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Fbundled-dataset-search-tool\u002FSKILL.md",[],[120,121,122,123,124,125,126,102,127,128,103,129,37,130,100],"search","tool","dataset","bundled dataset search tool","restaurants","Tools","up","look","flights","you","database",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":45},"01M6KM465BB9PQ0B548HQSVAWZ","glm-output","Output-processing guidance for GLM tasks. Especially useful after glm-basics and glm-calibration when you need verifier-matching metrics from output.nc and a final \u002Froot\u002Fmetrics.json.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-output\u002FSKILL.md",[],[138,139,140,37,141,142,143,144,145,146,147,148,129,149,150],"glm output","output","glm","tasks","metrics","json","basics","guidance","matching","verifier","processing","root","calibration",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":45},"01M6KM40KY3QWDW5W97S39R2BC","glm-calibration","Calibration guidance for GLM tasks. Often most effective after glm-basics has clarified the setup; glm-output is the companion skill for exact final metric computation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-calibration\u002FSKILL.md",[157],{"categoryNo":96,"categoryName":97,"taxonomyType":20,"taxonomyTypeDesc":21},[159,150,140,139,145,144,141,160,161,37,162],"glm calibration","setup","companion","metric",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":45},"01M6KM3VHHVSGMGHJQB3PPT6YG","glm-basics","A good starting point for GLM calibration tasks. Use to inspect glm3.nml, confirm how GLM runs, and identify the relevant files before moving on to calibration and output evaluation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-basics\u002FSKILL.md",[],[170,140,144,171,159,150,37,139,172,173,174,175,176,177,141],"glm basics","inspect","relevant","files","good","use","how","Evaluation"]