Public
Edited
Jul 6, 2024
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
JSON.stringify(projection1)
Insert cell
gem = ({
//"meta": {"name": "All at once"},
timeline: {
concat: [
{
component: { mark: "layer_4_marks" }, // rect
change: {
//data: { keys: ["year_in", "formula"] },
encode: {
update: true,
enter: false,
exit: false
}
},
timing: { duration: { ratio: 1 } }
},
{
component: { mark: "layer_4_marks" }, // rect
change: {
//data: { keys: ["year_in", "formula"] },
encode: { update: false, enter: true, exit: true }
},
timing: { duration: { ratio: 0.5 } }
},

{
component: { mark: "layer_5_marks" },
timing: { duration: { ratio: 1 } }
}
]
},
totalDuration: 1000
})
Insert cell
Insert cell
Insert cell
{
if (step != mutable v0) {
console.log("RUNNING");
const animation = await gemini.animate(mapped[v0], mapped[step], gem);
await animation.play("#view");
setV0(step);
console.log("done");
}
}
Insert cell
gemini.animate(mapped[0], mapped[1], gem)
Insert cell
//gemini.animate(mapped[0], mapped[1], gem)
Insert cell
spec0.marks.map((d) => d.name)
Insert cell
viewof chart = embed("#view", mapped[0], { renderer: "svg" })
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
mutable v0 = 0
Insert cell
v1 = step
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
introspection1 = await calculang.introspection("entrypoint.cul.js", fs1)
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
projection0 = helpers.calcudata({
models: [model0],
outputs: ["premiums", "mclaims", "profit", "mΔreserve"],
input_domains: { year_in: _.range(0, 21 + 0.1, 1) },
input_cursors: [cursor]
//pivot: true
})
//.filter((d) => d.formula == "profit" || Math.abs(d.value) > 0.001)
Insert cell
Insert cell
projection1 = [{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":0,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":1,"value":100},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":2,"value":98.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":3,"value":97},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":4,"value":95.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":5,"value":94},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":6,"value":92.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":7,"value":91},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":8,"value":89.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":9,"value":88},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":10,"value":86.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":11,"value":85},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":12,"value":83.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":13,"value":82},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":14,"value":80.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":15,"value":79},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":16,"value":77.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":17,"value":76},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":18,"value":74.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":19,"value":73},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":20,"value":71.5},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"premiums","year_in":21,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":0,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":1,"value":-1},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":2,"value":-1.35},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":3,"value":-1.8225000000000002},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":4,"value":-2.4603750000000004},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":5,"value":-3.321506250000001},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":6,"value":-4.484033437500002},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":7,"value":-6.053445140625002},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":8,"value":-8.172150939843753},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":9,"value":-11.032403768789068},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":10,"value":-14.893745087865243},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":11,"value":-20.10655586861808},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":12,"value":-27.143850422634408},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":13,"value":-36.644198070556456},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":14,"value":-49.46966739525122},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":15,"value":-66.78405098358915},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":16,"value":-90.15846882784535},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":17,"value":-121.71393291759124},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":18,"value":-164.3138094387482},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":19,"value":-221.82364274231006},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":20,"value":-299.4619177021186},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mclaims","year_in":21,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":0,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":1,"value":99},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":2,"value":97.15},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":3,"value":95.1775},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":4,"value":93.039625},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":5,"value":90.67849375},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":6,"value":87.74412725611408},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":7,"value":5.684341886080802e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":8,"value":-2.842170943040401e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":9,"value":-2.842170943040401e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":10,"value":4.263256414560601e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":11,"value":-2.842170943040401e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":12,"value":3.552713678800501e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":13,"value":-5.684341886080802e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":14,"value":1.4210854715202004e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":15,"value":1.4210854715202004e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":16,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":17,"value":1.4210854715202004e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":18,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":19,"value":2.842170943040401e-14},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":20,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"profit","year_in":21,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":0,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":1,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":2,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":3,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":4,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":5,"value":0},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":6,"value":-0.2718393063859139},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":7,"value":-84.94655485937494},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":8,"value":-81.32784906015627},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":9,"value":-76.96759623121096},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":10,"value":-71.60625491213472},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":11,"value":-64.89344413138195},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":12,"value":-56.35614957736556},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":13,"value":-45.3558019294436},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":14,"value":-31.030332604748764},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":15,"value":-12.215949016410832},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":16,"value":12.658468827845354},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":17,"value":45.71393291759125},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":18,"value":89.8138094387482},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":19,"value":148.82364274231008},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":20,"value":227.96191770211863},{"point_id_in":0,"adverse_reserve_factor_in":0,"limit_in":0,"model_id":0,"input_cursor_id":0,"formula":"mΔreserve","year_in":21,"value":0}]
Insert cell
JSON.stringify(projection1)
Insert cell
cursor = ({ premiums_fn_in:() => premiums, claims_fn_in:() => claims, point_id_in: 0, adverse_reserve_factor_in:0, limit_in:10000 })
Insert cell
premiums = [0, ..._.range(0, 19.1).map((year) => 100 - year * 1.5)]
Insert cell
claims = [0, ..._.range(0, 19.1).map((year) => 1.35 ** year)]
Insert cell
mapped[0]
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more