The Advertising Budget Ontology separates a spending allowance into its amount, recurrence, pacing, scope, sharing behavior, and effective window. It also distinguishes a budget that directs delivery from a spend cap that only limits it.

This is an unofficial specification of version 0.4.0 of this Inferal ontology module. The vocabulary remains a draft.

Feedback should be sent to contact@inferal.com.

The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY in this document are to be interpreted as described in BCP 14 when, and only when, they appear in all capitals.

RDF data conforms to the vocabulary when it uses the terms according to their normative meanings below. A data producer claiming closed-world conformance MUST also satisfy the SHACL graph distributed with this module. OWL and RDFS entailment do not imply that an omitted value is false.

Namespace

PrefixNamespace IRI
abghttps://ontology.inferal.com/modules/advertising-budget/

Scope

This module covers reified budgets, budget periods, delivery methods, budget scopes, spend caps, and the effective intervals over which allowances apply.

Actual spend is an advertising metric observation. Auction bidding, forecasts, recommendations, and currency conversion are outside this module. Advertising entities are referenced through a scope but are not defined here.

Competency Questions

  1. Which allowances have compatible quantities, and what scope evidence is represented?
  2. Which scope facts are reported, represented, missing or contradictory?
  3. Which budget pairs share a currency but use different periods?
  4. Which budgets use accelerated rather than even pacing?
  5. Which entities are constrained by a spend cap rather than directed by a budget?

Conceptual Model

Allowance as a resource

A numeric amount alone does not identify an allowance. A budget combines a monetary amount with a period, delivery method, and scope. Consumers MUST compare those qualifiers before treating two budget figures as equivalent.

Budget and cap

A budget is a target toward which delivery is paced. A spend cap is a ceiling that delivery must not exceed. Consumers MUST NOT interpret a cap as evidence of intended spend, and a cap does not carry a delivery method.

Shared scope

Pooling alone cannot apportion the allowance to members. Independently measured member spend remains usable under its own source, grain, currency and reporting-window qualifiers. Configuration, native counts, represented budget-reference links and owner identity MUST remain independent. No completeness or currentness follows from matching counts.

Shared budget evidence contract

Configured sharing, legacy pooling evidence, provider-reported counts, represented budget-reference links and owner identity MUST remain separate. None establishes complete or current membership.

reportedEntityCount preserves actual native reference or association counts, including zero. coveredEntityCount remains a legacy producer-qualified count; a derived campaign-owned count of one is not a provider-reported count.

observedFundedEntity records a represented budget-reference or allocation link, not measured spending or proof of current active membership. scopeOwner is an independent role and MUST NOT be used to infer or exclude a funded member.

Google referenceCount counts campaigns actively using a budget. Its explicitlyShared flag records configured intent across one or more campaigns; a create-operation default MUST NOT fill an absent returned field.

Microsoft AssociationCount is read-only for Add and Update. Shared-budget allocation kind is not proof of multiple current consumers. Campaign-owned count one is derived only from an explicit BudgetId of zero.

Meta Campaign sharing and rebalance flags preserve returned configuration evidence. They establish neither funded ad-set enumeration, runtime authorization, transfer amounts, reversibility nor successful writes.

Readers MUST retain missing, reported-only, zero and conflicting evidence. Conflicting values MUST NOT be resolved by choosing MIN, MAX or SAMPLE as an authoritative value. A SHACL failure denotes evidence-quality failure, not provider invalidity.

Provider count and represented-member denominators may differ. More represented links than a reported active count is diagnostic evidence and MUST NOT silently remove the allowance or establish provider corruption.

Quantity compatibility does not authorize summation. Observed overlap remains visible; represented disjointness, equal counts and sharing flags do not establish complete-scope disjointness, compatible windows or revision identity.

A pooled allowance cannot be apportioned to members without allocation evidence. Independently measured member spend remains usable under its own source, grain, currency and reporting-window qualifiers.

The Microsoft exposure reader selects the latest projected qualified allocation, which may predate a newer suppressed native capture. The native inspection reader MUST retain that newer evidence and its source, account and capture context.

Replace or isolate superseded projection and inference graphs and regenerate from retained native sources. Appending corrected outputs cannot retract stale statements. Identity, windows, write execution and client adoption require separate qualification.

Identifier Scope and Inference

Scope, period and pacing describe configuration without establishing universal identity across configuration history. A later budget snapshot can reuse those qualifiers while changing its amount and source evidence. Spend caps retain scope and period without identifying every ceiling record for that pool. Consumers SHOULD preserve configuration or observation IRIs and provenance and independently assess native revision identity.

The qualification boundary is fresh OWL RL closure over the selected graph containing this vocabulary and its addendum together with the advertising measurement vocabulary and addendum. Synthetic history records share named scope objects, with restored-key positive controls exercising identity inference. RDFLib and Jena SELECT execution on the same standard RDF transport view of that closure qualifies query answers; Jena is not a second OWL reasoner. Full import closure, client adoption and observed production collisions require independent evidence.

Withdrawing identity keys cannot retract stored owl:sameAs, reconstruct merged records or disable older keys still loaded from another graph. Consumers SHOULD establish fresh closure from selected asserted sources and review provenance-aware reconstruction before persistent adoption. Consumers MUST distinguish neutral effective-window typing from native revision identity; persistent adoption requires separate source qualification.

The full reasoning closure remains available for identity and SHACL checks. Transport omits only derived literal-subject triples and retains every legal RDF triple, including literal objects, blank-node lists and source links. The qualification rejects malformed asserted RDF. RDFLib verifies round-trip graph parity; Jena independently verifies SELECT answer bags, with no independent OWL reasoning by Jena.

Timed spending applicability

Budget and SpendCap are distinct subclasses of SpendingSpecification. effectiveWindow has only SpendingSpecification as its domain and Range as its range.

A window alone establishes neither an allowance nor a ceiling. A spend cap remains a ceiling; it does not acquire budget pacing or budget amount requirements.

A spending specification MAY carry one effective window. Absence leaves the interval unspecified; an explicitly open Range carries different evidence.

Budget and SpendCap retain their separate required amount, period and scope properties. SpendCap MUST NOT carry a budgetDeliveryMethod. Windows MUST be resource-valued Ranges.

Replace or isolate superseded vocabulary/schema graphs, regenerate inference from asserted data with the current schema, and replace or isolate superseded inferred graphs. Appending the current schema cannot retract an old inferred Budget type or repair an inconsistent union; old Budget-domain axioms in a union recreate the error.

This correction establishes represented applicability and class distinctions, not provider enforcement, authorization, execution success, identity repair, timezone resolution or client adoption.

Term Reference

Every term in this section is exported for cross-reference. Definitions state the term's meaning; the relations column summarizes declared RDFS and SKOS links. Closed-world cardinalities are specified separately in Validation.

Classes

TermKindNormative meaningRelations
abg:SpendingSpecification Class A specification of planned spending, expressed as an allowance or a ceiling. A specification alone establishes neither a Budget nor a SpendCap. An optional effective window records applicability; absence leaves the interval unspecified. Superclass of abg:Budget and abg:SpendCap
abg:Budget Class A planned spending allowance: an amount of money, the period it applies over, how it is paced within that period, and the scope of entities it covers. Subclass of: abg:SpendingSpecification
abg:BudgetPeriod Class The recurrence over which a budget amount is allowed to be spent, such as each day or once over the whole flight. Subclass of: skos:Concept
abg:BudgetScope Class Represented scope evidence for an allowance or cap. Provider counts, budget-reference links, configuration and owner roles are independent; missing enumeration does not establish an empty or complete scope. No local domain or range restriction.
abg:DeliveryMethod Class How spending is paced within the budget period: evenly across it, or as quickly as inventory allows. Subclass of: skos:Concept
abg:SpendCap Class A ceiling on spending that constrains delivery without directing it. Subclass of: abg:SpendingSpecification

Properties

TermKindNormative meaningRelations
abg:appliesToScope Property The scope of entities the budget covers. Domain: abg:Budget; Range: abg:BudgetScope
abg:budgetAmount Property The allowance a budget permits, as a monetary amount reused from the advertising measurement vocabulary so budgets and spend are denominated in the same terms. Domain: abg:Budget; Range: adm:MonetaryAmount
abg:budgetDeliveryMethod Property How the budget is paced within its period. Domain: abg:Budget; Range: abg:DeliveryMethod
abg:budgetPeriod Property The recurrence the budget amount applies over. Domain: abg:Budget; Range: abg:BudgetPeriod
abg:capAmount Property The ceiling a spend cap imposes, as a monetary amount reused from the advertising measurement vocabulary. Domain: abg:SpendCap; Range: adm:MonetaryAmount
abg:capPeriod Property The recurrence a spend cap's ceiling applies over. Domain: abg:SpendCap; Range: abg:BudgetPeriod
abg:constrainsScope Property The scope of entities a spend cap applies to. Domain: abg:SpendCap; Range: abg:BudgetScope
abg:coveredEntityCount Property A legacy producer-qualified scope count, including zero. This may be a native reported count or a derived explicit single-allocation count. Domain: abg:BudgetScope; Range: xsd:integer
abg:coversEntity Property A legacy covered-entity link with producer-qualified meaning. It may denote a budget owner rather than a funded member; no completeness or currentness follows. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:effectiveWindow Property The interval over which a spending specification applies. Budgets and spend caps may both carry this property. Absence leaves applicability unspecified and does not establish an unbounded or standing allowance. Domain: abg:SpendingSpecification; Range: rng:Range
abg:sharedAcrossEntities Property Legacy sharing evidence whose basis is provider-specific: configured intent or shared-allocation kind. It is not proof of multiple current consumers or complete enumeration. Domain: abg:BudgetScope; Range: xsd:boolean
abg:configuredSharing Property A returned configured sharing policy. Absence is unspecified; a create default does not supply a returned value. This evidence grants no write authorization. Domain: abg:BudgetScope; Range: xsd:boolean
abg:rebalanceEnabled Property A returned rebalance flag. It does not state transfer amounts, redistribution limits, reversibility or a confirmed mutation effect. Domain: abg:BudgetScope; Range: xsd:boolean
abg:scopeOwner Property An explicitly represented owner role, independent of funded membership. An owner may also be a funded member when that link is stated; ownership alone neither infers nor excludes funding. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:observedFundedEntity Property An explicitly represented native budget-reference or allocation link. It is not measured spending, proof of current active membership or a complete funded-member enumeration. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:memberBasis Property The native predicate or explicit source basis supporting represented budget-reference or allocation links. It does not qualify their completeness or currentness. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:reportedEntityCount Property An actual native provider-reported reference or association count, including zero. Its native denominator is recorded by reportedCountBasis; no complete enumeration or write permission follows. Domain: abg:BudgetScope; Range: xsd:integer
abg:reportedCountBasis Property The native source predicate whose count is preserved as reportedEntityCount. Producer-derived campaign-owned counts do not carry this basis. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:sharingBasis Property The source predicate supporting legacy sharedAcrossEntities evidence. Configured intent and shared-allocation kind have different meanings across producers. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:scopeAccount Property The account resource attached to this scope observation by its producer. This records represented account context without establishing cross-record identity or authorization. Domain: abg:BudgetScope; Range: rdfs:Resource
abg:scopeObservedAt Property The source capture instant of this scope observation when explicitly available. It does not establish currentness, a validity interval or complete membership. Domain: abg:BudgetScope; Range: xsd:dateTime

Controlled concepts

TermKindNormative meaningRelations
abg:acceleratedDelivery Concept Spending proceeds as quickly as inventory allows and may exhaust the budget before the period ends. Scheme: abg:DeliveryMethodScheme
abg:customPeriod Concept The amount is allowed once across a provider-defined span that is neither a day nor the entity's whole flight. The span itself is carried by the effective window rather than by this concept. Scheme: abg:BudgetPeriodScheme
abg:dailyPeriod Concept The amount is allowed each day and resets at the provider's day boundary. Scheme: abg:BudgetPeriodScheme
abg:lifetimePeriod Concept The amount is allowed once across the entire flight and does not reset. Scheme: abg:BudgetPeriodScheme
abg:standardDelivery Concept Spending is paced evenly across the budget period. Scheme: abg:DeliveryMethodScheme

Concept schemes

TermKindNormative meaningRelations
abg:BudgetPeriodScheme Concept scheme Controlled vocabulary of budget recurrences. No local domain or range restriction.
abg:DeliveryMethodScheme Concept scheme Controlled vocabulary of pacing behaviours. No local domain or range restriction.

Validation

The module's SHACL constraints provide the closed-world conformance profile. The following requirements summarize the constraints that affect ordinary data producers.

Examples

Extension and Interoperability

Controlled vocabularies use SKOS so provider profiles MAY add narrower or matched concepts without replacing the shared classes. Extensions MUST preserve the meanings and constraints of terms they reuse. A mapping MUST NOT assert equivalence merely because two provider fields have similar labels.

Privacy and Security Considerations

Budget amounts and account scope can reveal planned expenditure. Publishers SHOULD apply access controls appropriate to the commercial sensitivity of their data. The vocabulary does not define authorization or currency-conversion policy.