Install
$ agentstack add skill-vicoa-ai-app-business-skills-app-pricing-research ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
app-pricing-research
First step of app pricing-strategy research: get an app's prices across many countries (original local price + estimated USD), one table per pricing tier.
Quick start
cd app-business-skills/skills/app-pricing-research/scripts
# default: ChatGPT across large-population markets
python3 benchmark.py
# a specific app + countries (ISO codes or names), write to a file too
python3 benchmark.py --app-id 6448311069 --countries in,br,id,tr,us --out report.md
# resolve an app by name (lists matches if ambiguous; re-run with --app-id)
python3 benchmark.py --app-name "Duolingo"
How to choose inputs
App — give --app-id if known. Otherwise --app-name "" resolves it via the iTunes Search API (if several match, it prints candidates — pick one and pass --app-id). No app specified → defaults to ChatGPT (6448311069).
Countries — --countries takes ISO-3166 alpha-2 codes (in,br,jp) or country names (India,Brazil,Poland). Any country resolves automatically from the bundled data/countries.json (~246 countries → name, flag, currency). An unknown name errors clearly; an unknown code is still tried best-effort. With no --countries, it uses the default_markets list in data/countries.json — edit that list to change your standing set of interested markets. To target the user's own top markets, first pull installs/proceeds by territory from App Store Connect (Sales & Trends needs a Sales/Finance/Admin key + vendor number; the rich Analytics Reports API needs an Admin key).
How it works
- Prices: the App Store listing is rendered per storefront with the gstack
browsebinary
(real JS render — IAP prices are NOT in the static HTML), then read from the Information → In-App Purchases section. URL form: apps.apple.com//app/id?l=en.
- USD: live rates from
open.er-api.com(verified to track Google Finance within ~0.2%);
the report stamps the rate date. The currency is read from the displayed price (so USD-billed storefronts like Kenya convert correctly), falling back to the country's currency.
- Output: one markdown table per pricing tier (rows = countries; local price + ≈USD).
Notes / limits
- USD is approximate — FX updates ~daily and drifts between Apple's price-point updates.
The local price is exact (straight from Apple); treat ≈USD as a comparison aid.
- Duplicate tiers: some apps list the same IAP name twice (e.g. ChatGPT's monthly + annual
"Plus"); the tool disambiguates by ascending price as Name (1) / Name (2).
- Locale formats are handled (
Rp 75ribu=75,000,132.000đ=132,000,R$ 39,90=39.90).
If a price can't be parsed safely, ≈USD shows ? rather than a wrong number.
- Unknown / no data: an unrecognized country name errors; a country that returns no IAPs is
listed in a "No data returned" note at the end rather than silently dropped.
- Each country is a separate browser load (~a few seconds); ~15 countries takes a couple minutes.
Files
scripts/benchmark.py— the tool.data/countries.json— country reference (code → name +
currency) and the editable default_markets list; regenerate from mledoze/countries to refresh.
Prereqs
- gstack
browse(the/browseskill) installed. python3(standard library only).
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vicoa-ai
- Source: vicoa-ai/app-business-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.