Giter Club home page Giter Club logo

accounting-frontend's People

Contributors

pifragile avatar

Watchers

 avatar

accounting-frontend's Issues

provide all history back to genesis

It is undesireable that 2022 has to be analyzed with an Excel spreadsheet which doesn't even last until the end of 2022, but the accounting frontend only seems to show 2023. Moreover, we need to manually add Event's that didn't exist for previous runtime versions.
Our indexer should be enriched with the past (for consistent generic graphQL queries) and the frontend should use it

  • extend accounting frontend back into 2022
  • alias the 3 different cid's for Leu
  • add missing Events. see as reference a dump from the accounting excel: account-events-manually-annotated-early-blocks.csv. Need to derive the following:
    • encointerBalances.issued
    • encointerCeremonies.rewardsIssued

plot number of reputables vs time

The explorer shows the current total number of reputables, which is the unique set of accounts with nonzero reputation (over the past 5 cycles)

This metric is dependent on the reputation lifetime, so it would probably make sense to recompute the entire history with the current lifetime config

y-axis: "number of reputables", linear
x-axis: "date", but indicate ticks with cycle index (or have a secondary axis with cindex)

As this metric is used for key results, we should also draw a regression curve (exponential curve) for the last 3 months and label the growth rate in percent per week

notes:

  • index all events encointer_balances::issued which shows that an account has been successfully attested to get a list of accounts, cid per cindex
  • index all events encointer_ceeremonies::phaseChangedTo to get cindex (because of early payouts, the previous ATTESTING phase and new REGISTERING phase belong together

this plot should be public (and should be an embeddable component / iframe, i.e. for explorer.encointer.org)

Plot Cycle participant Statistics vs. time

for each cycle

  • number of registered participants
    • bootstrappers
    • endorsees
    • reputables
    • newbies
  • number of assignees
  • number of confirmed attendees (that then have a Verified* entry in the reputation registry

separately:

  • plot noshow rate vs time
  • plot new accounts registered (never seen before). would be good to distinguish how many just registered and how many got their proof of attendance

x-axis should be date, but indicate cycle index too

See our manual statistics until now: https://docs.google.com/spreadsheets/d/1LQ4PCiLRS8P7z1rwphLgv6fOgTmzVRICZCJmhSDZ2B0/edit#gid=0

Sankey Diagram end2end

as a possible extension of #12 we could draw the entire landscape end2end (closing the circle to Retail wasn't possible with the tool)

image

CII [150] bizA
CII [1600] Retail
Retail [100] demurrage
Retail [860] bizA

bizA [30] demurrage
bizA [300] LEAbuyBack
bizA [200] unknownAccounts
bizA [90] bizB

bizB [30] demurrage
bizB [300] LEAbuyBack
bizB [200] unknownAccounts
Retail [860] bizB

bizB [200] bizC
bizC [20] demurrage

LEAbuyBack [20] demurrage
LEAbuyBack [200] vouchers
LEAbuyBack [200] salaries

unique accounts with at least one cycle attendance

For community A I'd like to know the total number of unique accounts which have received a reward at least once during the entire existence of the community

It would be nice to plot this as a monotonically increasing graph over time (cycle index)

I tried to do this query

query Query {
  issueds(
    filter: { arg0: { equalTo: "u0qj944rhWE" } }
    orderBy: TIMESTAMP_DESC
  ) {
    nodes {
      id
      blockHeight
      timestamp
      arg0
      arg1
      arg2
    }
  }
}

but I can't easily collect all entries because of pagination :-(

add money velocity analysis

See Fig 5 of our blog: https://encointer.org/charting-the-development-of-encointers-longest-established-community-currency/

  • remove the "quarterly" in the labels
  • use Excel as a reference for how to calculate velocity. This needs to be evaluated by cycle:
    • extrapolate the current commercial turnover to a year and divide it by the current money supply

Provide a plot and CSV with all the relevant raw and calculated data in the "internal" space

this plot should be public (and should be an embeddable component / iframe, i.e. for explorer.encointer.org)

easiest first approach:

  • analyze monthly, not by cycle (as data is ready for this)
  • money supply should be average of beginning and end of month

balance histogram per community

based on https://accounting.encointer.org/account-overview

  • plot histogram over all balances
  • label number of accounts with > 5 Leu

a quick python hack

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data = pd.read_csv('Account_Overview_Tue, 12 Mar 2024 13_14_00 GMT_Leu Zürich.csv', sep=',',header=1, index_col =0)
fig, ax = plt.subplots()
hist = data.hist(ax=ax, bins=np.linspace(0,1000,num=100), log=True, )
nr_meaningful_accounts = data[data > 5].count().values[0]
plt.title(f"{nr_meaningful_accounts} accounts with > 5 Leu")
plt.ylim([.5,100])
plt.xlabel("balance [LEU]")
plt.ylabel("number of accounts")

image

Sankey Diagram for businesses (isolated biz)

In order to quantify and categorize monetary flows, a Sankey diagram shall be used:

example:

image

Subject (bizA) (to choose via dropdown selector):

  • single known business account
  • all known businesses together

Time range (to choose interactively):

  • per month
  • per Year
  • since genesis, until (now | specific date)

Categories:

  • Community Issued Income (CII): some businesses have also had persons participate in CII cycles with the same account
  • B2B: any income from known biz accounts
  • Retail: any other income
  • Supplier: any other known biz account
  • LEAbuyBack: outflow to accounts of LEA or Verein Encointer
  • demurrage: ...
  • unknownAccounts: any unexpalinable outflow (could be employees)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.