agentsclimarketplace

Psm skill

Skill itsnagarajan/psm-skill/psm-skill

To create PSM charts for the PSM questions asked in the Market Research Survey

Install
npx -y skills add itsnagarajan/psm-skill --skill psm-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Run a Van Westendorp Price Sensitivity Meter (PSM) analysis from survey data. Use this whenever a user drops or uploads a survey file (CSV/Excel) and wants pricing analysis, mentions "price sensitivity", "Van Westendorp", "PSM", "optimal price point", "acceptable price range", "OPP/IPP/PMC/PME", "willingness to pay" from the four PSM questions, or asks to find the right price from "too cheap / cheap / expensive / too expensive" survey responses. Also trigger when a user has pricing-survey columns and wants the curves, key price points, an interactive chart, an Excel workbook, or a Word/PDF report. Produces all three deliverables by default.

SKILL.md

5.8 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Price Sensitivity Meter (Van Westendorp)

Turn a pricing survey into the four cumulative curves, the four key price points (PMC, OPP, IPP, PME) and the acceptable price range — then deliver an interactive chart, an Excel workbook, and a Word/PDF report.

A deterministic engine does all the math and the chart/Excel rendering. Your job is to wire it up to the user's file, sanity-check the column mapping, build the report, and explain the results. Do not re-implement the curve math yourself.

Workflow

1. Locate the data file

The user drops a CSV or Excel file. Find it under /mnt/user-data/uploads/. The file needs one row per respondent and four price columns (the four PSM questions). Extra columns (respondent ID, demographics, etc.) are fine and ignored.

If no file is present, check what the user has:

  • They have raw responses but no formatted file → offer the blank input template at assets/psm_template.xlsx. Present it with present_files so they can fill it in. It has the four correctly-named question columns (which makes auto-detection foolproof), an Instructions sheet, and an Example sheet.
  • They have nothing yet → point them to the template as a starting point for collecting responses, and briefly explain the four PSM questions.

2. Run the engine

python /path/to/skill/scripts/psm_analysis.py "<uploaded_file>" \
    --outdir /mnt/user-data/outputs/psm --currency "$"

Set --currency to match the data ($, , £, AED, etc.; it is only used for cleaning and labels). The script auto-detects the four columns from header keywords, strips currency symbols, drops blank/non-numeric rows, and flags intransitive responses (those violating too_cheap ≤ cheap ≤ expensive ≤ too_expensive), excluding them by default.

It writes to the outdir:

  • results.json — price points, curves, diagnostics, the column mapping it chose
  • psm_curves.png — static chart (embed this in the report)
  • psm_chart.html — self-contained interactive chart
  • psm_analysis.xlsx — Summary, Curves (+ native chart), Clean Data, Excluded

3. Verify the column mapping (important)

Read column_mapping from the script's stdout / results.json and confirm it matched the right column to each role. If headers were vague, it falls back to ordering the first four numeric columns by median. If the mapping looks wrong, re-run with explicit overrides (accepts a header name or a 0-based index):

... --too-cheap "Q1" --cheap "Q2" --expensive "Q3" --too-expensive "Q4"

Also glance at n_analyzed, n_dropped_missing, and n_intransitive — a high intransitive share signals a data-quality or column-mapping problem worth raising.

4. Present results

Show the interactive chart inline using the visualizer (show_widget) by reading psm_chart.html content, OR present psm_chart.html as a file for download. Give the four price points and the acceptable range in a short readable summary. Pull interpretation language from references/methodology.md — especially the OPP-vs-IPP reading and the standard caveats (PSM gives an acceptable band, not a revenue-maximizing price or demand volume).

5. Build the deliverables the user asked for

By default produce all three. The Excel workbook and both charts already exist from step 2. For the Word/PDF report, use the docx skill (and pdf skill if PDF is requested) — read that skill first, then build a report that contains:

  • Title + one-paragraph executive summary naming the recommended price (OPP) and the acceptable range (PMC–PME)
  • A Key price points table (code, price, meaning) from results.json
  • The embedded psm_curves.png
  • A short Methodology section and a Caveats section (from methodology.md)
  • Sample size and exclusions (n_analyzed, dropped, intransitive)

Finally, call present_files with the report first, then the Excel and the interactive HTML chart.

Output summary template

Use this structure when summarizing in chat:

Recommended price (OPP): <currency><price>
Acceptable range (PMC–PME): <currency><low> – <currency><high>
Indifference price (IPP): <currency><price>
Based on N = <n_analyzed> valid responses (<dropped> dropped, <intransitive> intransitive).

Notes & edge cases

  • Currency / locale: pass the right --currency; the cleaner removes thousands separators and stray symbols automatically.
  • Too few rows: the engine errors below 5 usable responses — relay that and ask for more data.
  • Two-column "cheap/expensive" only data: PSM needs all four questions; if only two are present, explain that a full PSM isn't possible.
  • Purchase-intent fields present: a revenue-optimizing extension (Newton-Miller-Smith) becomes possible — see references/methodology.md. Only pursue it if intent data genuinely exists; otherwise keep scope to classic PSM.
  • Blank input template: assets/psm_template.xlsx is a ready-to-fill workbook whose headers match the engine's auto-detection. Offer it whenever a user needs to collect or reformat responses before analysis.
  • The four roles, intersections, and interpretation are documented in references/methodology.md; read it before writing report narrative.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.