# FDA MAUDE Dataset

### About the Dataset

The FDA MAUDE (Manufacturer and User Facility Device Experience) Dataset is a comprehensive data product that provides normalized, cleaned, and analytically-ready access to FDA medical device adverse event reports. This dataset encompasses over 22 million normalized device event records, 38 million device records, and 25 million patient records, with over 100 standardized attributes and 5 pre-aggregated analytical reporting models.

{% hint style="info" %}
**Get Full Access** | [Snowflake Marketplace](https://app.snowflake.com/marketplace/listing/GZT1Z125KF7/dataplex-consulting-data-products-fda-maude-dataset) | [Databricks](https://checkout.dataplex-consulting.com/b/aFa4gsg9R8m413yfWsbQY04) | [Databricks Marketplace](https://dbc-57d84859-e152.cloud.databricks.com/marketplace/consumer/listings/91f82a91-a5d3-4867-a686-235b857f1ac1?o=3249760874003130) | [Free Trial](https://trial.dataplex-consulting.com)
{% endhint %}

### Quick Access

**Base Tables**: Device events, devices, patients, classifications, and narrative text\
**Aggregate Models**: 5 pre-built analytical views for competitive intelligence, safety trends, and compliance monitoring\
**Update Frequency**: Weekly from FDA MAUDE database

## Overview

The FDA MAUDE Dataset provides comprehensive access to medical device adverse event data including:

* **Core Event Data** (device\_\_events) - Main fact table with cleaned, normalized event information
* **Device Information** (device\_\_events\_devices) - Detailed device specifications and manufacturer data
* **Patient Demographics** (device\_\_events\_patients) - Normalized patient information with data quality enhancements
* **Event Classifications** (device\_\_events\_classifications) - Product problems, remedial actions, and report types
* **Device Classification** (device\_\_device\_classification) - FDA regulatory classification with risk levels and medical specialties
* **Narrative Text** (device\_\_events\_text) - Detailed event descriptions and investigative text
* **Analytical Reports** - Pre-aggregated intelligence for competitive analysis, safety monitoring, and compliance tracking

{% hint style="success" %}
**Ready to access FDA MAUDE data?**
{% endhint %}

| Platform       | Action                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Snowflake**  | [Get on Marketplace →](https://app.snowflake.com/marketplace/listing/GZT1Z125KF7/dataplex-consulting-data-products-fda-maude-dataset)                   |
| **Databricks** | [Subscribe →](https://checkout.dataplex-consulting.com/b/aFa4gsg9R8m413yfWsbQY04) \| [Start 14-Day Free Trial →](https://trial.dataplex-consulting.com) |

{% hint style="success" %}
Questions? [Contact our team](mailto:support@dataplex-consulting.com) for a walkthrough.
{% endhint %}

### Dataset Structure

The FDA MAUDE dataset is organized around medical device events, with connected tables containing detailed information about the devices, patients, problem classifications, and narrative descriptions.

![FDA MAUDE Dataset Structure](/files/aelBzaOlWvRHKdmf3M6f)

## Base Tables

### device\_\_events (Main Events Table)

Normalized FDA device adverse event reports containing core event-level information. Each record represents a single device adverse event report identified by an 8-digit mdr\_report\_key.

**Key Features:**

* Over 22 million medical device event records
* Clean, standardized data ready for analysis
* Complete event details including dates, manufacturers, and outcomes
* Enhanced data quality with both original and cleaned values

### device\_\_events\_devices (Device Details Table)

Device-specific information flattened from adverse event reports. Each record represents one device involved in an adverse event.

**Key Features:**

* Over 38 million device records with detailed specifications
* FDA risk classifications (Class I, II, III) and medical specialties
* Standardized manufacturer and operator information
* Brand names, model numbers, and device categories

### device\_\_events\_patients (Patient Information Table)

Patient-specific information with comprehensive data cleaning and normalization.

**Key Features:**

* Over 25 million patient records with demographics and outcomes
* Standardized age data (converted to consistent years format)
* Weight data converted to consistent units (kilograms)
* Clean gender and race categories for demographic analysis

### device\_\_events\_classifications (Classifications Table)

Classification information including product problems, remedial actions, source types, and report types.

**Key Features:**

* Four types of classifications: device problems, corrective actions, report sources, and report types
* Categorized problem descriptions and manufacturer responses
* Links to official FDA classification definitions

### device\_\_events\_text (Narrative Text Table)

Narrative text content providing detailed descriptions of adverse events.

**Key Features:**

* Searchable narrative descriptions of device events and problems
* Connected to specific patients and events for complete context
* Categorized by FDA text types (event descriptions, investigations, etc.)

### device\_\_device\_classification (Device Classification Table)

FDA regulatory classification data providing standardized device categorization, risk levels, and medical specialties.

**Key Features:**

* Over 7,000 FDA device classifications with 3-letter product codes
* Risk classification (Class I, II, III) for safety analysis
* Medical specialty categorization across 21 specialties
* Regulatory flags for implantable and life-sustaining devices
* Links to device events via product code for risk-based analytics

## Aggregate/Reporting Models

### device\_\_agg\_competitive\_intelligence

Market intelligence and competitive analysis across device manufacturers and medical specialties.

**Use Cases:**

* Market share analysis and competitive benchmarking
* Manufacturer risk assessment and investment due diligence
* Device class safety performance comparison
* Growth trend analysis and market opportunity identification

**Key Metrics:**

* Market share by reports within medical specialties
* Safety performance rankings and risk classifications
* Growth trends and competitive positioning
* Threat assessments and strategic recommendations

### device\_\_agg\_executive\_dashboard

High-level metrics and KPIs for executive reporting and strategic decision making.

**Use Cases:**

* Executive dashboard reporting and KPI tracking
* Board presentations and regulatory updates
* Market sizing and opportunity analysis
* Investment thesis validation

**Key Metrics:**

* Market overview statistics across all device categories (total events, manufacturers, devices, patients affected)
* Top manufacturers and device classes by adverse events with ranking
* Trend analysis including year-over-year growth rates
* Risk indicators including high-risk manufacturer counts and surge detection

**Business Logic:**

* Aggregates data from 2020 onwards for recent trends
* High-risk manufacturers defined as those above 75th percentile for adverse events
* Surge detection identifies months with >50% above average events
* Rankings based on total adverse event counts

**Metric Categories:**

* MARKET\_OVERVIEW: Total events, manufacturers, devices, patients affected
* TREND\_ANALYSIS: Year-over-year growth rates
* TOP\_MANUFACTURERS: Ranked list with event counts
* TOP\_DEVICE\_CLASSES: Most problematic device categories
* MONTHLY\_TRENDS: Recent monthly patterns
* RISK\_INDICATORS: High-risk manufacturers, surge indicators

### device\_\_agg\_manufacturer\_adverse\_events

Complete risk profiles for medical device manufacturers based on their adverse event history, enabling risk assessment and competitive analysis.

**Use Cases:**

* Investment due diligence and manufacturer risk assessment
* Supplier evaluation and vendor risk management
* Insurance underwriting and claims analysis
* Competitive manufacturer benchmarking

**Key Metrics:**

* Total adverse events (all-time and last 12 months)
* Devices and patients affected counts
* Product problem rates and percentage calculations
* Risk classification (HIGH\_RISK, MEDIUM\_RISK, LOW\_RISK, MINIMAL\_RISK)
* Adverse event trends (INCREASING, DECREASING, STABLE)

**Business Logic:**

* Aggregates all adverse events where `adverse_event_flag = 'Y'`
* Calculates product problem rate as percentage of events with `product_problem_flag = 'Y'`
* Risk classification based on product problem rate:
  * HIGH\_RISK: ≥75% product problem rate
  * MEDIUM\_RISK: 50-74% product problem rate
  * LOW\_RISK: 25-49% product problem rate
  * MINIMAL\_RISK: <25% product problem rate
* Trend analysis compares last 12 months vs. historical average
* Only includes manufacturers with ≥5 total adverse events for meaningful analysis

### device\_\_agg\_regulatory\_compliance

Compliance monitoring and regulatory risk assessment for device manufacturers.

**Use Cases:**

* Regulatory compliance monitoring and audit preparation
* Manufacturer compliance benchmarking and assessment
* Legal risk evaluation and litigation support
* FDA reporting timeline analysis

**Key Metrics:**

* FDA and manufacturer reporting compliance rates
* Average reporting delays and timeline compliance
* Regulatory risk levels and compliance red flags
* Reporting activity trends and patterns

### device\_\_agg\_safety\_trends

Safety trend analysis over time to identify patterns and emerging risks in medical devices across different categories.

**Use Cases:**

* Safety trend monitoring and early warning systems
* Device class risk assessment over time
* Medical specialty safety performance tracking
* Quality assurance and safety improvement programs

**Key Metrics:**

* Time-series analytics by device class and medical specialty
* Trend classifications (INCREASING\_RAPIDLY, INCREASING, STABLE, DECREASING, DECREASING\_RAPIDLY)
* Risk levels based on product problem rates
* Quarterly and monthly trend indicators

**Report Types:**

* DEVICE\_CLASS\_SUMMARY: Overall metrics by device class (Class I, II, III)
* EVENT\_TYPE\_SUMMARY: Analysis of specific adverse event types
* QUARTERLY\_TREND: Quarter-over-quarter trend analysis

**Business Logic:**

* Focuses on data from 2020 onwards for recent trends
* Device classification mapped from FDA product codes
* Trend classifications:
  * INCREASING\_RAPIDLY: >20% YoY or >25% QoQ growth
  * INCREASING: 5-20% YoY or 10-25% QoQ growth
  * STABLE: -5% to +5% YoY or -10% to +10% QoQ
  * DECREASING: -20% to -5% YoY or -25% to -10% QoQ
  * DECREASING\_RAPIDLY: <-20% YoY or <-25% QoQ
* Risk levels determined by product problem rates:
  * HIGH\_RISK: ≥50% product problem rate
  * MEDIUM\_RISK: 25-49% product problem rate
  * LOW\_RISK: <25% product problem rate

## Data Quality Improvements

### Patient Information Standardization

**Consistent Age Data**

* All patient ages converted to a standard years format for easy analysis
* Handles various original formats like "65 YR", "6 MO", "30 DA", age ranges, and approximations
* Missing or invalid ages clearly marked as unknown

**Unified Weight Measurements**

* All patient weights converted to kilograms for consistent analysis
* Automatically detects and converts from pounds when needed
* Realistic weight ranges validated

**Standardized Demographics**

* Gender categories standardized across all records
* Race information cleaned and made consistent
* Missing demographic data clearly identified

### Device Information Enhancements

**Geographic Standardization**

* Country codes expanded to full country names for clarity
* Consistent geographic categorization for global analysis

**Operator Categories**

* Device operators grouped into clear categories (Healthcare Professional, Patient/Family, etc.)
* Eliminates confusion from inconsistent original coding

**Proper Date Handling**

* All dates converted to standard date formats for time-based analysis
* Invalid dates identified and handled appropriately

### Device Classification Integration

**Risk-Based Analysis**

* Join device events with FDA regulatory classification data via product codes
* Analyze adverse events by device risk level (Class I, II, III)
* Identify high-risk devices based on implantable and life-sustaining flags

**Enhanced Analytics**

* Medical specialty categorization across 21 FDA-defined specialties
* Regulatory insights including submission requirements and exemptions
* Manufacturer portfolio risk assessment by device classification

## Getting Started

### Platform Schema Reference

This dataset is available on both Snowflake and Databricks. The table names are the same, but the schema prefix differs:

| Platform       | Schema          | Example                        |
| -------------- | --------------- | ------------------------------ |
| **Snowflake**  | `dwv`           | `dwv.device__events`           |
| **Databricks** | `fda_maude_dwv` | `fda_maude_dwv.device__events` |

The examples below show queries for both platforms using tabs.

### Basic Query Examples

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Get recent adverse events with device and patient information
SELECT
    e.mdr_report_key,
    e.date_report,
    e.event_type,
    d.brand_name,
    d.generic_name,
    d.openfda_medical_specialty_description,
    p.patient_age_years,
    p.patient_sex,
    p.patient_outcomes
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN dwv.device__events_patients p ON e.id = p.device_event_id
WHERE e.date_received >= '2024-01-01'
LIMIT 100;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Get recent adverse events with device and patient information
SELECT
    e.mdr_report_key,
    e.date_report,
    e.event_type,
    d.brand_name,
    d.generic_name,
    d.openfda_medical_specialty_description,
    p.patient_age_years,
    p.patient_sex,
    p.patient_outcomes
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN fda_maude_dwv.device__events_patients p ON e.id = p.device_event_id
WHERE e.date_received >= '2024-01-01'
LIMIT 100;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Analyze adverse events by device risk classification
SELECT
    dc.device_class_description,
    dc.medical_specialty_description,
    COUNT(DISTINCT e.id) as adverse_events,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    SUM(e.patient_count) as patients_affected
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
JOIN dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE e.adverse_event_flag = true
  AND e.date_report >= DATEADD(year, -1, CURRENT_DATE())
GROUP BY 1, 2
ORDER BY death_events DESC, adverse_events DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Analyze adverse events by device risk classification
SELECT
    dc.device_class_description,
    dc.medical_specialty_description,
    COUNT(DISTINCT e.id) as adverse_events,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    SUM(e.patient_count) as patients_affected
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
JOIN fda_maude_dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE e.adverse_event_flag = true
  AND e.date_report >= DATEADD(year, -1, CURRENT_DATE())
GROUP BY 1, 2
ORDER BY death_events DESC, adverse_events DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Search for specific device problems
SELECT
    e.mdr_report_key,
    e.date_report,
    d.brand_name,
    c.classification_value as product_problem
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
JOIN dwv.device__events_classifications c ON e.id = c.device_event_id
WHERE c.classification_type = 'product_problem'
  AND c.classification_value ILIKE '%battery%'
LIMIT 50;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Search for specific device problems
SELECT
    e.mdr_report_key,
    e.date_report,
    d.brand_name,
    c.classification_value as product_problem
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
JOIN fda_maude_dwv.device__events_classifications c ON e.id = c.device_event_id
WHERE c.classification_type = 'product_problem'
  AND c.classification_value ILIKE '%battery%'
LIMIT 50;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Find narrative text about specific events
SELECT
    e.mdr_report_key,
    e.date_report,
    t.text_content,
    d.brand_name
FROM dwv.device__events e
JOIN dwv.device__events_text t ON e.id = t.device_event_id
LEFT JOIN dwv.device__events_devices d ON e.id = d.device_event_id
WHERE t.text_content ILIKE '%device malfunction%'
LIMIT 25;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Find narrative text about specific events
SELECT
    e.mdr_report_key,
    e.date_report,
    t.text_content,
    d.brand_name
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_text t ON e.id = t.device_event_id
LEFT JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
WHERE t.text_content ILIKE '%device malfunction%'
LIMIT 25;
```

{% endtab %}
{% endtabs %}

### Advanced Analytics Examples

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- High-risk device monitoring (Class III + Implantable/Life-Sustaining)
SELECT
    dc.product_code,
    dc.device_name,
    dc.medical_specialty_description,
    COUNT(DISTINCT e.id) as adverse_events,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    SUM(e.patient_count) as patients_affected
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
JOIN dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE dc.device_class = '3'  -- Class III devices
  AND (dc.implant_flag = true OR dc.life_sustain_support_flag = true)
  AND e.date_report >= '2023-01-01'
GROUP BY 1, 2, 3
HAVING adverse_events > 10
ORDER BY death_events DESC
LIMIT 20;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- High-risk device monitoring (Class III + Implantable/Life-Sustaining)
SELECT
    dc.product_code,
    dc.device_name,
    dc.medical_specialty_description,
    COUNT(DISTINCT e.id) as adverse_events,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    SUM(e.patient_count) as patients_affected
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
JOIN fda_maude_dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE dc.device_class = '3'  -- Class III devices
  AND (dc.implant_flag = true OR dc.life_sustain_support_flag = true)
  AND e.date_report >= '2023-01-01'
GROUP BY 1, 2, 3
HAVING adverse_events > 10
ORDER BY death_events DESC
LIMIT 20;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Top 10 high-risk manufacturers with increasing trends
SELECT
    manufacturer_name,
    manufacturer_country,
    manufacturer_state,
    total_adverse_events_all_time,
    adverse_events_last_12_months,
    product_problem_rate_pct,
    adverse_event_trend,
    risk_classification
FROM dwv.device__agg_manufacturer_adverse_events
WHERE risk_classification IN ('HIGH_RISK', 'MEDIUM_RISK')
  AND adverse_event_trend = 'INCREASING'
ORDER BY adverse_events_last_12_months DESC
LIMIT 10;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Top 10 high-risk manufacturers with increasing trends
SELECT
    manufacturer_name,
    manufacturer_country,
    manufacturer_state,
    total_adverse_events_all_time,
    adverse_events_last_12_months,
    product_problem_rate_pct,
    adverse_event_trend,
    risk_classification
FROM fda_maude_dwv.device__agg_manufacturer_adverse_events
WHERE risk_classification IN ('HIGH_RISK', 'MEDIUM_RISK')
  AND adverse_event_trend = 'INCREASING'
ORDER BY adverse_events_last_12_months DESC
LIMIT 10;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Identify rapidly increasing risks by device class
SELECT
    device_class,
    device_class_description,
    medical_specialty_description,
    report_period,
    metric_value as quarterly_events,
    trend_classification,
    risk_level
FROM dwv.device__agg_safety_trends
WHERE report_type = 'QUARTERLY_TREND'
  AND trend_classification = 'INCREASING_RAPIDLY'
  AND report_period >= '2023-01-01'
ORDER BY report_period DESC, metric_value DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Identify rapidly increasing risks by device class
SELECT
    device_class,
    device_class_description,
    medical_specialty_description,
    report_period,
    metric_value as quarterly_events,
    trend_classification,
    risk_level
FROM fda_maude_dwv.device__agg_safety_trends
WHERE report_type = 'QUARTERLY_TREND'
  AND trend_classification = 'INCREASING_RAPIDLY'
  AND report_period >= '2023-01-01'
ORDER BY report_period DESC, metric_value DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Executive summary dashboard
SELECT
    metric_category,
    metric_name,
    metric_value,
    secondary_value,
    entity_name,
    time_period
FROM dwv.device__agg_executive_dashboard
WHERE metric_category IN ('MARKET_OVERVIEW', 'TREND_ANALYSIS', 'RISK_INDICATORS')
ORDER BY
    CASE metric_category
        WHEN 'MARKET_OVERVIEW' THEN 1
        WHEN 'TREND_ANALYSIS' THEN 2
        WHEN 'RISK_INDICATORS' THEN 3
    END;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Executive summary dashboard
SELECT
    metric_category,
    metric_name,
    metric_value,
    secondary_value,
    entity_name,
    time_period
FROM fda_maude_dwv.device__agg_executive_dashboard
WHERE metric_category IN ('MARKET_OVERVIEW', 'TREND_ANALYSIS', 'RISK_INDICATORS')
ORDER BY
    CASE metric_category
        WHEN 'MARKET_OVERVIEW' THEN 1
        WHEN 'TREND_ANALYSIS' THEN 2
        WHEN 'RISK_INDICATORS' THEN 3
    END;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Market share analysis by medical specialty
SELECT
    medical_specialty_description,
    manufacturer_name,
    market_share_by_reports,
    market_position,
    safety_position,
    growth_trend
FROM dwv.device__agg_competitive_intelligence
WHERE medical_specialty_description = 'Cardiovascular'
  AND market_position IN ('MARKET_LEADER', 'MAJOR_PLAYER')
ORDER BY market_share_by_reports DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Market share analysis by medical specialty
SELECT
    medical_specialty_description,
    manufacturer_name,
    market_share_by_reports,
    market_position,
    safety_position,
    growth_trend
FROM fda_maude_dwv.device__agg_competitive_intelligence
WHERE medical_specialty_description = 'Cardiovascular'
  AND market_position IN ('MARKET_LEADER', 'MAJOR_PLAYER')
ORDER BY market_share_by_reports DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Manufacturer risk profile with device classification
SELECT
    d.manufacturer_d_name,
    COUNT(DISTINCT e.id) as total_events,
    COUNT(DISTINCT d.device_report_product_code) as unique_products,
    COUNT(DISTINCT CASE WHEN dc.device_class = '3' THEN d.device_report_product_code END) as class_iii_products,
    COUNT(DISTINCT CASE WHEN dc.implant_flag = true THEN d.device_report_product_code END) as implantable_products,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    ROUND(100.0 * COUNT(DISTINCT CASE WHEN dc.device_class = '3' THEN e.id END) / COUNT(DISTINCT e.id), 2) as class_iii_event_percentage
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE e.date_report >= '2023-01-01'
  AND d.manufacturer_d_name IS NOT NULL
GROUP BY 1
HAVING total_events >= 100
ORDER BY death_events DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Manufacturer risk profile with device classification
SELECT
    d.manufacturer_d_name,
    COUNT(DISTINCT e.id) as total_events,
    COUNT(DISTINCT d.device_report_product_code) as unique_products,
    COUNT(DISTINCT CASE WHEN dc.device_class = '3' THEN d.device_report_product_code END) as class_iii_products,
    COUNT(DISTINCT CASE WHEN dc.implant_flag = true THEN d.device_report_product_code END) as implantable_products,
    SUM(CASE WHEN e.event_type = 'Death' THEN 1 ELSE 0 END) as death_events,
    ROUND(100.0 * COUNT(DISTINCT CASE WHEN dc.device_class = '3' THEN e.id END) / COUNT(DISTINCT e.id), 2) as class_iii_event_percentage
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN fda_maude_dwv.device__device_classification dc ON d.device_report_product_code = dc.product_code
WHERE e.date_report >= '2023-01-01'
  AND d.manufacturer_d_name IS NOT NULL
GROUP BY 1
HAVING total_events >= 100
ORDER BY death_events DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Manufacturer risk assessment for investment due diligence
SELECT
    manufacturer_name,
    manufacturer_country,
    manufacturer_state,
    risk_classification,
    adverse_events_last_12_months,
    total_adverse_events_all_time,
    product_problem_rate_pct,
    adverse_event_trend,
    CASE
        WHEN risk_classification = 'HIGH_RISK' AND adverse_event_trend = 'INCREASING' THEN 'CRITICAL_CONCERN'
        WHEN risk_classification = 'MEDIUM_RISK' AND adverse_event_trend = 'INCREASING' THEN 'MODERATE_CONCERN'
        WHEN adverse_event_trend = 'DECREASING' THEN 'IMPROVING'
        ELSE 'STABLE'
    END as investment_risk_flag
FROM dwv.device__agg_manufacturer_adverse_events
WHERE total_adverse_events_all_time >= 100  -- Focus on manufacturers with substantial history
ORDER BY adverse_events_last_12_months DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Manufacturer risk assessment for investment due diligence
SELECT
    manufacturer_name,
    manufacturer_country,
    manufacturer_state,
    risk_classification,
    adverse_events_last_12_months,
    total_adverse_events_all_time,
    product_problem_rate_pct,
    adverse_event_trend,
    CASE
        WHEN risk_classification = 'HIGH_RISK' AND adverse_event_trend = 'INCREASING' THEN 'CRITICAL_CONCERN'
        WHEN risk_classification = 'MEDIUM_RISK' AND adverse_event_trend = 'INCREASING' THEN 'MODERATE_CONCERN'
        WHEN adverse_event_trend = 'DECREASING' THEN 'IMPROVING'
        ELSE 'STABLE'
    END as investment_risk_flag
FROM fda_maude_dwv.device__agg_manufacturer_adverse_events
WHERE total_adverse_events_all_time >= 100  -- Focus on manufacturers with substantial history
ORDER BY adverse_events_last_12_months DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Device class safety performance over time
SELECT
    device_class,
    device_class_description,
    medical_specialty_description,
    report_type,
    report_period,
    metric_value,
    trend_classification,
    risk_level
FROM dwv.device__agg_safety_trends
WHERE report_type = 'DEVICE_CLASS_SUMMARY'
  AND medical_specialty_description IN ('Cardiovascular', 'Orthopedic', 'Neurological')
ORDER BY medical_specialty_description, metric_value DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Device class safety performance over time
SELECT
    device_class,
    device_class_description,
    medical_specialty_description,
    report_type,
    report_period,
    metric_value,
    trend_classification,
    risk_level
FROM fda_maude_dwv.device__agg_safety_trends
WHERE report_type = 'DEVICE_CLASS_SUMMARY'
  AND medical_specialty_description IN ('Cardiovascular', 'Orthopedic', 'Neurological')
ORDER BY medical_specialty_description, metric_value DESC;
```

{% endtab %}
{% endtabs %}

### Patient Demographics Analysis

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Age group analysis with normalized patient data
SELECT
    CASE
        WHEN patient_age_years < 18 THEN 'Pediatric'
        WHEN patient_age_years BETWEEN 18 AND 64 THEN 'Adult'
        WHEN patient_age_years >= 65 THEN 'Elderly'
        ELSE 'Unknown'
    END as age_group,
    COUNT(*) as event_count,
    AVG(patient_age_years) as avg_age,
    AVG(patient_weight_kg) as avg_weight_kg
FROM dwv.device__events_patients
WHERE patient_age_years IS NOT NULL
GROUP BY 1
ORDER BY event_count DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Age group analysis with normalized patient data
SELECT
    CASE
        WHEN patient_age_years < 18 THEN 'Pediatric'
        WHEN patient_age_years BETWEEN 18 AND 64 THEN 'Adult'
        WHEN patient_age_years >= 65 THEN 'Elderly'
        ELSE 'Unknown'
    END as age_group,
    COUNT(*) as event_count,
    AVG(patient_age_years) as avg_age,
    AVG(patient_weight_kg) as avg_weight_kg
FROM fda_maude_dwv.device__events_patients
WHERE patient_age_years IS NOT NULL
GROUP BY 1
ORDER BY event_count DESC;
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Device return analysis by manufacturer
SELECT
    manufacturer_d_name,
    manufacturer_d_country,
    COUNT(*) as total_devices,
    COUNT(date_returned_to_manufacturer) as devices_returned,
    ROUND(COUNT(date_returned_to_manufacturer) * 100.0 / COUNT(*), 2) as return_rate_pct,
    AVG(DATEDIFF(day, device_date_received, date_returned_to_manufacturer)) as avg_days_to_return
FROM dwv.device__events_devices
WHERE device_date_received IS NOT NULL
GROUP BY 1, 2
HAVING COUNT(*) >= 100
ORDER BY return_rate_pct DESC;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Device return analysis by manufacturer
SELECT
    manufacturer_d_name,
    manufacturer_d_country,
    COUNT(*) as total_devices,
    COUNT(date_returned_to_manufacturer) as devices_returned,
    ROUND(COUNT(date_returned_to_manufacturer) * 100.0 / COUNT(*), 2) as return_rate_pct,
    AVG(DATEDIFF(day, device_date_received, date_returned_to_manufacturer)) as avg_days_to_return
FROM fda_maude_dwv.device__events_devices
WHERE device_date_received IS NOT NULL
GROUP BY 1, 2
HAVING COUNT(*) >= 100
ORDER BY return_rate_pct DESC;
```

{% endtab %}
{% endtabs %}

## Simplified Access to FDA Data

Unlike the complex FDA MAUDE API, this dataset allows simple SQL queries to find the information you need:

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Equivalent to FDA API: device.brand_name:"ARTHROSCOPY EQUIPMENT CART"
SELECT
    e.mdr_report_key,
    e.date_report,
    e.event_type,
    d.brand_name,
    d.generic_name,
    d.model_number
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
WHERE d.brand_name = 'ARTHROSCOPY EQUIPMENT CART';
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Equivalent to FDA API: device.brand_name:"ARTHROSCOPY EQUIPMENT CART"
SELECT
    e.mdr_report_key,
    e.date_report,
    e.event_type,
    d.brand_name,
    d.generic_name,
    d.model_number
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
WHERE d.brand_name = 'ARTHROSCOPY EQUIPMENT CART';
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Equivalent to FDA API: date_received:[20240101 TO 20241231]
SELECT
    e.mdr_report_key,
    e.date_received,
    e.date_report,
    e.event_type,
    e.manufacturer_name
FROM dwv.device__events e
WHERE e.date_received BETWEEN '2024-01-01' AND '2024-12-31';
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Equivalent to FDA API: date_received:[20240101 TO 20241231]
SELECT
    e.mdr_report_key,
    e.date_received,
    e.date_report,
    e.event_type,
    e.manufacturer_name
FROM fda_maude_dwv.device__events e
WHERE e.date_received BETWEEN '2024-01-01' AND '2024-12-31';
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- Equivalent to FDA API text search: "device malfunction"
SELECT
    e.mdr_report_key,
    e.date_report,
    t.text_content,
    d.brand_name
FROM dwv.device__events e
JOIN dwv.device__events_text t ON e.id = t.device_event_id
LEFT JOIN dwv.device__events_devices d ON e.id = d.device_event_id
WHERE t.text_content ILIKE '%device malfunction%';
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- Equivalent to FDA API text search: "device malfunction"
SELECT
    e.mdr_report_key,
    e.date_report,
    t.text_content,
    d.brand_name
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_text t ON e.id = t.device_event_id
LEFT JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
WHERE t.text_content ILIKE '%device malfunction%';
```

{% endtab %}
{% endtabs %}

## Why Choose This Dataset

* **Ready for Analysis**: Clean, standardized data you can query immediately
* **Complete Picture**: All related information (devices, patients, outcomes) properly connected
* **Instant Insights**: Pre-built analytical views for competitive intelligence and safety trends
* **Reliable Data Quality**: Messy source data cleaned and normalized for accurate analysis
* **Fast Results**: Optimized for quick queries and reporting

## Data Update Frequency and Freshness

### Update Schedule

* **FDA Updates**: FDA releases new MAUDE data weekly
* **Corrections & Amendments**: FDA publishes corrections and amendments several times per week between regular releases
* **Our Updates**: We check for new data and corrections twice daily and load them immediately when available
* **Typical Data Lag**: Medical device events are typically 1-2 weeks behind real-time due to FDA processing

### Understanding Data Timeliness

The FDA MAUDE data has an inherent lag due to the reporting and processing workflow:

* Manufacturers have up to 30 days to report adverse events to FDA
* FDA validates and standardizes reports before release
* Weekly data releases ensure quality but introduce a typical 7-14 day lag

### What This Means for You

* Most recent adverse event data will be 1-2 weeks old
* Regulatory actions (recalls, clearances) are often updated more quickly

***

## Trial Access

The free trial provides a complete, joinable subset of the FDA MAUDE dataset on both Snowflake and Databricks so you can evaluate the data with realistic queries before subscribing.

### What's Included in the Trial

**Event tables (parent-child linked):**

| Table                            | Trial Scope                               | Filter                           |
| -------------------------------- | ----------------------------------------- | -------------------------------- |
| `device__events`                 | Full year of events (Jan 2023 - Dec 2023) | Date-filtered by `date_received` |
| `device__events_devices`         | All devices for trial events              | FK-linked to trial events        |
| `device__events_patients`        | All patients for trial events             | FK-linked to trial events        |
| `device__events_classifications` | All classifications for trial events      | FK-linked to trial events        |
| `device__events_text`            | All narrative text for trial events       | FK-linked to trial events        |

**Standalone tables:** `device__device_classification` and all aggregate/reporting models are available with a representative sample.

### Why This Matters

Unlike a random row sample, the trial data preserves referential integrity across all tables. Every device, patient, classification, and text record in the trial corresponds to an actual event in the trial period. This means:

* **All JOINs return complete results** - no missing child records
* **Multi-table queries work exactly as they would on the full dataset**
* **Aggregate analyses over the trial period are accurate and representative**

### Trial Query Example

{% tabs %}
{% tab title="Snowflake" %}

```sql
-- This query works correctly on trial data - all joins return matching rows
SELECT
    e.mdr_report_key,
    e.date_received,
    e.event_type,
    d.brand_name,
    d.generic_name,
    p.patient_age_years,
    p.patient_sex,
    c.classification_value as product_problem,
    t.text_content
FROM dwv.device__events e
JOIN dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN dwv.device__events_patients p ON e.id = p.device_event_id
LEFT JOIN dwv.device__events_classifications c ON e.id = c.device_event_id
LEFT JOIN dwv.device__events_text t ON e.id = t.device_event_id
WHERE c.classification_type = 'product_problem'
LIMIT 100;
```

{% endtab %}

{% tab title="Databricks" %}

```sql
-- This query works correctly on trial data - all joins return matching rows
SELECT
    e.mdr_report_key,
    e.date_received,
    e.event_type,
    d.brand_name,
    d.generic_name,
    p.patient_age_years,
    p.patient_sex,
    c.classification_value as product_problem,
    t.text_content
FROM fda_maude_dwv.device__events e
JOIN fda_maude_dwv.device__events_devices d ON e.id = d.device_event_id
LEFT JOIN fda_maude_dwv.device__events_patients p ON e.id = p.device_event_id
LEFT JOIN fda_maude_dwv.device__events_classifications c ON e.id = c.device_event_id
LEFT JOIN fda_maude_dwv.device__events_text t ON e.id = t.device_event_id
WHERE c.classification_type = 'product_problem'
LIMIT 100;
```

{% endtab %}
{% endtabs %}

***

## Get Started

{% hint style="success" %}
**FDA MAUDE Data Access**
{% endhint %}

|                  |                                                     |
| ---------------- | --------------------------------------------------- |
| **Includes**     | All base tables, 5 aggregate models, weekly updates |
| **Support**      | Email support included                              |
| **Cancellation** | Cancel anytime, no long-term commitment             |

{% hint style="success" %}

#### Choose Your Platform

{% endhint %}

| Platform       | Get Access                                                                                                                                                                                                                                 | Free Trial                                                         |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| **Snowflake**  | [Get on Marketplace →](https://app.snowflake.com/marketplace/listing/GZT1Z125KF7/dataplex-consulting-data-products-fda-maude-dataset)                                                                                                      | Available via Marketplace                                          |
| **Databricks** | [Subscribe →](https://checkout.dataplex-consulting.com/b/aFa4gsg9R8m413yfWsbQY04) or [Marketplace →](https://dbc-57d84859-e152.cloud.databricks.com/marketplace/consumer/listings/91f82a91-a5d3-4867-a686-235b857f1ac1?o=3249760874003130) | [Start 14-Day Free Trial →](https://trial.dataplex-consulting.com) |

## Important Data Interpretation Guidelines

* Adverse event reports do not undergo extensive FDA validation and may be incomplete or inaccurate
* A causal relationship cannot be established between device and reported reactions based solely on this data
* Reports represent a small percentage of total device usage and should not be the sole source for clinical decisions

## FDA Documentation Resources

* [Device Event API Documentation](https://open.fda.gov/apis/device/event/)
* [MDR Adverse Event Codes](https://www.fda.gov/medical-devices/mdr-adverse-event-codes/coding-resources-medical-device-reports)
* [Medical Device Databases](https://www.fda.gov/medical-devices/device-advice-comprehensive-regulatory-assistance/medical-device-databases)
* [FDA Product Code Database](https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/pcdsimplesearch.cfm)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dataplex-consulting.com/data-catalog/fda-maude-dataset.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
