Skip to content

Vuosi 2026

Tiivistelmä tekeillä.

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearweek", "title": "Aika", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"} } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 70000.0} } }] }

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonth", "title": "Aika", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"} } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 300000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearweek", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearweek", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearweek", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearweek", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearweek", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonth", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonth", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonth", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonth", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonth", "title": "Viikot", "axis": {"format": "%B %G", "labelAngle": 0, "labelAlign": "left", "tickCount": "month", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tammikuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
4 0 6.4 km 241651
Δ Paino Σ kcal
-0.60 kg -8226 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 1, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 1, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 1, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 1, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 1, "date": 1}, {"year": 2026, "month": 1, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
192 g /306 g 63 g /102 g 77 g /91 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 1, "date": 1, "hours": 0}, {"year": 2026, "month": 1, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 0, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 1, "date": 1, "hours": 0}, {"year": 2026, "month": 1, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. to
02. pe
03. la
04. su
05. ma
06. ti
07. ke
08. to
09. pe
10. la
11. su
12. ma
13. ti
14. ke
15. to
16. pe
17. la
18. su
19. ma
20. ti
21. ke
22. to
23. pe
24. la
25. su
26. ma
27. ti
28. ke
29. to
30. pe
31. la

Helmikuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
5 0 20.4 km 236692
Δ Paino Σ kcal
-0.20 kg -4472 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 2, "date": 1}, {"year": 2026, "month": 2, "date": 28}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 2, "date": 1}, {"year": 2026, "month": 2, "date": 28}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 2, "date": 1}, {"year": 2026, "month": 2, "date": 28}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 2, "date": 1}, {"year": 2026, "month": 2, "date": 28}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 2, "date": 1}, {"year": 2026, "month": 2, "date": 28}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
217 g /314 g 73 g /105 g 79 g /93 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 2, "date": 1, "hours": 0}, {"year": 2026, "month": 2, "date": 28, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 1, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 2, "date": 1, "hours": 0}, {"year": 2026, "month": 2, "date": 28, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. su
02. ma
03. ti
04. ke
05. to
06. pe
07. la
08. su
09. ma
10. ti
11. ke
12. to
13. pe
14. la
15. su
16. ma
17. ti
18. ke
19. to
20. pe
21. la
22. su
23. ma
24. ti
25. ke
26. to
27. pe
28. la

Maaliskuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
7 4 69.9 km 251483
Δ Paino Σ kcal
-0.60 kg -6999 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 3, "date": 1}, {"year": 2026, "month": 3, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 3, "date": 1}, {"year": 2026, "month": 3, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 3, "date": 1}, {"year": 2026, "month": 3, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 3, "date": 1}, {"year": 2026, "month": 3, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 3, "date": 1}, {"year": 2026, "month": 3, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
225 g /328 g 79 g /109 g 76 g /97 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 3, "date": 1, "hours": 0}, {"year": 2026, "month": 3, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 2, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 3, "date": 1, "hours": 0}, {"year": 2026, "month": 3, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. su
02. ma
03. ti
04. ke
05. to
06. pe
07. la
08. su
09. ma
10. ti
11. ke
12. to
13. pe
14. la
15. su
16. ma
17. ti
18. ke
19. to
20. pe
21. la
22. su
23. ma
24. ti
25. ke
26. to
27. pe
28. la
29. su
30. ma
31. ti

Huhtikuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
3 2 62.1 km 268600
Δ Paino Σ kcal
-0.60 kg -524 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 4, "date": 1}, {"year": 2026, "month": 4, "date": 30}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 4, "date": 1}, {"year": 2026, "month": 4, "date": 30}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 4, "date": 1}, {"year": 2026, "month": 4, "date": 30}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 4, "date": 1}, {"year": 2026, "month": 4, "date": 30}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 4, "date": 1}, {"year": 2026, "month": 4, "date": 30}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
239 g /313 g 73 g /104 g 83 g /93 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 4, "date": 1, "hours": 0}, {"year": 2026, "month": 4, "date": 30, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 3, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 4, "date": 1, "hours": 0}, {"year": 2026, "month": 4, "date": 30, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. ke
02. to
03. pe
04. la
05. su
06. ma
07. ti
08. ke
09. to
10. pe
11. la
12. su
13. ma
14. ti
15. ke
16. to
17. pe
18. la
19. su
20. ma
21. ti
22. ke
23. to
24. pe
25. la
26. su
27. ma
28. ti
29. ke
30. to

Toukokuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
6 2 134.2 km 237341
Δ Paino Σ kcal
-0.70 kg 236 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 5, "date": 1}, {"year": 2026, "month": 5, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 5, "date": 1}, {"year": 2026, "month": 5, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 5, "date": 1}, {"year": 2026, "month": 5, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 5, "date": 1}, {"year": 2026, "month": 5, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 5, "date": 1}, {"year": 2026, "month": 5, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
247 g /316 g 73 g /105 g 82 g /94 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 5, "date": 1, "hours": 0}, {"year": 2026, "month": 5, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 4, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 5, "date": 1, "hours": 0}, {"year": 2026, "month": 5, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. pe
02. la
03. su
04. ma
05. ti
06. ke
07. to
08. pe
09. la
10. su
11. ma
12. ti
13. ke
14. to
15. pe
16. la
17. su
18. ma
19. ti
20. ke
21. to
22. pe
23. la
24. su
25. ma
26. ti
27. ke
28. to
29. pe
30. la
31. su

Kesäkuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
6 1 106.2 km 275318
Δ Paino Σ kcal
0.30 kg 2524 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 6, "date": 1}, {"year": 2026, "month": 6, "date": 30}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 6, "date": 1}, {"year": 2026, "month": 6, "date": 30}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 6, "date": 1}, {"year": 2026, "month": 6, "date": 30}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 6, "date": 1}, {"year": 2026, "month": 6, "date": 30}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 6, "date": 1}, {"year": 2026, "month": 6, "date": 30}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
267 g /317 g 84 g /106 g 78 g /94 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 6, "date": 1, "hours": 0}, {"year": 2026, "month": 6, "date": 30, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 5, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 6, "date": 1, "hours": 0}, {"year": 2026, "month": 6, "date": 30, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. ma
02. ti
03. ke
04. to
05. pe
06. la
07. su
08. ma
09. ti
10. ke
11. to
12. pe
13. la
14. su
15. ma
16. ti
17. ke
18. to
19. pe
20. la
21. su
22. ma
23. ti
24. ke
25. to
26. pe
27. la
28. su
29. ma
30. ti

Heinäkuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
6 2 106.6 km 238548
Δ Paino Σ kcal
-0.40 kg -248 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 7, "date": 1}, {"year": 2026, "month": 7, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 7, "date": 1}, {"year": 2026, "month": 7, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 7, "date": 1}, {"year": 2026, "month": 7, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 7, "date": 1}, {"year": 2026, "month": 7, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 7, "date": 1}, {"year": 2026, "month": 7, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
254 g /318 g 74 g /106 g 84 g /94 g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 7, "date": 1, "hours": 0}, {"year": 2026, "month": 7, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 6, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 7, "date": 1, "hours": 0}, {"year": 2026, "month": 7, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. ke
02. to
03. pe
04. la
05. su
06. ma
07. ti
08. ke
09. to
10. pe
11. la
12. su
13. ma
14. ti
15. ke
16. to
17. pe
18. la
19. su
20. ma
21. ti
22. ke
23. to
24. pe
25. la
26. su
27. ma
28. ti
29. ke
30. to
31. pe

Elokuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
0 0 0.0 km 0
Δ Paino Σ kcal
-62.20 kg 0 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 8, "date": 1}, {"year": 2026, "month": 8, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 8, "date": 1}, {"year": 2026, "month": 8, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 8, "date": 1}, {"year": 2026, "month": 8, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 8, "date": 1}, {"year": 2026, "month": 8, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 8, "date": 1}, {"year": 2026, "month": 8, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
nan g /inf g nan g /inf g nan g /inf g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 8, "date": 1, "hours": 0}, {"year": 2026, "month": 8, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 7, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 8, "date": 1, "hours": 0}, {"year": 2026, "month": 8, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. la
02. su
03. ma
04. ti
05. ke
06. to
07. pe
08. la
09. su
10. ma
11. ti
12. ke
13. to
14. pe
15. la
16. su
17. ma
18. ti
19. ke
20. to
21. pe
22. la
23. su
24. ma
25. ti
26. ke
27. to
28. pe
29. la
30. su
31. ma

Syyskuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
0 0 0.0 km 0
Δ Paino Σ kcal
0.00 kg 0 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 9, "date": 1}, {"year": 2026, "month": 9, "date": 30}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 9, "date": 1}, {"year": 2026, "month": 9, "date": 30}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 9, "date": 1}, {"year": 2026, "month": 9, "date": 30}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 9, "date": 1}, {"year": 2026, "month": 9, "date": 30}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 9, "date": 1}, {"year": 2026, "month": 9, "date": 30}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
nan g /inf g nan g /inf g nan g /inf g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 9, "date": 1, "hours": 0}, {"year": 2026, "month": 9, "date": 30, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 8, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 9, "date": 1, "hours": 0}, {"year": 2026, "month": 9, "date": 30, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. ti
02. ke
03. to
04. pe
05. la
06. su
07. ma
08. ti
09. ke
10. to
11. pe
12. la
13. su
14. ma
15. ti
16. ke
17. to
18. pe
19. la
20. su
21. ma
22. ti
23. ke
24. to
25. pe
26. la
27. su
28. ma
29. ti
30. ke

Lokakuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
0 0 0.0 km 0
Δ Paino Σ kcal
0.00 kg 0 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 10, "date": 1}, {"year": 2026, "month": 10, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 10, "date": 1}, {"year": 2026, "month": 10, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 10, "date": 1}, {"year": 2026, "month": 10, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 10, "date": 1}, {"year": 2026, "month": 10, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 10, "date": 1}, {"year": 2026, "month": 10, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
nan g /inf g nan g /inf g nan g /inf g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 10, "date": 1, "hours": 0}, {"year": 2026, "month": 10, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 9, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 10, "date": 1, "hours": 0}, {"year": 2026, "month": 10, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. to
02. pe
03. la
04. su
05. ma
06. ti
07. ke
08. to
09. pe
10. la
11. su
12. ma
13. ti
14. ke
15. to
16. pe
17. la
18. su
19. ma
20. ti
21. ke
22. to
23. pe
24. la
25. su
26. ma
27. ti
28. ke
29. to
30. pe
31. la

Marraskuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
0 0 0.0 km 0
Δ Paino Σ kcal
0.00 kg 0 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 11, "date": 1}, {"year": 2026, "month": 11, "date": 30}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 11, "date": 1}, {"year": 2026, "month": 11, "date": 30}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 11, "date": 1}, {"year": 2026, "month": 11, "date": 30}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 11, "date": 1}, {"year": 2026, "month": 11, "date": 30}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 11, "date": 1}, {"year": 2026, "month": 11, "date": 30}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
nan g /inf g nan g /inf g nan g /inf g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 11, "date": 1, "hours": 0}, {"year": 2026, "month": 11, "date": 30, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 10, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 11, "date": 1, "hours": 0}, {"year": 2026, "month": 11, "date": 30, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. su
02. ma
03. ti
04. ke
05. to
06. pe
07. la
08. su
09. ma
10. ti
11. ke
12. to
13. pe
14. la
15. su
16. ma
17. ti
18. ke
19. to
20. pe
21. la
22. su
23. ma
24. ti
25. ke
26. to
27. pe
28. la
29. su
30. ma

Joulukuu

Salikerrat Kiipeilykerrat Pyöräily Askeleet
0 0 0.0 km 0
Δ Paino Σ kcal
0.00 kg 0 kcal

{ "description": "Askeleet kuukausittain" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"}, {"filter": "datum.askeleet > 0"}] , "layer": [{ "mark": {"type": "bar", "color": "#4c78a8", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Aika", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 12, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "askeleet", "type": "quantitative", "aggregate": "sum", "title": "askeleet" }, "tooltip": {"field": "askeleet", "type": "quantitative", "aggregate": "sum"}, "color": { "field": "viikonloppu", "legend": {"orient": "bottom"}, "type": "nominal" } } }, { "mark": {"type": "rule", "color": "red"}, "encoding": { "y": {"datum": 10000.0} } }] }

{ "description": "Kalorit" , "data": {"url" : "assets/charts/ruokadata.csv"} , "transform": [{"timeUnit": "yearmonthdate", "field": "pvm", "as": "aika"}, {"joinaggregate": [{"op": "sum", "field": "lepokulutus", "as": "lepokulutus_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "syonti", "as": "syonti_agg"}], "groupby": ["aika"]}, {"joinaggregate": [{"op": "sum", "field": "kulutus", "as": "kulutus_agg"}], "groupby": ["aika"]}, {"calculate": "-datum.kulutus_agg-datum.lepokulutus_agg", "as": "kokonaiskulutus_flip"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, 0, 10000)", "as": "erotus"}, {"calculate": "clamp(datum.syonti_agg-datum.kulutus_agg-datum.lepokulutus_agg, -10000, 0)", "as": "erotus_neg"}] , "layer": [{ "mark": {"type": "bar", "color": "lightblue", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 12, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "kokonaiskulutus_flip", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "lightgreen", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 12, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "syonti_agg", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darksalmon", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 12, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus", "type": "quantitative", "aggregate": "max"} } }, { "mark": {"type": "bar", "color": "darkorange", "point": true, "clip": true}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "Viikot", "axis": {"format": "%d", "labelAngle": 0, "labelAlign": "left", "tickCount": "day", "tickExtra": true} , "scale": {"domain": [{"year": 2026, "month": 12, "date": 1}, {"year": 2026, "month": 12, "date": 31}]}}, "y": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max", "title": "Kalorit" }, "tooltip": {"field": "erotus_neg", "type": "quantitative", "aggregate": "max"} } }] }

Tarkemmat tiedot

Koko kuukauden makroravinteiden keskiarvot:

Hiilihydraatit Proteiinit Rasvat
nan g /inf g nan g /inf g nan g /inf g

Ravintosuositukset: THL https://urn.fi/URN:ISBN:978-952-408-405-5

{ "description": "Paino (kg)", "data": {"url" : "assets/charts/ruokadata.csv"}, "transform": [ {"filter": {"field": "pvm", "range": [ {"year": 2025, "month": 12, "date": 1, "hours": 0}, {"year": 2026, "month": 12, "date": 31, "hours": 23, "minutes": 59} ]} }, {"filter": {"field": "paino", "valid": true}}, {"calculate": "datetime(2026, 11, 1)", "as": "today"}, {"calculate": "datum.vkpv == 1 || datum.vkpv == 7", "as": "viikonloppu"} ], "config": {"legend": {"orient": "bottom"}}, "layer": [ { "mark": {"type": "line"}, "encoding": { "x": {"field": "pvm", "type": "temporal", "timeUnit": "yearmonthdate", "title": "pvm", "axis": {"labelExpr": "[timeFormat(datum.value, '%b'), timeFormat(datum.value, '%m') == '01' ? timeFormat(datum.value, '%Y') : '']", "labelAngle": 0, "labelAlign": "left", "tickCount": 13}, "scale": {"domain": [ {"year": 2025, "month": 12, "date": 1, "hours": 0}, {"year": 2026, "month": 12, "date": 31, "hours": 24, "minutes": 59}]}, "title": "Kuukausi"}, "y": {"field": "paino", "type": "quantitative", "scale": {"domain": [55, 85]}, "title": "Paino (kg)"} } } ] }

ma
ti
ke
to
pe
la
su
01. ti
02. ke
03. to
04. pe
05. la
06. su
07. ma
08. ti
09. ke
10. to
11. pe
12. la
13. su
14. ma
15. ti
16. ke
17. to
18. pe
19. la
20. su
21. ma
22. ti
23. ke
24. to
25. pe
26. la
27. su
28. ma
29. ti
30. ke
31. to