22 Agent Skills for Amazon sellers and advertisers: Sponsored Products and Brands audits, search-term mining, budget pacing, DSP and Amazon Marketing Cloud, reporting, listing optimization and compliance, product images, repricing, FBA inbound, stockout, refunds, buyer messaging, and profitability. Built for Kuudo's hosted Amazon Ads and Selling Partner MCP servers; price, budget, listing, and shipment writes are previewed and wait for explicit approval.
68
93%
Does it follow best practices?
Impact
66%
1.65xAverage score across 22 eval scenarios
Medium
Suggest reviewing before use
Illustrative. Adapt to pandas, SQL, Polars, etc.
# df.columns, df.head(), df.dtypes, len(df)
# If JSON: walk keys until tabular ASIN rows appearCOLUMN_MAP = {
"asin": "...",
"sessions": "...",
"page_views": "... or None",
"ordered_product_sales": "...",
"units_ordered": "...",
"orders": "... or None",
"unit_session_pct": "... or None",
"buy_box_pct": "... or None",
"b2b_ordered_product_sales": "... or None",
"b2b_units_ordered": "... or None",
}GET_SALES_AND_TRAFFIC_REPORT JSON, use scripts/compute_metrics.py; do not recreate its normalization logic.COLUMN_MAP before calculating.For every route, preserve field presence separately from numeric zero. Validate one currency before monetary aggregation and confirm the date grain before running daily calculations.
For large downloaded reports, use a two-step pattern:
sales_traffic_metrics.json.sales_traffic_analysis.md.Do not return raw report rows from tool output. Keep top-N tables small by default and expose row counts separately.
Prefer standard-library Python in sandboxes unless third-party packages are confirmed installed. If pandas, numpy, or another package import fails, remove that dependency and continue with json, csv, datetime, statistics, collections, and plain lists/dicts. Never stop at a package-install prerequisite when the input file is available and can be processed with the standard library.
groupby(asin).sum() on additive measures (sessions, sales, units); do not sum percentages — recompute or take period-end per user policy (document).When each row is ASIN × date and the user wants portfolio daily revenue:
# Pseudologic — use real COLUMN_MAP names
# daily = df.groupby(date_col, as_index=False).agg({
# sales_col: "sum",
# sessions_col: "sum",
# units_col: "sum",
# })
# daily = daily.sort_values(date_col).tail(N) # N from user
# daily["dod_pct"] = daily[sales_col].pct_change() * 100
# daily["ma7"] = daily[sales_col].rolling(7, min_periods=3).mean()See time-series-trends.md for MA deviation, WoW, and DOW logic. Do not assume exactly 14 rows — respect user window and min_periods.
# Only if validated:
# non_b2b_sales = total_sales - b2b_sales # per row or portfolio after sumRequire B2B field presence, matching currency and attribution basis, and 0 <= B2B <= total. Otherwise, do not subtract—flag the data issue and report total and B2B separately.
nlargest / ORDER BY for sessions, sales, b2b_sales independently; merge insights in narrative.reports[0]['report_data'] without proof.b2b_sales column is absent..tessl-plugin
skills
amazon-ads-accounts
amazon-ads-budget-pacing
amazon-ads-create-dsp-campaign
amazon-ads-creative-assets
amazon-ads-marketing-cloud
amazon-ads-reporting
assets
templates
sb
references
tests
amazon-ads-sb-performance-review
amazon-ads-sp-campaign-auditor
amazon-ads-sp-search-term-explorer
amazon-product-image
amazon-profitability-calculator
amazon-sp-fba-inbound
amazon-sp-listing-compliance
amazon-sp-listing-optimizer
amazon-sp-messaging-api
amazon-sp-refund-return-monitor
amazon-sp-repricing
amazon-sp-sales-traffic-analyzer
amazon-sp-sqp-asin-ngram
amazon-sp-stockout-prevention
connect-to-kuudo
using-kuudo