STUD.com
← Objectives

Calculate · Assess & Decide · Analysis & Finance

Partner-sourced vs influenced revenue and lift

Counts and won-revenue split partner-sourced / influenced / no-partner, with the comparative lift (close rate, deal size, days-to-close) of partner deals vs the rest.

You receive: A reviewed attribution calculator + the passing test report, run on your deal records.

Part of Grow Partnerships

Opens soon

Cost25 credits
AcceptanceAutomated check against your inputs
ProtectionHeld until verified delivery

This objective is verified and ready. It opens soon, once sign-in and payments are live.

Deliverable interface

The exact vocabulary the automated check enforces: keys, tokens, entry points, and worked examples. Generated from the verification source.

{
 "constants": {},
 "entryName": "compute_partner_attribution",
 "expectNote": "expect is the comparison-space value (your return value goes through normalize first when one is published)",
 "hiddenCaseCount": 10,
 "hiddenCaseNames": [
  "dual_precedence_sourced",
  "dual_precedence_influenced",
  "empty_baseline",
  "div_by_zero_rest",
  "open_excluded_from_metrics",
  "missing_amount_zero",
  "days_ignore_null",
  "custom_stage_labels",
  "all_no_partner",
  "empty_dataset"
 ],
 "inputKeys": [
  "amount",
  "comparative_metrics",
  "days_to_close",
  "deals",
  "dual_tag_precedence",
  "lost_stages",
  "no_partner",
  "partner_influenced",
  "partner_role",
  "partner_sourced",
  "stage",
  "won_stages"
 ],
 "normalizeSource": "def _attr_normalize(r):\n    try:\n        counts = {k: int(v) for k, v in r[\"counts\"].items()}\n        rev = {k: round(float(v), 2) for k, v in r[\"revenue_won\"].items()}\n        comp = {}\n        for m, o in r[\"comparative\"].items():\n            comp[m] = {\"partner\": (None if o.get(\"partner\") is None else round(float(o[\"partner\"]), 4)),\n                       \"rest\": (None if o.get(\"rest\") is None else round(float(o[\"rest\"]), 4)),\n                       \"lift_pct\": (None if o.get(\"lift_pct\") is None else round(float(o[\"lift_pct\"]), 2))}\n        return {\"counts\": counts, \"revenue_won\": rev, \"comparative\": comp}\n    except Exception:\n        return repr(r)\n",
 "returnShapes": [
  [
   "comparative",
   "counts",
   "revenue_won"
  ]
 ],
 "signature": "def compute_partner_attribution(inp):",
 "submission": "python exposing the entry function; inp is one input object; graded on held-out cases",
 "tier": "calculator",
 "visibleCases": [
  {
   "expect": {
    "comparative": {
     "avg_days_to_close": {
      "lift_pct": -62.5,
      "partner": 15,
      "rest": 40
     },
     "avg_deal_size": {
      "lift_pct": 200,
      "partner": 1500,
      "rest": 500
     },
     "close_rate": {
      "lift_pct": 33.33,
      "partner": 0.6667,
      "rest": 0.5
     }
    },
    "counts": {
     "grand_total": 5,
     "no_partner": 2,
     "partner_influenced": 1,
     "partner_sourced": 2,
     "partner_total": 3,
     "rest_total": 2
    },
    "revenue_won": {
     "no_partner": 500,
     "partner_influenced": 2000,
     "partner_sourced": 1000,
     "partner_total": 3000,
     "rest_total": 500
    }
   },
   "input": {
    "comparative_metrics": [
     "close_rate",
     "avg_deal_size",
     "avg_days_to_close"
    ],
    "deals": [
     {
      "amount": 1000,
      "days_to_close": 10,
      "partner_role": "sourced",
      "stage": "won"
     },
     {
      "amount": 2000,
      "days_to_close": 20,
      "partner_role": "influenced",
      "stage": "won"
     },
     {
      "amount": 500,
      "days_to_close": 40,
      "partner_role": "none",
      "stage": "won"
     },
     {
      "amount": 0,
      "days_to_close": null,
      "partner_role": "none",
      "stage": "lost"
     },
     {
      "amount": 0,
      "days_to_close": null,
      "partner_role": "sourced",
      "stage": "lost"
     }
    ],
    "dual_tag_precedence": "sourced",
    "lost_stages": [
     "lost"
    ],
    "won_stages": [
     "won"
    ]
   },
   "name": "mixed_basic"
  }
 ],
 "vocabulary": [
  "amount",
  "avg_days_to_close",
  "avg_deal_size",
  "close_rate",
  "comparative",
  "comparative_metrics",
  "counts",
  "days_to_close",
  "deals",
  "dual_tag_precedence",
  "grand_total",
  "influenced",
  "lift_pct",
  "lost",
  "lost_stages",
  "no_partner",
  "partner",
  "partner_influenced",
  "partner_role",
  "partner_sourced",
  "partner_total",
  "rest",
  "rest_total",
  "revenue_won",
  "sourced",
  "stage",
  "won",
  "won_stages"
 ]
}

Get early access to STUD the day it goes live.