Automated summary
This skill drives the `asc` CLI to set and update subscription and in-app purchase prices per territory, following a purchasing-power-parity strategy.
Strengths
- Covers the full loop: bootstrap a product with `setup`, inspect state via `summary`/`prices list`, then change prices
- Favors bulk CSV import with `--dry-run` to validate rows and resolve price points before applying
- Provides concrete copy-paste commands, with required and optional CSV columns spelled out
- Includes a fail-fast mode (`--continue-on-error=false`) and accepts territory IDs, two-letter codes, or names
Limitations
- Assumes the `asc` CLI is installed and authenticated (`asc auth login` or `ASC_*` env vars)
- IAP coverage is thin: only `pricing summary` and `pricing schedules` are mentioned, with no detailed workflow
- Automatic price resolution depends on price points that already exist in App Store Connect, which the skill does not verify for you
Use it when rolling out or adjusting localized prices across several countries for subscriptions or in-app purchases.
Skip it if your task is editing app availability, metadata, or screenshots rather than the price grid.
Security analysis
CautionThe skill is a legitimate operational guide for App Store Connect pricing commands. It does not contain destructive shell patterns, obfuscation, credential exfiltration, or unsafe instructions. However, it uses authenticated network/API tooling to change real pricing and availability, so it carries operational risk and warrants caution.
- •Requires App Store Connect credentials via `asc auth login` or `ASC_*` environment variables.
- •Commands can modify live subscription/IAP prices, price schedules, and territory availability.
- •Bulk CSV import can apply pricing changes across many territories if run without `--dry-run`.
Examples
Using the asc CLI, set purchasing-power-parity prices for subscription SUB_ID across India, Brazil, Mexico, and Germany from my ppp-prices.csv — dry-run first, then apply and show me a table of the result.Show me the current price of subscription SUB_ID in India and the USA with `asc subscriptions pricing summary`, then change the India price to 2.99.Create a new monthly subscription called Pro Monthly (product id com.example.pro.monthly) at 9.99 USD, available in USA, Canada and UK, then tell me how to add PPP pricing for other territories.name: asc-ppp-pricing description: Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized PPP strategies.
PPP pricing (per-territory pricing)
Use this skill to create or update localized pricing across territories based on purchasing power parity (PPP) or your own regional pricing strategy.
Prefer the current high-level flows:
asc subscriptions setupandasc iap setupwhen you are creating a new productasc subscriptions pricing ...for subscription pricing changesasc iap pricing summaryandasc iap pricing schedules ...for IAP pricing changes
Preconditions
- Ensure credentials are set (
asc auth loginorASC_*env vars). - Prefer
ASC_APP_IDor pass--appexplicitly. - Decide your base territory (usually
USA) and baseline price. - Use
asc pricing territories list --paginateif you need supported territory IDs.
Subscription PPP workflow
New subscription: bootstrap with setup
Use setup when you are creating a new subscription and want to create the group, subscription, first localization, initial price, and availability in one verified flow.
asc subscriptions setup \
--app "APP_ID" \
--group-reference-name "Pro" \
--reference-name "Pro Monthly" \
--product-id "com.example.pro.monthly" \
--subscription-period ONE_MONTH \
--locale "en-US" \
--display-name "Pro Monthly" \
--description "Unlock everything" \
--price "9.99" \
--price-territory "USA" \
--territories "USA,CAN,GBR" \
--output json
Notes:
setupverifies the created state by default.- Use
--no-verifyonly when you explicitly want speed over readback verification. - Use
--tieror--price-point-idinstead of--pricewhen your workflow is tier-driven.
Inspect current subscription pricing before changes
Use the summary view first when you want a compact current-state snapshot.
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "USA"
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "IND"
asc subscriptions pricing prices list --subscription-id "SUB_ID" --paginate
Use summary for quick before/after spot checks and prices list when you need raw price records.
Preferred bulk PPP update: import a CSV with dry run
For broad PPP rollouts, prefer the subscription pricing import command instead of manually adding territory prices one by one.
Example CSV:
territory,price,start_date,preserved
IND,2.99,2026-04-01,false
BRA,4.99,2026-04-01,false
MEX,4.99,2026-04-01,false
DEU,8.99,2026-04-01,false
Dry-run first:
asc subscriptions pricing prices import \
--subscription-id "SUB_ID" \
--input "./ppp-prices.csv" \
--dry-run \
--output table
Apply for real:
asc subscriptions pricing prices import \
--subscription-id "SUB_ID" \
--input "./ppp-prices.csv" \
--output table
Notes:
--dry-runvalidates rows and resolves price points without creating prices.--continue-on-error=falsegives you a fail-fast mode.- CSV required columns:
territory,price - CSV optional columns:
currency_code,start_date,preserved,preserve_current_price,price_point_id - When
price_point_idis omitted, the CLI resolves the matching price point for the row's territory and price automatically. - Territory inputs in import can be 3-letter IDs, 2-letter codes, or common territory names that map cleanly.
One-off subscription territory changes
For a small number of manual overrides, use the canonical set command.
asc subscriptions pricing prices set --subscription-id "SUB_ID" --price "2.99" --territory "IND"
asc subscriptions pricing prices set --subscription-id "SUB_ID" --tier 5 --territory "BRA"
asc subscriptions pricing prices set --subscription-id "SUB_ID" --price-point "PRICE_POINT_ID" --territory "DEU"
Notes:
- Add
--start-date "YYYY-MM-DD"to schedule a future change. - Add
--preservedwhen you want to preserve the current price relationship. - The command handles both initial pricing and later price changes.
Discover raw price points only when you need them
Use price-point lookup and equalizations when you want to inspect Apple's localized ladder directly or pin exact price point IDs.
asc subscriptions pricing price-points list --subscription-id "SUB_ID" --territory "USA" --paginate --price "9.99"
asc subscriptions pricing price-points equalizations --price-point-id "PRICE_POINT_ID" --paginate
Verify after apply
Re-run the summary and raw list views after changes.
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "IND"
asc subscriptions pricing summary --subscription-id "SUB_ID" --territory "BRA"
asc subscriptions pricing prices list --subscription-id "SUB_ID" --paginate
If the subscription was newly created, you can also use asc subscriptions setup with verification enabled instead of stitching together separate create and pricing steps.
Subscription availability
If you need to explicitly enable territories for an existing subscription, use the pricing availability family.
asc subscriptions pricing availability edit --subscription-id "SUB_ID" --territories "USA,CAN,IND,BRA"
asc subscriptions pricing availability view --subscription-id "SUB_ID"
IAP PPP workflow
New IAP: bootstrap with setup
Use setup when you are creating a new IAP and want to create the product, first localization, and initial price schedule in one verified flow.
asc iap setup \
--app "APP_ID" \
--type NON_CONSUMABLE \
--reference-name "Pro Lifetime" \
--product-id "com.example.pro.lifetime" \
--locale "en-US" \
--display-name "Pro Lifetime" \
--description "Unlock everything forever" \
--price "9.99" \
--base-territory "USA" \
--output json
Notes:
setupverifies the created IAP, localization, and price schedule by default.- Use
--start-datefor scheduled pricing. - Use
--tieror--price-point-idwhen you want deterministic tier- or ID-based setup.
Inspect current IAP pricing before changes
Use asc iap pricing summary as the main current-state summary for PPP work.
asc iap pricing summary --iap-id "IAP_ID" --territory "USA"
asc iap pricing summary --iap-id "IAP_ID" --territory "IND"
This returns the base territory, current price, estimated proceeds, and scheduled changes for the requested territory.
Discover candidate IAP price points
Use price-point lookup when you want to inspect or pin exact price point IDs.
asc iap pricing price-points list --iap-id "IAP_ID" --territory "USA" --paginate --price "9.99"
asc iap pricing price-points equalizations --id "PRICE_POINT_ID"
Create or update an IAP price schedule
For manual PPP updates, create a price schedule directly.
asc iap pricing schedules create --iap-id "IAP_ID" --base-territory "USA" --price "4.99" --start-date "2026-04-01"
asc iap pricing schedules create --iap-id "IAP_ID" --base-territory "USA" --tier 5 --start-date "2026-04-01"
asc iap pricing schedules create --iap-id "IAP_ID" --base-territory "USA" --prices "PRICE_POINT_ID:2026-04-01"
Use these when you are intentionally creating or replacing schedule entries. For deeper inspection:
asc iap pricing schedules view --iap-id "IAP_ID"
asc iap pricing schedules manual-prices --schedule-id "SCHEDULE_ID" --paginate
asc iap pricing schedules automatic-prices --schedule-id "SCHEDULE_ID" --paginate
Verify after apply
Use the summary command again after scheduling or applying pricing changes.
asc iap pricing summary --iap-id "IAP_ID" --territory "USA"
asc iap pricing summary --iap-id "IAP_ID" --territory "IND"
For future-dated schedules, expect scheduled changes rather than an immediately updated current price.
Common PPP strategy patterns
Base territory first
- Pick one baseline territory, usually
USA. - Set the baseline price there first.
- Derive lower or higher territory targets from that baseline.
Tiered regional pricing
- High-income markets stay close to baseline.
- Mid-income markets get moderate discounts.
- Lower-income markets get stronger PPP adjustments.
Spreadsheet-driven rollout
- Build the target territory list in a CSV.
- Dry-run the import.
- Fix any resolution failures.
- Apply the import.
- Re-run summary checks for the most important territories.
Notes
- Prefer canonical commands in docs and automation:
asc subscriptions pricing ... - Older
asc subscriptions prices ...paths still exist, but the canonical pricing family is clearer. - Prefer canonical IAP commands in docs and automation:
asc iap pricing ... asc subscriptions pricing prices import --dry-runis the safest subscription batch PPP path today.asc subscriptions setupandasc iap setupalready provide built-in post-create verification.- There is not yet a single first-class before/after PPP diff command; use the current summary commands before and after apply.
- Price changes may take time to propagate in App Store Connect and storefronts.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ppp-pricing-per-territory-pricing-mrwakekp/download' --output '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md.part' && mv '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md.part' '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && test -s '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/asc-ppp-pricing' && cp -R '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp' '.claude/skills/asc-ppp-pricing'Cursor
test -f '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && test -s '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/asc-ppp-pricing' && cp -R '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp' '.cursor/skills/asc-ppp-pricing'Codex
test -f '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && test -s '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/asc-ppp-pricing' && cp -R '.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp' '.agents/skills/asc-ppp-pricing'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp'openskills read 'ppp-pricing-per-territory-pricing-mrwakekp'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/ppp-pricing-per-territory-pricing-mrwakekp/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.