Files
zarinpal-analytics-backend/CONTEXT.md

58 lines
2.6 KiB
Markdown

# Domain Glossary
## Merchant
A business represented in the source data. A merchant owns terminals, payment sessions, and merchant users. In the MVP, detailed data is visible only within that merchant's authenticated boundary.
## Merchant User
A person/account permitted to authenticate as one merchant. The hackathon seed creates an initial demo user for each merchant; a merchant and a merchant user are not the same concept.
## Terminal
A merchant-owned payment endpoint identified by the source terminal key.
## Payment Session
One payment journey identified by the source session key. A session belongs to one merchant and terminal and can contain one or more payment attempts.
## Payment Attempt
One try within a payment session, distinguished by its try sequence. This is the grain of a source CSV row and must not be confused with a unique payment session.
## Opaque Payer Token
The nullable `payer_card_key` source value. It is an unverified, merchant-scoped token used only for internal approximate repeat-payer analytics. It is not a card number or verified person identifier.
## Import Run
One traceable attempt to ingest a specific source archive/schema using a specific importer revision. It records outcome, counts, validation evidence, and provenance.
## Calendar Date
One civil date enriched with Gregorian and Jalali calendar attributes, Persian month/season, weekday, and reporting attributes.
## Reporting Period
An approved time window used for metrics: Tehran-local day, week, Jalali month, or Persian season.
## Analytical Metric
A deterministic numerical measure with a definition, source fields, filters, period, unit, missing-data behavior, and drill-down path.
## Analytics Projection
A rebuildable, versioned analytics result derived from normalized PostgreSQL facts and cached in Redis for one merchant/cohort revision. It is not independent business truth.
## Analytics Revision
A monotonically increasing PostgreSQL merchant or cohort version changed when a related payment fact is inserted. Redis cache keys include the revisions they represent; a mismatch causes request-triggered section jobs to calculate new keys while older keys expire through TTL.
## Analytics Section
One independently calculable and deliverable part of the dashboard, such as overview, payment performance, fees, or peer comparison. All core sections start on first dashboard access and become visible independently through authenticated SSE events.
## Peer Cohort
An approved group of other merchants used for anonymized comparison. The active merchant is excluded, and a benchmark is suppressed unless at least 10 peers and 1,000 peer sessions contribute.