What the status columns can actually contain.
These columns are Edm.String holding UPPER_SNAKE_CASE tokens. They were numeric enums in the operational system; the hub converts them to text on write, so you get PAID rather than 2.
Two consequences worth knowing before you build a dimension table:
- The sets below are closed. Anything the hub cannot map falls into
UNKNOWN, so a value outside these lists should not appear. If one does, tell us — it means a mapping is missing.
- Tokens are uppercase and exact.
$filter matches property names case-insensitively but not values: eq 'paid' matches nothing.
Ticket
TicketStatusType
| Token | Means |
|---|
NONE | No status set. |
FREE | Not yet assigned to a person — available. |
ASSIGNED | Assigned to a ticket owner. |
BLOCKED | Blocked from use. |
UNKNOWN | The source held a value the hub could not map. |
TicketValidity
| Token | Means |
|---|
NONE | No validity window defined. |
ONE_DAY | Valid on a single day. |
MULTIPLE_DAYS | Valid on several specific days. |
ALL_DAYS | Valid for the whole event run. |
ThirdPartyRegistrationState
Nullable. Registration handled by an external vendor.
| Token | Means |
|---|
PENDING | Submitted, not yet decided. |
COMPLETED | Accepted. |
DENIED | Rejected. |
UNKNOWN | Unmappable source value. |
| null | No third-party registration involved. |
Article
ArticleType
| Token | Means |
|---|
TICKET | An admission ticket. |
CATALOG | A catalogue. |
CD | A data medium. |
VOUCHER | A voucher. |
SERVICE | A service. |
SERVICE_FEE | A fee added to a sale. |
FUNCTIONAL_FEATURE | A functional add-on rather than a product. |
REGISTRATION_FORM | A registration form article. |
OTHER | Anything else classified explicitly. |
UNKNOWN | Unmappable source value, including "none". |
If you are counting tickets sold, filter ArticleType eq 'TICKET' — otherwise service fees and vouchers land in the same count.
Sale
Four status columns that progress independently. All four are nullable, and all four use UNKNOWN for unmappable values.
SaleStatus
| Token | Means |
|---|
PENDING | Started, not completed. |
COMPLETED | Concluded successfully. |
REVOKED | Withdrawn. |
ERROR | Failed. |
CANCELED | Cancelled. |
PROCESSING | In progress. |
SalePaymentStatus
| Token | Means |
|---|
NOT_REQUIRED | Nothing to pay — a free ticket, for instance. |
NOT_PAID | Payment outstanding. |
PAID | Paid in full. |
PAYMENT_PROCESSING | Payment under way. |
NOT_REFUNDED | Refund considered and not made. |
REFUNDED | Fully refunded. |
PARTIALLY_REFUNDED | Partly refunded. |
REFUND_PENDING | Refund initiated. |
PARTIAL_REFUND_PENDING | Partial refund initiated. |
PARTIAL_REFUND_MANUAL_PENDING | Partial refund awaiting manual handling. |
For paid revenue, SalePaymentStatus eq 'PAID' is the honest filter. NOT_REQUIRED marks genuinely free tickets, which belong in attendance figures but not in revenue.
SaleRegistrationStatus
| Token | Means |
|---|
NOT_REQUIRED | No registration needed. |
PENDING | Registration outstanding. |
REGISTERED | Registration complete. |
SaleReceiptStatus
| Token | Means |
|---|
NOT_REQUIRED | No receipt needed. |
NOT_CREATED | Receipt due, not yet created. |
IN_PROCESS | Being created. |
CREATED | Receipt issued. |
SaleDistributionChainType
| Token | Means |
|---|
NONE | No channel recorded. |
INTERNET | Online shop. |
ON_SITE | Sold at the venue. |
ESC | Exhibitor Service Center. |
INTERN | Internal allocation. |
UNKNOWN | Unmappable source value. |
Several distinct source channels collapse into NONE, so treat it as "not attributable" rather than as a channel.
Legitimation
LegitimationStatus
| Token | Means |
|---|
NEW | Submitted, untouched. |
IN_PROGRESS | Being reviewed. |
WAIT_FOR_VERIFICATION | Awaiting external verification. |
ON_HOLD | Paused. |
INCOMPLETE | Missing information. |
FOLLOW_UP | Needs a follow-up action. |
ACCEPTED | Approved by a reviewer. |
AUTO_APPROVED | Approved automatically. |
DENIED | Rejected. |
UNKNOWN | Unmappable source value. |
ACCEPTED and AUTO_APPROVED are both approvals. Any "how many were approved" figure needs both.
Person
TicketOwnerGenderCode, BuyerGenderCode
| Token | Means |
|---|
UNKNOWN | Not stated or not mappable. |
MALE | |
FEMALE | |
DIVERS | |
BuyerGenderCode is additionally nullable, where no buyer person exists.
Pass-through columns — no fixed list
These also look like status columns, but the hub passes them through from the source system rather than mapping them to a fixed set. Their values depend on your own configuration, so read the distinct values from your own extract and treat that as your dimension:
| Column | Dataset | Comes from |
|---|
TicketRegistrationChannel | Tickets | The channel the registration came through. |
UsedTicketMedium | TicketUsages | How the ticket was presented at the door — print, mobile, wallet. |
Type | TicketUsages | The kind of ticket action recorded. |
QuestionType | Surveys | The question's form type. |
AnswerSource | Surveys | Where the answer came from. |
Characteristic | Surveys | The target field the question writes into. |
Important: Seed the closed sets above as lookup tables in your warehouse and join against them. A token that fails to match then surfaces as an unmatched key — which is what you want when we add one — instead of silently vanishing from a report.