feat: add examples/demo.csv and examples/demo.improv
40-row CSV with obviously-fake sales data (fictional companies like Acme Corp, Wonka Industries, Cyberdyne Systems). demo.improv generated via headless import with Profit formula and a default view showing Region+Product on rows, Date_Month+Measure on columns. Added the import command to the README quick-start section. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,6 +12,7 @@ bench/*.txt
|
|||||||
# Added by git-smart-commit
|
# Added by git-smart-commit
|
||||||
*.patch
|
*.patch
|
||||||
*.improv
|
*.improv
|
||||||
|
!examples/*.improv
|
||||||
|
|
||||||
# Beads / Dolt files (added by bd init)
|
# Beads / Dolt files (added by bd init)
|
||||||
.dolt/
|
.dolt/
|
||||||
|
|||||||
16
README.md
16
README.md
@ -33,6 +33,22 @@ Or import your own CSV:
|
|||||||
./result/bin/improvise import path/to/data.csv
|
./result/bin/improvise import path/to/data.csv
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The included `examples/demo.improv` was generated from `examples/demo.csv`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
improvise import examples/demo.csv \
|
||||||
|
--no-wizard \
|
||||||
|
--category Region --category Product --category Customer \
|
||||||
|
--measure Revenue --measure Cost \
|
||||||
|
--time Date --extract Date:Month \
|
||||||
|
--axis Region:row --axis Product:row \
|
||||||
|
--axis Date_Month:column --axis Measure:column \
|
||||||
|
--axis Customer:page --axis Date:none \
|
||||||
|
--formula "Profit = Revenue - Cost" \
|
||||||
|
--name "Acme Sales Demo" \
|
||||||
|
-o examples/demo.improv
|
||||||
|
```
|
||||||
|
|
||||||
## Key bindings to try first
|
## Key bindings to try first
|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
|
|||||||
41
examples/demo.csv
Normal file
41
examples/demo.csv
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
Date,Region,Product,Customer,Revenue,Cost
|
||||||
|
2025-01-15,North,Widgets,Acme Corp,12000,7200
|
||||||
|
2025-01-22,North,Widgets,Globex Inc,8500,5100
|
||||||
|
2025-01-08,North,Gadgets,Acme Corp,6200,4340
|
||||||
|
2025-01-30,North,Gadgets,Initech,4100,2870
|
||||||
|
2025-01-12,North,Sprockets,Globex Inc,3400,2380
|
||||||
|
2025-02-05,North,Widgets,Initech,11000,6600
|
||||||
|
2025-02-18,North,Gadgets,Acme Corp,7300,5110
|
||||||
|
2025-02-25,North,Sprockets,Globex Inc,2900,2030
|
||||||
|
2025-03-10,North,Widgets,Acme Corp,13500,8100
|
||||||
|
2025-03-19,North,Gadgets,Initech,5800,4060
|
||||||
|
2025-01-09,South,Widgets,Soylent Ltd,9800,5880
|
||||||
|
2025-01-20,South,Widgets,Umbrella Co,7200,4320
|
||||||
|
2025-01-14,South,Gadgets,Soylent Ltd,5500,3850
|
||||||
|
2025-01-28,South,Sprockets,Umbrella Co,2800,1960
|
||||||
|
2025-02-03,South,Widgets,Soylent Ltd,10200,6120
|
||||||
|
2025-02-15,South,Gadgets,Umbrella Co,6100,4270
|
||||||
|
2025-02-22,South,Sprockets,Soylent Ltd,3100,2170
|
||||||
|
2025-03-07,South,Widgets,Umbrella Co,8900,5340
|
||||||
|
2025-03-18,South,Gadgets,Soylent Ltd,6800,4760
|
||||||
|
2025-03-28,South,Sprockets,Umbrella Co,3500,2450
|
||||||
|
2025-01-06,East,Widgets,Wonka Industries,14200,8520
|
||||||
|
2025-01-17,East,Widgets,Stark Enterprises,11800,7080
|
||||||
|
2025-01-23,East,Gadgets,Wonka Industries,8900,6230
|
||||||
|
2025-01-31,East,Gadgets,Stark Enterprises,7400,5180
|
||||||
|
2025-02-10,East,Widgets,Wonka Industries,15000,9000
|
||||||
|
2025-02-20,East,Sprockets,Stark Enterprises,4200,2940
|
||||||
|
2025-02-28,East,Gadgets,Wonka Industries,9200,6440
|
||||||
|
2025-03-05,East,Widgets,Stark Enterprises,12500,7500
|
||||||
|
2025-03-14,East,Sprockets,Wonka Industries,4800,3360
|
||||||
|
2025-03-25,East,Gadgets,Stark Enterprises,8100,5670
|
||||||
|
2025-01-11,West,Widgets,Oceanic Airlines,10500,6300
|
||||||
|
2025-01-19,West,Gadgets,Cyberdyne Systems,6700,4690
|
||||||
|
2025-01-27,West,Sprockets,Oceanic Airlines,3200,2240
|
||||||
|
2025-02-06,West,Widgets,Cyberdyne Systems,11200,6720
|
||||||
|
2025-02-14,West,Gadgets,Oceanic Airlines,7100,4970
|
||||||
|
2025-02-24,West,Sprockets,Cyberdyne Systems,3600,2520
|
||||||
|
2025-03-03,West,Widgets,Oceanic Airlines,12800,7680
|
||||||
|
2025-03-12,West,Gadgets,Cyberdyne Systems,7500,5250
|
||||||
|
2025-03-21,West,Sprockets,Oceanic Airlines,4000,2800
|
||||||
|
2025-03-30,West,Widgets,Cyberdyne Systems,9800,5880
|
||||||
|
185
examples/demo.improv
Normal file
185
examples/demo.improv
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
# Acme Sales Demo
|
||||||
|
|
||||||
|
## Category: _Index
|
||||||
|
|
||||||
|
## Category: _Dim
|
||||||
|
|
||||||
|
## Category: Customer
|
||||||
|
- Soylent Ltd
|
||||||
|
- Umbrella Co
|
||||||
|
- Acme Corp
|
||||||
|
- Stark Enterprises
|
||||||
|
- Globex Inc
|
||||||
|
- Cyberdyne Systems
|
||||||
|
- Initech
|
||||||
|
- Wonka Industries
|
||||||
|
- Oceanic Airlines
|
||||||
|
|
||||||
|
## Category: Date
|
||||||
|
- 2025-01-23
|
||||||
|
- 2025-01-14
|
||||||
|
- 2025-02-03
|
||||||
|
- 2025-03-19
|
||||||
|
- 2025-01-08
|
||||||
|
- 2025-02-05
|
||||||
|
- 2025-02-25
|
||||||
|
- 2025-03-18
|
||||||
|
- 2025-01-27
|
||||||
|
- 2025-03-03
|
||||||
|
- 2025-01-12
|
||||||
|
- 2025-01-22
|
||||||
|
- 2025-03-10
|
||||||
|
- 2025-02-10
|
||||||
|
- 2025-02-28
|
||||||
|
- 2025-03-25
|
||||||
|
- 2025-01-11
|
||||||
|
- 2025-01-20
|
||||||
|
- 2025-03-05
|
||||||
|
- 2025-01-06
|
||||||
|
- 2025-02-18
|
||||||
|
- 2025-02-22
|
||||||
|
- 2025-02-06
|
||||||
|
- 2025-02-14
|
||||||
|
- 2025-01-09
|
||||||
|
- 2025-03-07
|
||||||
|
- 2025-03-21
|
||||||
|
- 2025-01-31
|
||||||
|
- 2025-01-30
|
||||||
|
- 2025-02-20
|
||||||
|
- 2025-01-19
|
||||||
|
- 2025-01-15
|
||||||
|
- 2025-03-14
|
||||||
|
- 2025-02-24
|
||||||
|
- 2025-01-28
|
||||||
|
- 2025-03-12
|
||||||
|
- 2025-02-15
|
||||||
|
- 2025-03-30
|
||||||
|
- 2025-01-17
|
||||||
|
- 2025-03-28
|
||||||
|
|
||||||
|
## Category: Product
|
||||||
|
- Sprockets
|
||||||
|
- Widgets
|
||||||
|
- Gadgets
|
||||||
|
|
||||||
|
## Category: Region
|
||||||
|
- North
|
||||||
|
- East
|
||||||
|
- West
|
||||||
|
- South
|
||||||
|
|
||||||
|
## Category: Date_Month
|
||||||
|
- 2025-01
|
||||||
|
- 2025-02
|
||||||
|
- 2025-03
|
||||||
|
|
||||||
|
## Category: Measure
|
||||||
|
- Cost
|
||||||
|
- Revenue
|
||||||
|
|
||||||
|
## Formulas
|
||||||
|
- Profit = Revenue - Cost [Measure]
|
||||||
|
|
||||||
|
## Data
|
||||||
|
Customer=Acme Corp, Date=2025-01-08, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=North = 4340
|
||||||
|
Customer=Acme Corp, Date=2025-01-08, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=North = 6200
|
||||||
|
Customer=Acme Corp, Date=2025-01-15, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=North = 7200
|
||||||
|
Customer=Acme Corp, Date=2025-01-15, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=North = 12000
|
||||||
|
Customer=Acme Corp, Date=2025-02-18, Date_Month=2025-02, Measure=Cost, Product=Gadgets, Region=North = 5110
|
||||||
|
Customer=Acme Corp, Date=2025-02-18, Date_Month=2025-02, Measure=Revenue, Product=Gadgets, Region=North = 7300
|
||||||
|
Customer=Acme Corp, Date=2025-03-10, Date_Month=2025-03, Measure=Cost, Product=Widgets, Region=North = 8100
|
||||||
|
Customer=Acme Corp, Date=2025-03-10, Date_Month=2025-03, Measure=Revenue, Product=Widgets, Region=North = 13500
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-01-19, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=West = 4690
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-01-19, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=West = 6700
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-02-06, Date_Month=2025-02, Measure=Cost, Product=Widgets, Region=West = 6720
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-02-06, Date_Month=2025-02, Measure=Revenue, Product=Widgets, Region=West = 11200
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-02-24, Date_Month=2025-02, Measure=Cost, Product=Sprockets, Region=West = 2520
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-02-24, Date_Month=2025-02, Measure=Revenue, Product=Sprockets, Region=West = 3600
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-03-12, Date_Month=2025-03, Measure=Cost, Product=Gadgets, Region=West = 5250
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-03-12, Date_Month=2025-03, Measure=Revenue, Product=Gadgets, Region=West = 7500
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-03-30, Date_Month=2025-03, Measure=Cost, Product=Widgets, Region=West = 5880
|
||||||
|
Customer=Cyberdyne Systems, Date=2025-03-30, Date_Month=2025-03, Measure=Revenue, Product=Widgets, Region=West = 9800
|
||||||
|
Customer=Globex Inc, Date=2025-01-12, Date_Month=2025-01, Measure=Cost, Product=Sprockets, Region=North = 2380
|
||||||
|
Customer=Globex Inc, Date=2025-01-12, Date_Month=2025-01, Measure=Revenue, Product=Sprockets, Region=North = 3400
|
||||||
|
Customer=Globex Inc, Date=2025-01-22, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=North = 5100
|
||||||
|
Customer=Globex Inc, Date=2025-01-22, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=North = 8500
|
||||||
|
Customer=Globex Inc, Date=2025-02-25, Date_Month=2025-02, Measure=Cost, Product=Sprockets, Region=North = 2030
|
||||||
|
Customer=Globex Inc, Date=2025-02-25, Date_Month=2025-02, Measure=Revenue, Product=Sprockets, Region=North = 2900
|
||||||
|
Customer=Initech, Date=2025-01-30, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=North = 2870
|
||||||
|
Customer=Initech, Date=2025-01-30, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=North = 4100
|
||||||
|
Customer=Initech, Date=2025-02-05, Date_Month=2025-02, Measure=Cost, Product=Widgets, Region=North = 6600
|
||||||
|
Customer=Initech, Date=2025-02-05, Date_Month=2025-02, Measure=Revenue, Product=Widgets, Region=North = 11000
|
||||||
|
Customer=Initech, Date=2025-03-19, Date_Month=2025-03, Measure=Cost, Product=Gadgets, Region=North = 4060
|
||||||
|
Customer=Initech, Date=2025-03-19, Date_Month=2025-03, Measure=Revenue, Product=Gadgets, Region=North = 5800
|
||||||
|
Customer=Oceanic Airlines, Date=2025-01-11, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=West = 6300
|
||||||
|
Customer=Oceanic Airlines, Date=2025-01-11, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=West = 10500
|
||||||
|
Customer=Oceanic Airlines, Date=2025-01-27, Date_Month=2025-01, Measure=Cost, Product=Sprockets, Region=West = 2240
|
||||||
|
Customer=Oceanic Airlines, Date=2025-01-27, Date_Month=2025-01, Measure=Revenue, Product=Sprockets, Region=West = 3200
|
||||||
|
Customer=Oceanic Airlines, Date=2025-02-14, Date_Month=2025-02, Measure=Cost, Product=Gadgets, Region=West = 4970
|
||||||
|
Customer=Oceanic Airlines, Date=2025-02-14, Date_Month=2025-02, Measure=Revenue, Product=Gadgets, Region=West = 7100
|
||||||
|
Customer=Oceanic Airlines, Date=2025-03-03, Date_Month=2025-03, Measure=Cost, Product=Widgets, Region=West = 7680
|
||||||
|
Customer=Oceanic Airlines, Date=2025-03-03, Date_Month=2025-03, Measure=Revenue, Product=Widgets, Region=West = 12800
|
||||||
|
Customer=Oceanic Airlines, Date=2025-03-21, Date_Month=2025-03, Measure=Cost, Product=Sprockets, Region=West = 2800
|
||||||
|
Customer=Oceanic Airlines, Date=2025-03-21, Date_Month=2025-03, Measure=Revenue, Product=Sprockets, Region=West = 4000
|
||||||
|
Customer=Soylent Ltd, Date=2025-01-09, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=South = 5880
|
||||||
|
Customer=Soylent Ltd, Date=2025-01-09, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=South = 9800
|
||||||
|
Customer=Soylent Ltd, Date=2025-01-14, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=South = 3850
|
||||||
|
Customer=Soylent Ltd, Date=2025-01-14, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=South = 5500
|
||||||
|
Customer=Soylent Ltd, Date=2025-02-03, Date_Month=2025-02, Measure=Cost, Product=Widgets, Region=South = 6120
|
||||||
|
Customer=Soylent Ltd, Date=2025-02-03, Date_Month=2025-02, Measure=Revenue, Product=Widgets, Region=South = 10200
|
||||||
|
Customer=Soylent Ltd, Date=2025-02-22, Date_Month=2025-02, Measure=Cost, Product=Sprockets, Region=South = 2170
|
||||||
|
Customer=Soylent Ltd, Date=2025-02-22, Date_Month=2025-02, Measure=Revenue, Product=Sprockets, Region=South = 3100
|
||||||
|
Customer=Soylent Ltd, Date=2025-03-18, Date_Month=2025-03, Measure=Cost, Product=Gadgets, Region=South = 4760
|
||||||
|
Customer=Soylent Ltd, Date=2025-03-18, Date_Month=2025-03, Measure=Revenue, Product=Gadgets, Region=South = 6800
|
||||||
|
Customer=Stark Enterprises, Date=2025-01-17, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=East = 7080
|
||||||
|
Customer=Stark Enterprises, Date=2025-01-17, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=East = 11800
|
||||||
|
Customer=Stark Enterprises, Date=2025-01-31, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=East = 5180
|
||||||
|
Customer=Stark Enterprises, Date=2025-01-31, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=East = 7400
|
||||||
|
Customer=Stark Enterprises, Date=2025-02-20, Date_Month=2025-02, Measure=Cost, Product=Sprockets, Region=East = 2940
|
||||||
|
Customer=Stark Enterprises, Date=2025-02-20, Date_Month=2025-02, Measure=Revenue, Product=Sprockets, Region=East = 4200
|
||||||
|
Customer=Stark Enterprises, Date=2025-03-05, Date_Month=2025-03, Measure=Cost, Product=Widgets, Region=East = 7500
|
||||||
|
Customer=Stark Enterprises, Date=2025-03-05, Date_Month=2025-03, Measure=Revenue, Product=Widgets, Region=East = 12500
|
||||||
|
Customer=Stark Enterprises, Date=2025-03-25, Date_Month=2025-03, Measure=Cost, Product=Gadgets, Region=East = 5670
|
||||||
|
Customer=Stark Enterprises, Date=2025-03-25, Date_Month=2025-03, Measure=Revenue, Product=Gadgets, Region=East = 8100
|
||||||
|
Customer=Umbrella Co, Date=2025-01-20, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=South = 4320
|
||||||
|
Customer=Umbrella Co, Date=2025-01-20, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=South = 7200
|
||||||
|
Customer=Umbrella Co, Date=2025-01-28, Date_Month=2025-01, Measure=Cost, Product=Sprockets, Region=South = 1960
|
||||||
|
Customer=Umbrella Co, Date=2025-01-28, Date_Month=2025-01, Measure=Revenue, Product=Sprockets, Region=South = 2800
|
||||||
|
Customer=Umbrella Co, Date=2025-02-15, Date_Month=2025-02, Measure=Cost, Product=Gadgets, Region=South = 4270
|
||||||
|
Customer=Umbrella Co, Date=2025-02-15, Date_Month=2025-02, Measure=Revenue, Product=Gadgets, Region=South = 6100
|
||||||
|
Customer=Umbrella Co, Date=2025-03-07, Date_Month=2025-03, Measure=Cost, Product=Widgets, Region=South = 5340
|
||||||
|
Customer=Umbrella Co, Date=2025-03-07, Date_Month=2025-03, Measure=Revenue, Product=Widgets, Region=South = 8900
|
||||||
|
Customer=Umbrella Co, Date=2025-03-28, Date_Month=2025-03, Measure=Cost, Product=Sprockets, Region=South = 2450
|
||||||
|
Customer=Umbrella Co, Date=2025-03-28, Date_Month=2025-03, Measure=Revenue, Product=Sprockets, Region=South = 3500
|
||||||
|
Customer=Wonka Industries, Date=2025-01-06, Date_Month=2025-01, Measure=Cost, Product=Widgets, Region=East = 8520
|
||||||
|
Customer=Wonka Industries, Date=2025-01-06, Date_Month=2025-01, Measure=Revenue, Product=Widgets, Region=East = 14200
|
||||||
|
Customer=Wonka Industries, Date=2025-01-23, Date_Month=2025-01, Measure=Cost, Product=Gadgets, Region=East = 6230
|
||||||
|
Customer=Wonka Industries, Date=2025-01-23, Date_Month=2025-01, Measure=Revenue, Product=Gadgets, Region=East = 8900
|
||||||
|
Customer=Wonka Industries, Date=2025-02-10, Date_Month=2025-02, Measure=Cost, Product=Widgets, Region=East = 9000
|
||||||
|
Customer=Wonka Industries, Date=2025-02-10, Date_Month=2025-02, Measure=Revenue, Product=Widgets, Region=East = 15000
|
||||||
|
Customer=Wonka Industries, Date=2025-02-28, Date_Month=2025-02, Measure=Cost, Product=Gadgets, Region=East = 6440
|
||||||
|
Customer=Wonka Industries, Date=2025-02-28, Date_Month=2025-02, Measure=Revenue, Product=Gadgets, Region=East = 9200
|
||||||
|
Customer=Wonka Industries, Date=2025-03-14, Date_Month=2025-03, Measure=Cost, Product=Sprockets, Region=East = 3360
|
||||||
|
Customer=Wonka Industries, Date=2025-03-14, Date_Month=2025-03, Measure=Revenue, Product=Sprockets, Region=East = 4800
|
||||||
|
|
||||||
|
## View: Default (active)
|
||||||
|
_Index: none
|
||||||
|
_Dim: none
|
||||||
|
Customer: page, Oceanic Airlines
|
||||||
|
Date: none
|
||||||
|
Product: row
|
||||||
|
Region: row
|
||||||
|
Date_Month: column
|
||||||
|
Measure: column
|
||||||
|
format: ,.0
|
||||||
|
|
||||||
|
## View: _Drill
|
||||||
|
_Index: row
|
||||||
|
_Dim: column
|
||||||
|
Customer: page, Oceanic Airlines
|
||||||
|
Date: none
|
||||||
|
Product: page, Widgets
|
||||||
|
Region: page, West
|
||||||
|
Date_Month: page, 2025-01
|
||||||
|
Measure: page, Cost
|
||||||
|
format: ,.0
|
||||||
Reference in New Issue
Block a user