Skip to content

FlatFeePricing: missing period field for signals flat-fee billing #1216

@bokelley

Description

@bokelley

Problem

FlatFeePricing (used in signal pricing options) defines a fixed charge but does not specify what period that charge covers:

```typescript
interface FlatFeePricing {
model: 'flat_fee';
amount: number;
currency: string;
}
```

The JSDoc says "Fixed charge per reporting period, regardless of impressions or spend. Used for licensed data bundles and monthly audience subscriptions." — but buyers have no way to know whether amount represents a monthly, quarterly, per-campaign, or per-activation charge. This matters for budget planning and cost comparison across signals agents.

Proposed fix

Add an optional period field with a defined set of values:

```typescript
interface FlatFeePricing {
model: 'flat_fee';
amount: number;
currency: string;
/** Billing period for the flat fee. Defaults to 'monthly' when omitted. */
period?: 'monthly' | 'quarterly' | 'annual' | 'campaign';
}
```

This mirrors how platforms like Nielsen, IRI, and LiveRamp structure their licensed data pricing contracts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions