[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GXCHJPYWSEDDFG7E7AMKGZ":3,"skill-same:01M6GXCHJPYWSEDDFG7E7AMKGZ":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6GXCHJPYWSEDDFG7E7AMKGZ","anchor-prices-with-a-tier-ladder",null,"Use when designing a good\u002Fbetter\u002Fbest price menu. Orders the tiers so the middle is the obvious choice, uses the top tier as an anchor, and keeps every tier price in exact minor units.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28,29,30,31,32,33],"anchor","with","prices","ladder","anchor prices with a tier ladder","choice","use","good","units","orders","as","price","top","when","2026-11-10 10:12:30",false,"---\nname: anchor-prices-with-a-tier-ladder\ndescription: Use when designing a good\u002Fbetter\u002Fbest price menu. Orders the tiers so the middle is the obvious choice, uses the top tier as an anchor, and keeps every tier price in exact minor units.\n---\n\n# Anchor prices with a tier ladder\n\nBuyers judge a price against the alternatives on the same page, not against an absolute number. A ladder built around a deliberate high anchor makes the middle tier look reasonable and moves mix without cutting the list price.\n\n## Procedure\n\n1. Put three tiers on the page, not two: a low entry, the target, and a high anchor. Two options invite a yes\u002Fno; three invite a which-one.\n2. Make the anchor genuinely superior, not fake. The top tier must be something a real segment buys, or the decoy is transparent and the anchor fails.\n3. Set the target tier nearer the anchor than the floor: Starter $19, Growth $49, Scale $99.\n4. Keep the gaps non-linear. $19 \u002F $49 \u002F $99 (gaps 30 and 50) reads as a ladder; $19 \u002F $29 \u002F $39 reads as three versions of cheap.\n5. Model the revenue mix, not just the chosen price. If 60% take Growth, 25% Starter, 15% Scale:\n\n       ```\n       python3 -c \"from decimal import Decimal as D; print(D('0.25')*1900 + D('0.60')*4900 + D('0.15')*9900)\"\n       # 4900 blended minor units = $49.00 per buyer\n       ```\n\n6. Stress the mix: remove the anchor and re-run with Scale at zero share to find the floor of the ladder's revenue.\n7. Gate the jumps with a capability the buyer recognises, not a seat count alone — see `gate-features-to-shape-packaging`.\n8. Name the target tier's value in one line a buyer can repeat to their boss; a tier nobody can summarise does not get chosen.\n9. Keep every tier price an integer minor unit in the price table (`price_minor=4900`); never store `49.0` as a float.\n10. Review the ladder when the middle-tier share passes 85% or falls below 40% — both mean the ladder is no longer steering.\n11. Do not discount the anchor to sell it. If the top tier needs a discount to move, it was mispriced or mis-scoped.\n\n## Pitfalls\n\n- A fake anchor nobody ever buys, which buyers see through and which drags the whole page's credibility.\n- Linear tiers that read as three versions of the same cheap thing.\n- Gating the activation feature, so nobody reaches the middle tier at all.\n- Discounting the anchor, which collapses the reference point the ladder depends on.\n- A middle tier priced just above the entry, so almost everyone takes the entry.\n- Tier prices stored as floats in the CMS, so the displayed price and the billed price diverge by a cent.\n\n## Verification\n\n    ```\n    python3 -c \"from decimal import Decimal as D; print(D('0.25')*1900+D('0.60')*4900+D('0.15')*9900)\"\n    # 4900 -> blended revenue per buyer at the assumed mix\n    ```\n\nPass when each tier carries a named value metric and the blend is computed. Report the ladder, the expected mix, and the blended revenue per buyer with the anchor's share stated.\n","# Anchor prices with a tier ladder\n\nBuyers judge a price against the alternatives on the same page, not against an absolute number. A ladder built around a deliberate high anchor makes the middle tier look reasonable and moves mix without cutting the list price.\n\n## Procedure\n\n1. Put three tiers on the page, not two: a low entry, the target, and a high anchor. Two options invite a yes\u002Fno; three invite a which-one.\n2. Make the anchor genuinely superior, not fake. The top tier must be something a real segment buys, or the decoy is transparent and the anchor fails.\n3. Set the target tier nearer the anchor than the floor: Starter $19, Growth $49, Scale $99.\n4. Keep the gaps non-linear. $19 \u002F $49 \u002F $99 (gaps 30 and 50) reads as a ladder; $19 \u002F $29 \u002F $39 reads as three versions of cheap.\n5. Model the revenue mix, not just the chosen price. If 60% take Growth, 25% Starter, 15% Scale:\n\n       ```\n       python3 -c \"from decimal import Decimal as D; print(D('0.25')*1900 + D('0.60')*4900 + D('0.15')*9900)\"\n       # 4900 blended minor units = $49.00 per buyer\n       ```\n\n6. Stress the mix: remove the anchor and re-run with Scale at zero share to find the floor of the ladder's revenue.\n7. Gate the jumps with a capability the buyer recognises, not a seat count alone — see `gate-features-to-shape-packaging`.\n8. Name the target tier's value in one line a buyer can repeat to their boss; a tier nobody can summarise does not get chosen.\n9. Keep every tier price an integer minor unit in the price table (`price_minor=4900`); never store `49.0` as a float.\n10. Review the ladder when the middle-tier share passes 85% or falls below 40% — both mean the ladder is no longer steering.\n11. Do not discount the anchor to sell it. If the top tier needs a discount to move, it was mispriced or mis-scoped.\n\n## Pitfalls\n\n- A fake anchor nobody ever buys, which buyers see through and which drags the whole page's credibility.\n- Linear tiers that read as three versions of the same cheap thing.\n- Gating the activation feature, so nobody reaches the middle tier at all.\n- Discounting the anchor, which collapses the reference point the ladder depends on.\n- A middle tier priced just above the entry, so almost everyone takes the entry.\n- Tier prices stored as floats in the CMS, so the displayed price and the billed price diverge by a cent.\n\n## Verification\n\n    ```\n    python3 -c \"from decimal import Decimal as D; print(D('0.25')*1900+D('0.60')*4900+D('0.15')*9900)\"\n    # 4900 -> blended revenue per buyer at the assumed mix\n    ```\n\nPass when each tier carries a named value metric and the blend is computed. Report the ladder, the expected mix, and the blended revenue per buyer with the anchor's share stated.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-15 02:28:10",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill anchor-prices-with-a-tier-ladder",{"tool":54,"command":55},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill anchor-prices-with-a-tier-ladder",{"tool":57,"command":58},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill anchor-prices-with-a-tier-ladder","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder\u002FSKILL.md",true,[62,66,72],{"path":63,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"SOURCE.md","REFERENCE","参考文档",358,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder\u002FSOURCE.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-anchor-prices-with-a-tier-ladder\u002FTRUST.auto.yaml",[77,105,128,145,158,168],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":81,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":34},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":110,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":34},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[114,115,116,117,118,119,120,121,122,123,124,125,126,127],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":132,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":34},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[136,115,137,138,139,140,141,125,124,123,142,143,144,119,29,118,117],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":109,"licenseFileUrl":149,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":34},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[153,154,116,155,156,126,124,157,122,121,119,118],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":159,"name":160,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":34},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[165,166,167],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":34},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[176,177,178,179,180,181,182,26,183,184,185],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]