AutoWeave is developed and maintained by Sloths Intel. It is a deterministic, browser-first CSV merge + ETL tool designed for real-world operational datasets (time logs, income records, project lists) that arrive asynchronously and inconsistently.
AutoWeave focuses on reproducibility, auditability, and low-friction workflows: validate → normalise → merge → deduplicate → summarise → visualise → export.
🌐 Website: https://autoweave.slothsintel.com
- Features
- Architecture
- Local Development
- Data Contracts
- Merge & Validation Rules
- Quick Stats & Visualisations
- Build & Deploy
- Roadmap
- Contribution
- License
- Links
- Upload time, income, and project CSV files
- Validate schema before processing
- Normalise dates, ids, and numeric fields
- Deterministic join keys (no fuzzy matching)
- Deduplicate merged output
- Export a clean merged dataset
- Row count
- Total time
- Total income
- Income/hour
- Project-level summaries:
- total time
- total income
- income/hour
- Stacked daily charts (date on x-axis)
- Time by project
- Income by project
- Income/hour by project
- Floating legend (AutoTrac-style)
- Designed to be R-style readable: structured tables + consistent scales
-
Auto-loads sample datasets from:
assets/technology/time_sample.csvassets/technology/income_sample.csvassets/technology/project_sample.csv
-
User uploads override demo data.
AutoWeave frontend:
├── AutoWeave
│ ├── index.html
│ ├── tech.html
│ ├── script.js
│ ├── autoweave.svg
│ └── assets
│ └── technology
│ ├── time_sample.csv
│ ├── income_sample.csv
│ └── project_sample.csv
└── README.md
Frontend
- HTML + CSS
- Vanilla JavaScript
- CSV parsing (client-side)
- Browser rendering for tables + charts
Backend
- Backend: FastAPI (validation + persistence)
- Database: PostgreSQL (versioned datasets + lineage)
AutoWeave expects three datasets: time, income, and projects (optional).
Required columns:
project_id(string)work_date(date; ISO preferred)
Recommended columns (used to compute/validate duration):
start_time(time)end_time(time)duration(number; hours or minutes depending on your export — AutoWeave normalises to hours)
Required columns:
project_id(string)work_date(date)income(number)
Required columns:
project_id(string)project(string; display name)
- Trim whitespace on all identifiers
- Coerce numeric fields (
income,duration) - Normalise
work_dateto a consistent date key - Treat missing values explicitly (no silent inference)
- Drop time entries where both
start_timeandend_timeare missing/unparseable anddurationis missing/unparseable.
Deterministic join key:
project_id + work_date
Income aligns to time entries by exact match on this key.
Merged output is deduplicated using a deterministic composite key (implementation-defined), typically:
project_id + work_date + duration + income
AutoWeave does not perform fuzzy matching.
Computed from the merged dataset:
- Total rows
- Total time
- Total income
- Income per hour
- By-project summaries:
- total time
- total income
- income per hour
Stacked daily charts:
- Time by project
- Income by project
- Income/hour by project
All charts:
- Use a consistent project color mapping
- Include a floating legend
- Default to most recent dates available in the merged dataset
- export audit metadata
- predictive hooks (AutoPred)
Maintained by Sloths Intel GitHub, and Daddy Sloth GitHub.
© 2026 Sloths Intel.
A trading name of Sloths Intel Ltd Registered in England and Wales (Company No. 16907507).
MIT License.