Builder TL;DR
What you’ll do: install a MarginDash integration (SDK or REST), send per-call usage events containing model_name + prompt_tokens + completion_tokens + customer_id, enable Stripe revenue sync (or pass revenue per customer), and turn on the pricing DB + cost simulator to get per-customer P&L and actionable model-swap suggestions. See the product at https://margindash.com/.
Quick artifacts to produce: an integration checklist (install, API key, webhook config), an env file sample (MARGINDASH_API_KEY, STRIPE_WEBHOOK_SECRET), and a one-page acceptance checklist that verifies a per-customer P&L and a budget email (e.g., alert at 90% usage).
Expected fast path: instrument one endpoint and validate attribution in 30–60 minutes; full rollout including Stripe sync and budgets ~2 hours for a single service. The service reports organization-wide and per-feature views (sample dashboard: Revenue $12,480, Cost $8,340, Margin $4,140, Margin % 33.2%) and exposes budgets with percentage alerts (example: Image Generation budget at 91%). See https://margindash.com/.
Methodology note: claims in this tutorial are grounded in the MarginDash snapshot (linked inline) and conservative operational guidance; where exact APIs are not present in that snapshot, I provide generic, safe examples you can adapt.
Goal and expected outcome
Primary outcome: a live per-customer P&L (Revenue, Cost, Margin, Margin %) visible in MarginDash and your internal dashboards using Stripe revenue or passed revenue values. The product shows per-customer margins and highlights unprofitable customers in real time (example data in the UI at https://margindash.com/).
Acceptance criteria:
- Stripe revenue linked to at least one test customer and visible in MarginDash. See https://margindash.com/.
- Model usage events attributed to that customer with token counts sent per call.
- A budget alert fires at a configured threshold (example: 90% of monthly budget; MarginDash sample shows 91% alert).
Business outcome: identify customers with negative margins (UI examples show customers with margins like -18.84%, -17.50%) and use the cost simulator to propose cheaper models ranked by intelligence-per-dollar.
Stack and prerequisites
- MarginDash account / API key and access to the dashboard: https://margindash.com/.
- One integration path: TypeScript, Python, or REST (pick one for initial rollout).
- Billing: Stripe account and webhook access OR capability to pass revenue per customer in your calls to MarginDash.
- Observability: logs that include request_id, customer_id, model_name, prompt_tokens, completion_tokens.
- Scheduling: a cron or scheduled job to verify daily pricing sync (MarginDash maintains 100+ models with daily pricing updates).
Environment variables (example):
# .env
MARGINDASH_API_KEY=sk_live_xxx
MARGINDASH_INGEST_URL=https://ingest.margindash.example
STRIPE_WEBHOOK_SECRET=whsec_xxx
See https://margindash.com/ for feature and pricing DB notes.
Step-by-step implementation
- Sign up & get keys
- Create the MarginDash org and copy MARGINDASH_API_KEY. (UI: https://margindash.com/).
- Install the client (pick REST for the minimal path)
- Example commands:
# install HTTP client (example)
npm init -y
npm install axios
- Instrument calls: send a usage event per model call
-
Requirement: send customer_id, model_name, prompt_tokens, completion_tokens, and a timestamp. If you can't get prompt_tokens/completion_tokens, set STRICT_TOKEN_COUNTS=false and send estimated tokens (see debug section).
-
Minimal REST payload (conceptual):
curl -X POST "$MARGINDASH_INGEST_URL/usage" \
-H "Authorization: Bearer $MARGINDASH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_id":"acct_123",
"model_name":"gpt-4o-mini",
"prompt_tokens":120,
"completion_tokens":80,
"request_id":"req_abc123",
"timestamp":"2026-02-14T15:04:05Z"
}'
- Wire revenue: Stripe sync or pass revenue
-
Option A (recommended): enable Stripe sync so MarginDash can join revenue to cost automatically (see https://margindash.com/).
-
Option B: include revenue field in a periodic revenue update payload if you cannot enable webhooks.
-
Test: send 5 sample invoice mappings before rollout.
- Enable pricing DB & cost simulator
- Confirm the pricing DB has daily pricing updates and 100+ models available. Use the simulator to run "what-if" swaps and see simulated savings and ranked suggestions (benchmarks like MMLU-Pro and GPQA may be shown in the UI). See https://margindash.com/.
- Configure budgets & alerts
-
Create budgets per feature or customer and set thresholds (example: 75% warning, 90% critical). The dashboard example shows a 91% alert for Image Generation.
-
Budget JSON example:
budget:
feature: image_generation
monthly_limit: 600.00
warning_threshold_percent: 75
critical_threshold_percent: 90
notify_email: eng-ops@example.com
- Test & rollout
- Test customer flow: generate 10–100 calls for a test customer, verify MarginDash shows revenue/cost/margin and that the simulator recommends swaps.
- Rollout gates:
- Canary: enable for 1% of customers or top 1 revenue-producing customer.
- Feature flag: expose UI/alerts behind a feature flag for internal users first.
- Rollback: disable the ingestion forwarding or flip the feature flag to off.
Rollout / rollback plan (explicit gates):
- Canary (Gate 1): run on 1 customer for 24 hours, validate margin calculation within ±5% vs. expected local estimate.
- Limited beta (Gate 2): enable for 10 customers or 5% of requests for 7 days; validate budgets, alerts, and simulator suggestions.
- Full rollout (Gate 3): enable for all customers if prior gates pass.
Rollback steps:
- Immediate rollback: flip the feature flag to stop sending usage events to MarginDash (0–2 min).
- If ingestion must be paused at infra-level, remove MARGINDASH_INGEST_URL or revoke API key (owner contact required).
See https://margindash.com/ for budgets and simulator details.
Reference architecture
Components:
- App server: instruments API calls and emits usage events (customer_id, tokens, model_name).
- MarginDash ingestion: receives events and performs pricing lookup (100+ models, daily pricing updates).
- Stripe webhook receiver: maps invoices to customers and syncs revenue to MarginDash.
- Cost-simulator service: runs model-swap simulations and ranks by intelligence-per-dollar.
- Dashboard & alerts: shows per-customer P&L, budget emails, and suggested switches.
Sequence (simplified): model call -> emit usage event -> MarginDash attribute & price lookup -> per-customer margin calculation -> dashboard & budget alerts. More details at https://margindash.com/.
Sample reference table: model-swap decision (sample numbers from simulator UI)
| Current model | Events | Cost | Simulated cost | Savings ($) | Savings (%) | |---|---:|---:|---:|---:|---:| | summarize | 1,240 | $820 | $580 | $240 | 29.3% | | translate | 890 | $640 | $420 | $220 | 34.4% |
Founder lens: ROI and adoption path
Quick ROI calculation inputs (use simulator outputs):
- Identify customers with margin < 0 or margin < 0 for 2 consecutive months.
- For each such customer, compute migration cost (engineering hours * hourly rate) and expected monthly savings from the simulator.
Adoption path (low friction):
- Alpha: internal users (1–5 accounts), collect feedback, verify budget alerts at thresholds 75%/90%.
- Beta: top-10 cost drivers (by event count) for 30 days, run model-swap experiments.
- Public: enable for all customers after 60 days if margins improve.
Decision table example (simplified):
| Customer | Monthly revenue | Monthly cost | Margin % | Action | |---|---:|---:|---:|---| | Plexo Health | $233.25 | $277.20 | -18.84% | Reprice or throttle | | Helix Robotics | $134.29 | $127.31 | 5.20% | Monitor |
See https://margindash.com/ for UI examples and simulated savings.
Failure modes and debugging
Common failures & quick checks (each should include request_id and timestamp):
- customer_id missing -> misattribution. Search logs for events without customer_id: grep "customer_id": - count missing > 0.
- Stale pricing DB -> costs off by >10% vs. expected. MarginDash shows daily pricing updates; verify pricing sync success rate (target 99.9%). See https://margindash.com/.
- Stripe webhook mapping errors -> test with 5 invoice mappings before launch.
- Double-counting token events -> verify idempotency by checking request_id uniqueness per call.
Debug checklist:
- [ ] Confirm events received in ingestion logs for request_id.
- [ ] Verify model_name normalization across providers.
- [ ] Replay 10 sample events through a test endpoint and confirm cost matches simulator.
Replay script example (bash):
# replay.sh
MARGINDASH_INGEST_URL=https://ingest.margindash.example
API_KEY=$MARGINDASH_API_KEY
jq -c '.[]' samples.json | while read -r evt; do
curl -s -X POST "$MARGINDASH_INGEST_URL/usage" -H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' -d "$evt"
done
Edge-case toggle:
# config.yaml
STRICT_TOKEN_COUNTS: true # if false, allow estimated tokens fallback
TOKEN_ESTIMATE_FACTOR: 1.1
Alert thresholds to add to monitoring:
- Daily cost variance > 10% vs. prior week for a customer.
- Unexplained growth > 5% day-over-day for an event type.
- Pricing DB sync failures > 0 in 24h.
Production checklist
Assumptions / Hypotheses
- MarginDash attribution is based on per-call events with customer_id, model_name, and token counts (snapshot shows per-call cost tracking and per-customer margins). See https://margindash.com/.
- The pricing DB is refreshed daily and contains 100+ models.
- Stripe sync can link invoice revenue to customers automatically if webhooks are enabled.
Risks / Mitigations
- Risk: customer_id missing -> Mitigation: reject events without customer_id in strict mode; fallback email alerts if strict mode disabled.
- Risk: stale price data -> Mitigation: monitor daily pricing sync; set SLO 99.9% success and alert on failures.
- Risk: incorrect Stripe mapping -> Mitigation: run 5 sample invoice mappings and a canary for 24 hours.
Next steps
- Run an internal canary: enable ingestion for 1 key account for 24 hours and validate margin within ±5% of local estimate.
- Configure budgets: create at least one budget for the top cost feature (e.g., image_gen) and set warning 75% / critical 90% (example in the UI shows 91% alert). See https://margindash.com/.
- Prepare rollback playbook: feature flag off, revoke API key, and run local spreadsheet cost computations as fallback.
Acceptance checklist to close the launch:
- [ ] SDK / REST instrumentation in production for all entry points.
- [ ] Stripe sync validated with 5 sample invoices.
- [ ] Budget alert sent (critical threshold tested at 90%).
- [ ] Pricing DB daily sync success >= 99.9% for 7 days.
- [ ] Monitoring SLOs: ingestion latency < 1s (median), alert delivery verified.
References and UI examples: https://margindash.com/.