An end-to-end analytics platform that transforms Airbnb listings into a modern data warehouse and interactive dashboard using AWS, dbt, and BI-as-code.
This project builds a complete analytics pipeline for Airbnb listings in SΓ£o Paulo.
Raw datasets are stored in Amazon S3, transformed with dbt following the Medallion Architecture, queried through Amazon Athena, and visualized using Evidence.dev. The final dashboard is deployed as a static website on Vercel.
Understanding Airbnb pricing trends requires more than simply querying raw CSV files.
This project demonstrates how modern Data Engineering practices can be applied to build a scalable analytics platform by combining:
- Medallion Architecture
- Dimensional Modeling
- Data Quality with dbt
- Serverless Analytics with Athena
- BI-as-Code with Evidence.dev
The final result is an interactive dashboard capable of exploring prices, neighborhoods, and review scores with low latency and minimal cloud costs.
- End-to-end analytics pipeline
- Medallion Architecture (Bronze, Silver, Gold)
- Data modeling with dbt
- Data quality tests
- Amazon Athena integration
- DuckDB local caching
- Interactive dashboard with Evidence.dev
- Static deployment on Vercel
- BI-as-Code approach
The project follows the Medallion Architecture:
- Bronze: raw CSV/Parquet files stored in Amazon S3.
- Silver: cleaned and standardized datasets with proper data types.
- Gold: dimensional models optimized for business analytics.
dbt is responsible for:
- Cleaning price values
- Removing special characters
- Data type enforcement
- Integrity tests
- Dimensional modeling
Evidence.dev queries Amazon Athena only once to retrieve aggregated datasets.
The data is cached locally in DuckDB using:
npm run sourcesThis dramatically reduces AWS query costs while allowing millisecond dashboard performance.
Evidence.dev generates static pages that are deployed on Vercel while still supporting interactive components such as:
- BigValue
- Histograms
- Scatter Plots
- Dropdown Filters
| Technology | Purpose |
|---|---|
| Amazon S3 | Raw data storage |
| AWS Glue Data Catalog | Metadata catalog |
| Amazon Athena | Serverless SQL engine |
| dbt (dbt-athena-community) | Data transformation |
| SQL | Data modeling |
| DuckDB | Local analytical cache |
| Evidence.dev | BI-as-Code dashboard |
| Svelte | Frontend framework |
| Vercel | Static deployment |
airbnb/
β
βββ models/
β βββ staging/ β Silver Layer
β βββ marts/ β Gold Layer
β
βββ analyses/ β Data Quality Checks
βββ macros/ β Reusable SQL
β
βββ reports/ β Evidence.dev Dashboard
β βββ pages/
β βββ sources/
β
βββ dbt_project.yml
βββ package.yml
βββ README.md
flowchart LR
A[Inside Airbnb Dataset<br/>Raw CSV Files]
B[Bronze Layer<br/>AWS S3<br/>Raw Data]
C[Silver Layer<br/>dbt + Athena<br/>Cleaning & Data Quality]
D[Gold Layer<br/>Dimensional Models<br/>Analytics Ready]
E[Evidence.dev<br/>Athena Queries + DuckDB Cache]
F[Interactive Dashboard<br/>Charts & KPIs]
G[Vercel Deployment<br/>Static Website]
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
- Python 3.9+
- Node.js 18+
- AWS CLI configured
- dbt-athena-community
aws configurepython3 -m venv .venv
source .venv/bin/activate
pip install dbt-athena-community
dbt deps
dbt runcd reports
npm install
npm run sources
npm run devOpen:
http://localhost:3000
npm run build
npm run previewThis project uses the SΓ£o Paulo Airbnb dataset provided by Inside Airbnb.
- Bronze layer
- Silver transformations
- Gold dimensional models
- dbt data quality tests
- Athena integration
- DuckDB local cache
- Evidence.dev dashboard
- Vercel deployment
- Incremental dbt models
- CI/CD with GitHub Actions
- Dockerized local environment
- Scheduled dbt jobs
- Dashboard authentication
This project is licensed under the MIT License. See the LICENSE file for details.



