Skip to content

certification: S2 creative-agent-pricing module should cover out-of-band billing #2884

Description

@bokelley

Problem

PR #2879 made pricing/billing optional in the creative-ad-server conformance storyboard (schema was already optional — conformance was over-strict). But the S2 training module in specs/creative-agent-pricing.md (lines 415-450) still assesses "Pricing and accounts" at 15% weight and the lab exercise assumes pricing is present on every creative.

Learners who take this module will be trained to expect pricing_options on every list_creatives response — which will teach them to build buyer-agent logic that fails against CM360-shaped agents (which bill out of band). The curriculum would be recreating the teach-to-test pattern that was just fixed in conformance.

Proposal

Update specs/creative-agent-pricing.md to:

  1. Add a learning objective: "Recognize out-of-band billing agents and handle report_usage responses that surface records as not accepted (accepted: 0 with errors)."

  2. Update the lab exercise (lines 415-430) to include a test case where the agent is CM360-shaped: no pricing_options on list_creatives, no pricing_option_id on build_creative, and report_usage returns accepted: 0 with an explanatory error. Learner must correctly route / reconcile without treating this as a validation bug.

  3. Update the assessment rubric (lines 440-450) to grade on both modes:

    • Can the learner correctly consume pricing when present? (current 15%)
    • Can the learner correctly handle the absence of pricing as a legitimate business-model shape? (new)
  4. Reference the new BILLING_OUT_OF_BAND error code (when that lands, see the related follow-up issue) so learners get the canonical shape.

Why this matters

The cert is meant to validate real buyer-agent competence. If the module only teaches the AdCP-billed case, we'll certify buyer agents that break against one of the largest creative-serving vendors in the market. Anti-teach-to-test principle (per feedback_anti_teach_to_test.md in memory): conformance and curriculum need to cover the same business-model breadth, not a narrow happy path.

Scope

Curriculum-only update. No spec or conformance changes needed — those are already covered by PR #2879 and the two related 3.1 follow-ups.

Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    claude-triagedIssue has been triaged by the Claude Code triage routine. Remove to re-triage.enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions