{"id":40171834,"url":"https://github.com/cubewise-code/cubecalc","last_synced_at":"2026-01-19T17:07:04.931Z","repository":{"id":43867205,"uuid":"160414738","full_name":"cubewise-code/cubecalc","owner":"cubewise-code","description":"Super calculator for TM1 to calculate typical financial or statistical measures","archived":false,"fork":false,"pushed_at":"2025-12-03T11:44:22.000Z","size":85,"stargazers_count":13,"open_issues_count":3,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-12-06T15:17:47.091Z","etag":null,"topics":["planning-analytics","tm1","tm1py"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cubewise-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-12-04T20:26:55.000Z","updated_at":"2025-12-03T11:44:26.000Z","dependencies_parsed_at":"2025-12-04T13:19:33.481Z","dependency_job_id":null,"html_url":"https://github.com/cubewise-code/cubecalc","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cubewise-code/cubecalc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubewise-code%2Fcubecalc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubewise-code%2Fcubecalc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubewise-code%2Fcubecalc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubewise-code%2Fcubecalc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cubewise-code","download_url":"https://codeload.github.com/cubewise-code/cubecalc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cubewise-code%2Fcubecalc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28577208,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T16:29:19.148Z","status":"ssl_error","status_checked_at":"2026-01-19T16:29:17.772Z","response_time":67,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["planning-analytics","tm1","tm1py"],"created_at":"2026-01-19T17:07:04.818Z","updated_at":"2026-01-19T17:07:04.920Z","avatar_url":"https://github.com/cubewise-code.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://github.com/MariusWirtz/CubeCalc/blob/master/Images/logo.svg)\n\nPython command line tool to perform typical financial and statistical calculations in TM1:\n\n- COUNT\n- EFFECT\n- FV\n- FV_SCHEDULE\n- IRR\n- KURT\n- MAX\n- MEAN\n- MEDIAN\n- MIN\n- MIRR\n- MODE\n- NOMINAL\n- NPER\n- NPV\n- PMT\n- PPMT\n- PV\n- RATE\n- RNG\n- SEM\n- SKEW\n- SLN\n- STDEV\n- STDEV_P\n- SUM\n- VAR\n- XIRR\n- XNPV\n\n# Usage\n\ncubecalc offers two execution modes:\n\n\u003e 1. Single Mode\n\nIf no `dimension`, `hierarchy` and `subset` arguments are passed, cubecalc will execute the calculation for a single\nview.\n\n\u003e 2. Batch Mode\n\nIf `dimension`, `hierarchy` and `subset` arguments are passed, cubecalc will run the calculation for each element in the\nsubset. The dynamic dimension (e.g., projects) **must** be placed in the titles! Effectively the source and target view\nis updated before every calculation. When no subset is passed, cubecalc will run the calculation for all leaf elements.\nWhen no hierarchy is passed cubecalc assumes the same named hierarchy.\n\n\u003e Examples\n\nExecute the script like this:\n\n`C:\\python\\python.exe cubecalc.py `\n\nand pass arguments like this:\n\n``` \n--method \"IRR\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--cube_target \"Py Project Summary\" --view_source \"Project1\" --view_target \"Project1 IRR\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\"\n```\n\n```\n--method \"NPV\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--cube_target \"Py Project Summary\" --view_source \"Project1\" --view_target \"Project1 NPV\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\" --rate 0.1\n```\n\n```\n--method \"STDEV\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--cube_target \"Py Project Summary\" --view_source \"Project1\" --view_target \"Project1 STDEV\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\"\n```\n\n```\n--method \"FV\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--tm1_target \"tm1srv01\" --cube_target \"Py Project Summary\" --view_target \"Project1 FV\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\" --rate 0.1 --nper 3 --pmt 1 --pv -100\n```\n\n```\n--method \"PMT\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--tm1_target \"tm1srv01\" --cube_target \"Py Project Summary\" --view_target \"Project1 PMT\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\" --rate 0.1 --nper 3 --pv 1000\n```\n\n```\n--method \"PV\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n --tm1_target \"tm1srv01\" --cube_target \"Py Project Summary\" --view_target \"Project1 PV\" --dimension \"Project\" \n --hierarchy \"Project --subset \"All Projects\" --rate 0.1 --nper 3 --pmt 1 --fv -100 --when 0\n```\n\n```\n--method \"MIRR\" --tm1_source \"tm1srv01\" --tm1_target \"tm1srv01\" --cube_source \"Py Project Planning\" \n--cube_target \"Py Project Summary\" --view_source \"Project1\" --view_target \"Project1 MIRR\" --dimension \"Project\" \n--hierarchy \"Project --subset \"All Projects\" --finance_rate 0.12 --reinvest_rate 0.1\n```\n\nAll arguments have the same names as in the Excel functions (except: `type` is called `when` in CubeCalc since `type` is\na reserved word in python)\n\nThe `dimension`, `hierarchy` and `subset` argument are optional (see section on run modes)\n\n# Requirements\n\n- [TM1py](https://github.com/cubewise-code/TM1py)\n- [numpy-financial](https://github.com/numpy/numpy-financial)\n- [scipy](https://github.com/scipy/scipy)\n- [click](https://github.com/pallets/click/)\n\n# Getting Started Guide\n\nFor more information about how to use CubeCalc, just follow\nthe [Getting Started Guide](https://code.cubewise.com/tm1py-help-content/getting-started-with-cubecalc).\n\n# Installation\n\nJust download the repository\n\n# Configuration\n\nAdjust the `config.ini` to match your TM1 environment:\n\n```\n[tm1srv01]\nbase_url=https://localhost:12354\nuser=admin\npassword=YXBwbGU=\ndecode_b64=True\n```\n\n# Samples\n\n- Adjust the `config.ini` file to match your setup\n- Execute the `setup sample.py` file\n- Run `cubecalc.py` with appropriate arguments from the commandline or from TI\n\n# Contribution\n\nCubeCalc is an open source project. It thrives on contribution from the TM1 community. If you find a bug or want to add\nmore functions to this repository, just:\n\n- Fork the repository\n- Add the new function to the methods.py file + Add some tests for your function in the Tests.py file\n- Create a MR and we will merge in the changes\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubewise-code%2Fcubecalc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcubewise-code%2Fcubecalc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcubewise-code%2Fcubecalc/lists"}