[NYSE]S&P 500:4,543.21+0.5%[NASDAQ]NASDAQ:14,231.45+0.8%[NASDAQ]Apple:$178.65+1.2%[NASDAQ]Microsoft:$423.10+0.8%[NASDAQ]NVIDIA:$832.42+2.3%[KOSPI]Samsung:₩88,800-0.8%[KOSPI]SK Hynix:₩259,000+1.5%[FX]USD/KRW:1,334.50[Crypto]Bitcoin:$52,341-1.2%[KRX]KOSPI:2,501.23-0.3%[NYSE]S&P 500:4,543.21+0.5%[NASDAQ]NASDAQ:14,231.45+0.8%[NASDAQ]Apple:$178.65+1.2%[NASDAQ]Microsoft:$423.10+0.8%[NASDAQ]NVIDIA:$832.42+2.3%[KOSPI]Samsung:₩88,800-0.8%[KOSPI]SK Hynix:₩259,000+1.5%[FX]USD/KRW:1,334.50[Crypto]Bitcoin:$52,341-1.2%[KRX]KOSPI:2,501.23-0.3%
← Back to Documentation

Data Formats & Structures

Purpose

This page explains how we deliver data, what formats we support, and the standard structures we use across projects. If you need a custom schema, we can adapt. Email henry@primechasedata.com.

Global Standards

  • Encoding: UTF-8
  • Timezone: UTC by default. Include timezone if not UTC.
  • Dates: ISO 8601. Example: 2025-01-21T14:30:00Z
  • Numbers: Dot as decimal separator
  • Currency: 3-letter ISO code. Example: USD, KRW
  • Booleans: true or false
  • IDs: UUID v4 or your native platform ID. We include both when possible.
  • Phone: E.164. Example: +14155551234, +821012345678
  • Nulls: Empty string or null, not N/A or 0
  • File naming: clientslug_object_YYYYMMDD.csv
  • PII handling: Only fields listed below. Remove anything not required.

Delivery Methods

📄 CSV Export

  • • UTF-8, comma separated
  • • Header row included
  • • Zipped if over 50k rows
  • • One row per record

🔌 JSON API

  • • REST endpoints with OAuth 2.0
  • • Pagination via cursor
  • • Rate limit: 100 requests/minute
  • • Webhooks for delivery_ready and error events

📊 Google Sheets

  • • Shared view-only sheet
  • • Collaborative reviews
  • • Version history retained

🔄 Direct CRM Sync

  • • Salesforce, HubSpot via native connectors
  • • Zapier integration available
  • • Mapping done in shared data dictionary

Data Quality Standards

<5%
Email Bounce Rate
95%+
Field Level Accuracy
30 days
Verification Freshness
100%
Quality Report Included

Every file includes a data_quality_report tab or JSON block with row counts, duplicates removed, and error reasons.

Key Objects and Schemas

1. Lead Object

Standard Fields

lead_id: String (UUID we assign)
first_name: String
last_name: String
email: String (Verified)
phone: String (E.164 format)
title: String
company: String
company_id: String (Our internal ID)
linkedin_url: URL
country: String (ISO-2)
state_region: String
city: String
source_system: String (e.g., "web_form", "import")
verified_date: Date

Enrichment Fields

company_size: Integer (Employees)
revenue: Number (Annual in USD)
industry: String (NAICS or plain English)
seniority: String (e.g., "Manager", "Director", "VP")
department: String (e.g., "Marketing", "IT")
engagement_status: String (e.g., "opened", "replied")
last_engaged_at: DateTime
intent_topics: Array of Strings

Deduplication: By email. If missing, use phone. If both missing, use normalized name + company + country hash.

2. Account (Company) Object

account_id: String
company: String
domain: String
naics: String
industry: String
company_size: Integer
revenue: Number
hq_country: String
hq_state_region: String
hq_city: String
linkedin_url: URL
created_at: DateTime
updated_at: DateTime

3. Location (Store/Office) Object

location_id: String
account_id: String
name: String
address_1: String
address_2: String
city: String
state_region: String
postal_code: String
country: String
lat: Number
lng: Number
phone: String
hours_json: JSON (daily hours)
gbp_place_id: String (if available)

4. Product Object (E-commerce/Retail)

product_id: String
sku: String
barcode_gtin: String
name: String
category: String
price: Number
currency: String
case_pack: Integer
unit_weight_kg: Number
dimensions_cm_lwh: String ("LxWxH")
origin_country: String
hts_code: String (if known)
status: String ("active", "draft", "retired")

5. Event Object

event_id: String
event_name: String (e.g., "page_view", "purchase")
occurred_at: DateTime UTC
session_id: String
user_id: String (if logged in)
lead_id: String (if known)
page_url: URL
referrer_url: URL
source: String
medium: String
campaign: String
channel: String (mapped using our rules)
value: Number
currency: String

6. Campaign Performance Object

period_start: Date
period_end: Date
channel: String
source: String
medium: String
campaign: String
impressions: Integer
clicks: Integer
spend: Number
conversions: Integer
revenue: Number
cpc: Number
cpa: Number
roas: Number

UTM and Channel Mapping

We normalize UTMs into a standard channel set:

Paid SearchOrganic SearchPaid SocialOrganic SocialDisplayVideoAffiliateReferralEmailDirect

If UTMs are missing, we infer channel by source and medium rules. We publish the full mapping table in your data dictionary.

Import Templates

Download Templates

Use our templates to ensure smooth data import into your systems:

Sample Data

Sample CSV (Leads)

lead_id,first_name,last_name,email,phone,company,title,country,verified_date
c6f2…,Jin,Park,jin.park@example.com,+821012345678,Acme Co,Marketing Manager,KR,2025-01-18
1a9b…,Sara,Kim,sara.kim@example.com,+12025550123,Acme USA,Director,US,2025-01-18

Sample JSON (Performance)

{
  "period_start": "2025-01-01",
  "period_end": "2025-01-31",
  "channel": "Paid Search",
  "source": "google",
  "medium": "cpc",
  "campaign": "brand_us",
  "impressions": 120000,
  "clicks": 6800,
  "spend": 14500.75,
  "conversions": 420,
  "revenue": 62500,
  "cpc": 2.13,
  "cpa": 34.52,
  "roas": 4.31
}

Additional Features

🔐 Identity Resolution

We assign a lead_id and account_id on delivery. We provide a crosswalk table that links your native IDs to ours for seamless integration.

⚠️ Error Handling

Every delivery includes an errors file with row_number, field, value, and reason. Systemic errors are fixed in the next run.

🔄 Freshness & Cadence

Standard delivery is weekly. Daily available for API and Sheets. Real-time webhooks available for conversions.

🌏 International Support

We support Hangul and English names. Korean names include romanized versions. Addresses normalized with country-specific formats.

Retail Pilot Fields

Optional for Korean Brands Launching in U.S.

retailer_sku, case_pack, master_carton_qty, pallet_pattern,
carton_dimensions_cm_lwh, carton_weight_kg, upc_gtin,
msrp_usd, wholesale_usd, map_usd

Use this block if you plan a small pallet launch. Adding retail fields can extend the setup timeline by 4-8 weeks due to retailer onboarding.

Frequently Asked Questions

Can you match our internal IDs?

Yes. Provide a two-column crosswalk. We will persist it in all future files.

Can you push data straight into our warehouse?

Yes. BigQuery, Snowflake, Redshift, Postgres, or S3. We document the table schemas first.

Can you accept other formats?

Yes. Parquet or NDJSON are available by request.

Need a Custom Format?

Email henry@primechasedata.com with a sample file and your target system. We'll return a mapping and delivery plan.

Discuss Requirements
Data Formats & Structures | Documentation | Prime Chase Data