{
 "schema_version": "1.0",
 "id": "deputy",
 "name": "Deputy",
 "research_status": "researched",
 "vendor_domain": "deputy.com",
 "category": "Operations & Workflow",
 "task": "Time tracking, shifts & attendance",
 "summary": "Workforce management for hourly and shift-based teams: rota building, time clocking, timesheet approval and labour-law compliance, with payroll and HR integrations.",
 "best_for": "shift-based businesses — hospitality, retail, healthcare, any hourly workforce — that need rostering, clocking and labour-law compliance in one system and have enough staff to clear the minimum spend",
 "skip_if": "you run a small salaried desk team: the $30 monthly minimum means you pay for roughly six users whether you have them or not, and salaried staff rarely need shift-level clocking at all",
 "honest_knock": "The minimum monthly spend is the number to check before anything else: at $5.50 per user on monthly billing, a team of fewer than about six people still pays the $30 floor, so the headline per-user price is misleading at small scale. Beyond that, the plan you probably want is not the one you first price — auto-scheduling, demand forecasting and labour budgets sit in Core, and SSO, custom access levels and location hierarchies only in Pro, which has no public self-serve checkout. The add-ons stack per user as well, and the payroll add-on is US-only and annual-only.",
 "pricing": {
  "status": "public",
  "entry_price": "$5",
  "entry_price_terms": "Lite · per user per month on annual billing, excluding tax",
  "from_price_usd_month": 5.0,
  "plans": null,
  "plans_source": null,
  "notes": "(re-read 2026-09-19 on deputy.com/pricing; amounts unchanged since the browser reading of 2026-07-31, which used both billing toggles) Three plans, per user per month and excluding tax. On annual billing Lite is $5, Core $6.50 and Pro $9; switch the toggle to monthly and the same three read $5.50, $7.25 and $10. Add-ons are billed monthly on top. HR is $2 per user, Messaging+ $1.95 per user and Analytics+ $1.50 per user, and the last two are included in Pro. Deputy Payroll enabled by Paycor is $8 per user plus a $49 monthly base fee, available only on annual Core and Pro plans in the US. The page also states a minimum monthly spend of USD $30 / AUD $30 / GBP £20 per invoice on the monthly Lite, Core and Pro plans. Lite and Core start with a free trial; Pro is Contact us rather than self-serve. Two things the page added since: every plan card now carries Deputy AI marked INTRODUCTORY FREE with the line that price and availability may change, so the AI is not a paid-for feature you can hold them to. And a banner across the top, read again on 24 October 2026, now says 'Switch & Get 6 Months Free | Add WFM and Payroll before Nov 30 and get 6 months on us' (earlier it offered three months) — Payroll being the $8-per-user add-on with the $49 monthly base fee, US-only and annual Core or Pro, so the free months arrive attached to the most expensive thing on the page.",
  "verified_at": "2026-09-19",
  "source_url": null,
  "schema_offer": {
   "price": 5.0,
   "currency": "USD",
   "description": "Lite, per user per month on annual billing, excluding tax; monthly plans carry a $30 minimum per invoice. Read on the vendor's own pricing page on 2026-07-31.",
   "page": "https://officesoftwaremarketplace.com/deputy-review.html"
  },
  "source_quotes": null,
  "recent_change": null
 },
 "free_plan": false,
 "free_plan_evidence": null,
 "cost_traps": [
  {
   "id": "per_seat",
   "label": "Per-seat pricing",
   "evidence": "HR is $2 per user, Messaging+ $1.95 per user and Analytics+ $1.50 per user, and the last two are included in Pro.",
   "verified_at": "2026-09-19",
   "source_url": null
  },
  {
   "id": "addons_extra",
   "label": "Key features are paid add-ons",
   "evidence": "And a banner across the top, read again on 24 October 2026, now says 'Switch & Get 6 Months Free | Add WFM and Payroll before Nov 30 and get 6 months on us' (earlier it offered three months) — Payroll being the $8-per-user add-on with the $49 monthly base fee, US-only and annual Core or Pro, so the free months arrive attached to the most expensive thing on the page.",
   "verified_at": "2026-09-19",
   "source_url": null
  },
  {
   "id": "annual_lock",
   "label": "Annual commitment",
   "evidence": "On annual billing Lite is $5, Core $6.50 and Pro $9; switch the toggle to monthly and the same three read $5.50, $7.25 and $10.",
   "verified_at": "2026-09-19",
   "source_url": null
  }
 ],
 "compare_with": {
  "name": "Connecteam",
  "why": "the all-in-one deskless-team app"
 },
 "links": {
  "record": "https://aibuildermarketplace.com/api/v1/products/deputy.json",
  "review": "https://officesoftwaremarketplace.com/deputy-review.html",
  "marketplace": "https://aibuildermarketplace.com/marketplace/deputy/",
  "vendor_site": "https://deputy.com"
 },
 "purchase": {
  "seller": "the vendor",
  "how": "AIBuilder Marketplace does not sell this software. Sign up, start a trial or buy on the vendor's site.",
  "handoff_url": "https://partner.deputy.com/0p7734yb0psu",
  "affiliate": true,
  "disclosure": "Where purchase.affiliate is true, purchase.handoff_url is an affiliate link: AIBuilder Marketplace may earn a commission at no extra cost to the buyer. Commission never changes what a record says, and products are not ranked by commission. Where it is false the link is the vendor's plain site."
 },
 "provenance": {
  "research": "hand-researched dossier, read on the vendor's own pages",
  "researched_since": "2026-07",
  "method": "https://aibuildermarketplace.com/how-we-review/",
  "license": "CC BY 4.0. Credit 'AIBuilder Marketplace' with a link to https://aibuildermarketplace.com/atlas/.",
  "note": "A rebuild is not a new measurement: pricing.verified_at is the date that matters."
 },
 "cost": {
  "status": "available",
  "engine": "https://aibuildermarketplace.com/agents/#cost",
  "rules": {
   "currency": "USD",
   "unit": "user",
   "axis": "users",
   "plans": [
    {
     "id": "lite",
     "name": "Lite",
     "model": "per_unit",
     "annual_month": 5,
     "evidence": "On annual billing Lite is $5, Core $6.50 and Pro $9; switch the toggle to monthly and the same three read $5.50, $7.25 and $10.",
     "monthly_status": "unknown"
    },
    {
     "id": "core",
     "name": "Core",
     "model": "per_unit",
     "annual_month": 6.5,
     "evidence": "On annual billing Lite is $5, Core $6.50 and Pro $9; switch the toggle to monthly and the same three read $5.50, $7.25 and $10.",
     "monthly_status": "unknown"
    },
    {
     "id": "pro",
     "name": "Pro",
     "model": "per_unit",
     "annual_month": 9,
     "evidence": "On annual billing Lite is $5, Core $6.50 and Pro $9; switch the toggle to monthly and the same three read $5.50, $7.25 and $10.",
     "monthly_status": "unknown"
    }
   ],
   "notes": [
    "Annual subscription only. Monthly prices have not been confirmed from the live toggle; the monthly invoice minimum cannot be encoded as a per-user minimum.",
    "Live pricing source: https://www.deputy.com/pricing (read 2026-10-24)."
   ],
   "rules_verified_at": "2026-10-24",
   "not_computable": [
    {
     "text": "Monthly billing (including its invoice minimum), paid add-ons, SMS and any future charge for introductory-free Deputy AI are excluded.",
     "affects_cost": true
    }
   ]
  },
  "growth": {
   "annual": {
    "product_id": "deputy",
    "currency": "USD",
    "axis": "users",
    "unit": "user",
    "billing": "annual",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 5.0,
      "billed": {
       "amount": 60.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 5.0,
       "core": 6.5,
       "pro": 9.0
      }
     },
     {
      "units": 2,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 10.0,
      "billed": {
       "amount": 120.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 10.0,
       "core": 13.0,
       "pro": 18.0
      }
     },
     {
      "units": 3,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 15.0,
      "billed": {
       "amount": 180.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 15.0,
       "core": 19.5,
       "pro": 27.0
      }
     },
     {
      "units": 5,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 25.0,
      "billed": {
       "amount": 300.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 25.0,
       "core": 32.5,
       "pro": 45.0
      }
     },
     {
      "units": 10,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 50.0,
      "billed": {
       "amount": 600.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 50.0,
       "core": 65.0,
       "pro": 90.0
      }
     },
     {
      "units": 15,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 75.0,
      "billed": {
       "amount": 900.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 75.0,
       "core": 97.5,
       "pro": 135.0
      }
     },
     {
      "units": 20,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 100.0,
      "billed": {
       "amount": 1200.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 100.0,
       "core": 130.0,
       "pro": 180.0
      }
     },
     {
      "units": 25,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 125.0,
      "billed": {
       "amount": 1500.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 125.0,
       "core": 162.5,
       "pro": 225.0
      }
     },
     {
      "units": 50,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 250.0,
      "billed": {
       "amount": 3000.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 250.0,
       "core": 325.0,
       "pro": 450.0
      }
     },
     {
      "units": 100,
      "cheapest_plan": "lite",
      "cheapest_plan_name": "Lite",
      "total_month": 500.0,
      "billed": {
       "amount": 6000.0,
       "every": "year"
      },
      "ranges": [],
      "per_plan": {
       "lite": 500.0,
       "core": 650.0,
       "pro": 900.0
      }
     }
    ],
    "switch_points": [],
    "conflicts": [],
    "unknowns": [
     "Monthly billing (including its invoice minimum), paid add-ons, SMS and any future charge for introductory-free Deputy AI are excluded."
    ],
    "measured": [
     {
      "claim": "\"Up to 31 days\"",
      "claim_source": "https://www.deputy.com/",
      "claim_read_on": "2026-10-23",
      "observed": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://aibuildermarketplace.com/b2b/deputy-review/#claim-vs-measured"
      },
      "plan": "Core Plan trial",
      "comparability": "Same quantity: trial length on day one; the claim is an upper bound and we got the full 31 days.",
      "status": "confirmed",
      "buying_consequence": "A new account got the full 31-day trial of the Core plan without a card.",
      "buyer_direction": null,
      "claim_changed_on": null,
      "status_label": "Confirmed",
      "review_url": "https://aibuildermarketplace.com/b2b/deputy-review/"
     }
    ]
   },
   "monthly": {
    "product_id": "deputy",
    "currency": "USD",
    "axis": "users",
    "unit": "user",
    "billing": "monthly",
    "rows": [
     {
      "units": 1,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 2,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 3,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 5,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 10,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 15,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 20,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 25,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 50,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     },
     {
      "units": 100,
      "cheapest_plan": null,
      "cheapest_plan_name": null,
      "total_month": null,
      "billed": null,
      "ranges": [],
      "per_plan": {
       "lite": "price_unknown_on_billing",
       "core": "price_unknown_on_billing",
       "pro": "price_unknown_on_billing"
      }
     }
    ],
    "switch_points": [],
    "conflicts": [],
    "unknowns": [
     "Monthly billing (including its invoice minimum), paid add-ons, SMS and any future charge for introductory-free Deputy AI are excluded."
    ],
    "measured": [
     {
      "claim": "\"Up to 31 days\"",
      "claim_source": "https://www.deputy.com/",
      "claim_read_on": "2026-10-23",
      "observed": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://aibuildermarketplace.com/b2b/deputy-review/#claim-vs-measured"
      },
      "plan": "Core Plan trial",
      "comparability": "Same quantity: trial length on day one; the claim is an upper bound and we got the full 31 days.",
      "status": "confirmed",
      "buying_consequence": "A new account got the full 31-day trial of the Core plan without a card.",
      "buyer_direction": null,
      "claim_changed_on": null,
      "status_label": "Confirmed",
      "review_url": "https://aibuildermarketplace.com/b2b/deputy-review/"
     }
    ]
   }
  }
 },
 "unknowns": [
  "Plan-by-plan prices are not structured in this record yet; pricing.notes has the full text.",
  "Data export tested on 2026-10-24; contract terms not researched. Scope and untested export routes are listed in measured.exit_test.",
  "Being verified: refund terms are not yet matched to a verbatim line on the vendor's own pages. Not matched does not mean there is none."
 ],
 "verification": {
  "price": "read",
  "free_trial": "measured",
  "refund": "being_verified"
 },
 "status_page": {
  "source_url": "https://status.deputy.com",
  "platform": "statuspage",
  "period": {
   "from": "2026-08-02T05:40:02.260858Z",
   "to": "2026-10-31T05:40:02.260858Z",
   "days": 90
  },
  "read_at": "2026-10-31T05:40:02.260858Z",
  "source_urls": [
   "https://status.deputy.com/history.rss"
  ],
  "claim": null,
  "scope": "Deputy.com Status. Counts cover all incidents on this page; no component filtering. May include services beyond the reviewed product.",
  "incident_count": null,
  "observed_count": 3,
  "counts_by_vendor_label": {
   "unknown": 3
  },
  "major_or_critical_count": null,
  "observed_major_or_critical_count": 0,
  "duration_seconds": null,
  "known_duration_seconds": null,
  "duration_known_count": 0,
  "ongoing_count": null,
  "incidents": [
   {
    "id": "https://status.deputy.com/incidents/mynk3m07pyn0",
    "source_url": "https://status.deputy.com/incidents/mynk3m07pyn0",
    "label": "unknown",
    "title": "Unable to submit forms throughout platform",
    "started_at": null,
    "published_at": "2026-10-21T17:16:55Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.deputy.com/incidents/lkhj39ymjvl5",
    "source_url": "https://status.deputy.com/incidents/lkhj39ymjvl5",
    "label": "unknown",
    "title": "Analytics failing to load with \"Invalid control source\"",
    "started_at": null,
    "published_at": "2026-08-07T03:19:37Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   },
   {
    "id": "https://status.deputy.com/incidents/q02q056nr19y",
    "source_url": "https://status.deputy.com/incidents/q02q056nr19y",
    "label": "unknown",
    "title": "Analytics Reports Failing to Load",
    "started_at": null,
    "published_at": "2026-08-05T17:29:27Z",
    "resolved_at": null,
    "ongoing": null,
    "kind": "notice"
   }
  ],
  "coverage": "feed_entries_only",
  "note": "Vendor-reported incidents, not measured uptime. Durations are summed per incident, clipped to the window; overlaps count separately. Feed notices use publication dates, may include maintenance and lack original start/end times. Counts cover the whole vendor page, not product-only incidents.",
  "availability": "ok"
 },
 "measured": {
  "support": null,
  "onboarding": null,
  "inbox": {
   "timeline": {
    "signup_at": null,
    "messages": [
     {
      "received_at": "2026-10-24T08:25:02Z",
      "sender_name": "Deputy team",
      "sender_domain": "deputy.com",
      "subject": "[code] is your Deputy code",
      "folder": "junk",
      "offer": null
     },
     {
      "received_at": "2026-10-24T08:25:22Z",
      "sender_name": "Deputy team",
      "sender_domain": "deputy.com",
      "subject": "Your Deputy login details",
      "folder": "junk",
      "offer": null
     },
     {
      "received_at": "2026-10-24T08:49:07Z",
      "sender_name": "Deputy team",
      "sender_domain": "team.deputy.com",
      "subject": "Step 1 of 6: Start your first rota",
      "folder": "junk",
      "offer": null
     },
     {
      "received_at": "2026-10-26T08:49:13Z",
      "sender_name": "Deputy team",
      "sender_domain": "team.deputy.com",
      "subject": "Ready for your next step?",
      "folder": "junk",
      "offer": null
     },
     {
      "received_at": "2026-10-26T09:00:12Z",
      "sender_name": "Deputy team",
      "sender_domain": "team.deputy.com",
      "subject": "Get started with Deputy",
      "folder": "junk",
      "offer": null
     },
     {
      "received_at": "2026-10-28T08:49:13Z",
      "sender_name": "Deputy team",
      "sender_domain": "team.deputy.com",
      "subject": "Step 2 of 6: Add team members to your trial",
      "folder": "inbox",
      "offer": null
     },
     {
      "received_at": "2026-10-29T09:51:55Z",
      "sender_name": "Deputy team",
      "sender_domain": "updates.deputy.com",
      "subject": "What’s squeezing your margins—and what can you control?",
      "folder": "inbox",
      "offer": null
     }
    ]
   },
   "window_start": "2026-10-23T22:00:00Z",
   "window_end": "2026-11-06T23:00:00Z",
   "window_days": 14,
   "time_basis": "signup_date_midnight_Europe_Amsterdam",
   "status": "partial",
   "observed_at": "2026-10-31T02:18:02.201141Z",
   "counts": {
    "transactional": 0,
    "onboarding_tips": 0,
    "sales_upsell": 0,
    "personal_looking_sales": 0
   },
   "first_sales_email_hours": null,
   "has_list_unsubscribe": true,
   "uncertain": 7,
   "after_cancel": {
    "status": "not_tested"
   },
   "after_deletion": {
    "status": "not_tested"
   },
   "after_unsubscribe": {
    "status": "not_tested"
   }
  },
  "invites": {
   "status": "not_tested",
   "default_on": true,
   "plus_accepted": "not_tested",
   "invitee_can_unsubscribe": "not_tested",
   "address_book_requested": "not_tested",
   "workspace_requested": "not_tested"
  },
  "entry_exit": {
   "signup": {
    "screens": "not_tested",
    "card_required": false,
    "call_required": "not_tested",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#hands-on"
   },
   "cancel": {
    "screens": "not_tested",
    "call_required": "not_tested",
    "observed_on": null,
    "evidence_url": null
   }
  },
  "tested_on": "2026-10-24",
  "tested_by": "Our team; actor, account and scope are documented in the review.",
  "review_url": "https://officesoftwaremarketplace.com/deputy-review.html",
  "method": [
   "Completed the Core trial onboarding and location setup",
   "Skipped the invitation step and explored Add People",
   "Pasted two synthetic employee rows into the bulk-import grid",
   "Requested existing team-member data and opened its CSV",
   "Updated a preferred name through a Deputy ID re-import"
  ],
  "claims": [
   {
    "claim": "\"Up to 31 days\"",
    "claim_source": "https://www.deputy.com/",
    "claim_read_on": "2026-10-23",
    "observed": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
    "observed_on": "2026-10-24",
    "evidence": {
     "label": "Our test observations",
     "url": "https://officesoftwaremarketplace.com/deputy-review.html#claim-vs-measured"
    },
    "plan": "Core Plan trial",
    "comparability": "Same quantity: trial length on day one; the claim is an upper bound and we got the full 31 days.",
    "status": "confirmed",
    "buying_consequence": "A new account got the full 31-day trial of the Core plan without a card.",
    "buyer_direction": null,
    "claim_changed_on": null
   }
  ],
  "exit_test": {
   "run_date": "2026-10-24",
   "what": "On 24 October 2026, in the trial account from this test, we exported our two imported test team members through 'Download your existing team member data', then pasted the exported rows back into the importer with their Deputy IDs and one changed preferred name.",
   "first_import": "Re-importing with the Deputy ID created no duplicates: still 3 of 3 team members, and the changed name came through ('Beta Updated'). But the gender value 'Prefer not to say', which Deputy itself had put in the export, was flagged as invalid in the importer, and we had to clear it before both rows were accepted.",
   "file_inspected": true,
   "reimport_tested": true,
   "awkward": "Deputy filled in a username, a stress profile (24/7) and gender 'Prefer not to say' on its own, and that gender value is then rejected on re-import. The export is prepared in the background ('This can take up to 5 minutes'); ours was ready after about 20 seconds via the notification bell.",
   "friction": {
    "export_route": "People > Add People > Bulk import and update > Update team members > Download; a notification says when it is ready ('can take up to 5 minutes').",
    "format": "CSV or XLSX in the import format, including the Deputy ID; no schedules, hours or leave.",
    "reimport": "Re-import on Deputy ID works without duplicates, but the gender value from Deputy's own export is rejected, and the base rates were already lost on the first import.",
    "cancellation": "Not tested."
   },
   "not_tested": [
    "The Deputy Data Exporter (a separate tool with a CSV per data source)",
    "Exporting schedules, hours and leave",
    "Uploading a file (we only pasted rows into the importer)",
    "Pay rates set through 'Assign pay by area'"
   ],
   "came_along": [
    "Both team members with name, email, location, role, our Payroll ID, hired date and a Deputy ID",
    "29 columns, the same as the import template"
   ],
   "lost": [
    "The base rates (20 and 25) we pasted in on the first import: empty in the export and no pay rate in People"
   ],
   "note": "One export and re-import of synthetic records, on the account and date stated. Friction is described, not scored; this is not a verdict on the product.",
   "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#exit-test"
  },
  "facts": {
   "trial_requires_card": {
    "value": false,
    "basis": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#claim-vs-measured"
   },
   "trial_duration_confirmed": {
    "value": true,
    "basis": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#claim-vs-measured"
   },
   "export_file_inspected": {
    "value": "not_tested",
    "basis": "No explicit observation in the public evidence.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#hands-on"
   },
   "export_reimport_tested": {
    "value": true,
    "basis": "On 24 October 2026, in the trial account from this test, we exported our two imported test team members through 'Download your existing team member data', then pasted the exported rows back into the importer with their Deputy IDs and one changed preferred name. One export and re-import of synthetic records, on the account and date stated. Friction is described, not scored; this is not a verdict on the product.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#exit-test"
   },
   "export_direct_download": {
    "value": "not_tested",
    "basis": "No explicit observation in the public evidence.",
    "observed_on": "2026-10-24",
    "evidence_url": "https://officesoftwaremarketplace.com/deputy-review.html#hands-on"
   },
   "marketing_emails_14d": {
    "value": "not_tested",
    "basis": "No complete unambiguous 14-day inbox observation available.",
    "observed_on": "2026-10-31",
    "evidence_url": null
   }
  }
 },
 "third_party_video": {
  "url": "https://www.youtube.com/watch?v=tPxdVnw4Kx8",
  "channel": "James And Jenna's Tutorials",
  "published": "2025-09-18",
  "shows": "An independent tutorial inside the Deputy web app, adding tasks and browsing the integrations directory",
  "independent": true,
  "checked_at": "2026-10-22"
 },
 "task_evidence": {
  "structured_checks": [],
  "sessions": [
   {
    "source": "session",
    "product_name": "Deputy",
    "product_id": "deputy",
    "run_date": "2026-10-24",
    "session_type": "hands_on",
    "what": "Tested by our team on 24 October 2026 during the Core plan trial, without a card, without sending invitations, publishing a schedule or connecting payroll: Daan created the account and our AI assistant ran the test in Daan's browser. We pasted two made-up team members (with a payroll ID and a base rate) into the bulk importer, exported the team data, and pasted the exported rows back with one changed name.",
    "findings": [
     "The bulk importer accepted both rows after we cleared a job title that did not exist yet ('Tester'): only existing job titles are allowed. 'Job Complete: 2 records imported successfully, 0 records failed', and both people showed as Employee, 'Not invited'. The importer's column order differs from the CSV template, so rows copied from the template land in the wrong columns; whether an uploaded file is matched by column name we did not test.",
     "The base rates we pasted in (20 and 25) did not come through: they were empty in the export and no pay rate showed in People.",
     "The team export is prepared in the background ('This can take up to 5 minutes'); ours was ready after about 20 seconds via the notification bell. The CSV had the same 29 columns as the import template, with both people, our payroll IDs and a Deputy ID each. Deputy had filled in a username, a stress profile (24/7) and gender 'Prefer not to say' on its own.",
     "Pasting the exported rows back with their Deputy ID created no duplicates and applied the changed name. But 'Prefer not to say', the gender value from Deputy's own export, was flagged as invalid and had to be cleared first.",
     "After setup, 'Now let's add your team members' had 'Send email invites' ticked by default; we skipped it. The template's sample rows set 'Send Invite' to Y and the role to System Administrator.",
     "The trial bar said '31 days remaining of your Core Plan trial.' and no card was asked. Consent to sales and marketing calls is a line of text under the phone field; SMS marketing is a separate tick box, which we left off."
    ],
    "not_tested": [
     "Scheduling and publishing a roster",
     "Clocking in and timesheets",
     "Payroll connections",
     "What happens after 31 days",
     "Deputy AI"
    ],
    "report": null,
    "disclosure": null,
    "evidence_status": null,
    "result": "reported",
    "note": "Findings as written up after the session; no pass/fail per task was scored.",
    "claim_checks": [
     {
      "claim": "\"Up to 31 days\"",
      "claim_source": "https://www.deputy.com/",
      "claim_read_on": "2026-10-23",
      "observed": "On sign-up day the app showed '31 days remaining of your Core Plan trial.' No card was asked.",
      "observed_on": "2026-10-24",
      "evidence": {
       "label": "Our test observations",
       "url": "https://officesoftwaremarketplace.com/deputy-review.html#claim-vs-measured"
      },
      "plan": "Core Plan trial",
      "comparability": "Same quantity: trial length on day one; the claim is an upper bound and we got the full 31 days.",
      "status": "confirmed",
      "buying_consequence": "A new account got the full 31-day trial of the Core plan without a card.",
      "buyer_direction": null,
      "claim_changed_on": null
     }
    ],
    "claim_checks_note": "A vendor claim (quoted, with source and read date) set against what we observed in this session on the plan stated. status is confirmed, contradicted, not_comparable, not_testable or out_of_date; it is not a score of the product.",
    "exit_test": {
     "run_date": "2026-10-24",
     "what": "On 24 October 2026, in the trial account from this test, we exported our two imported test team members through 'Download your existing team member data', then pasted the exported rows back into the importer with their Deputy IDs and one changed preferred name.",
     "first_import": "Re-importing with the Deputy ID created no duplicates: still 3 of 3 team members, and the changed name came through ('Beta Updated'). But the gender value 'Prefer not to say', which Deputy itself had put in the export, was flagged as invalid in the importer, and we had to clear it before both rows were accepted.",
     "file_inspected": true,
     "reimport_tested": true,
     "awkward": "Deputy filled in a username, a stress profile (24/7) and gender 'Prefer not to say' on its own, and that gender value is then rejected on re-import. The export is prepared in the background ('This can take up to 5 minutes'); ours was ready after about 20 seconds via the notification bell.",
     "friction": {
      "export_route": "People > Add People > Bulk import and update > Update team members > Download; a notification says when it is ready ('can take up to 5 minutes').",
      "format": "CSV or XLSX in the import format, including the Deputy ID; no schedules, hours or leave.",
      "reimport": "Re-import on Deputy ID works without duplicates, but the gender value from Deputy's own export is rejected, and the base rates were already lost on the first import.",
      "cancellation": "Not tested."
     },
     "not_tested": [
      "The Deputy Data Exporter (a separate tool with a CSV per data source)",
      "Exporting schedules, hours and leave",
      "Uploading a file (we only pasted rows into the importer)",
      "Pay rates set through 'Assign pay by area'"
     ],
     "came_along": [
      "Both team members with name, email, location, role, our Payroll ID, hired date and a Deputy ID",
      "29 columns, the same as the import template"
     ],
     "lost": [
      "The base rates (20 and 25) we pasted in on the first import: empty in the export and no pay rate in People"
     ],
     "note": "One export and re-import of synthetic records, on the account and date stated. Friction is described, not scored; this is not a verdict on the product."
    },
    "in_catalog": true
   }
  ]
 },
 "open_questions": [
  {
   "question_id": "deputy:cancellation_terms",
   "key": "cancellation_terms",
   "question": "Can a customer cancel at any time, and what happens to an annual plan that is cancelled mid-term?",
   "status": "open"
  },
  {
   "question_id": "deputy:data_export",
   "key": "data_export",
   "question": "Which data can a customer export, in which formats, on which plans?",
   "status": "open"
  },
  {
   "question_id": "deputy:data_location",
   "key": "data_location",
   "question": "Where is customer data stored, and can a customer choose the region?",
   "status": "open"
  },
  {
   "question_id": "deputy:monthly_billing",
   "key": "monthly_billing",
   "question": "Which plans can be bought month to month, and at what price?",
   "status": "open"
  },
  {
   "question_id": "deputy:pricing_gap_1",
   "key": "pricing_gap_1",
   "question": "Our price check could not put a number on this part of the cost: Monthly billing (including its invoice minimum), paid add-ons, SMS and any future charge for introductory-free Deputy AI are excluded. Can you publish the price or the rule?",
   "status": "open"
  }
 ],
 "vendor_answers": [],
 "agent_channels": {
  "vendor_mcp": null,
  "agent_checkout": {
   "status": "not_found",
   "detail": "No explicit support for purchases by AI agents on the vendor's own pages.",
   "checked_at": "2026-10-07",
   "method": "homepage, /pricing and the pricing page we cite, read as plain HTML (no JavaScript) and searched for explicit support of purchases by AI agents: Agentic Commerce Protocol, Instant Checkout, Agent Payments Protocol, buy in ChatGPT, agentic checkout"
  }
 }
}
