MCPcopy Index your code
hub / github.com/datamade/ny-budget

github.com/datamade/ny-budget @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
269 symbols 777 edges 36 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ny-budget

An explorable budget visualization for the state of New York

screen shot 2015-05-07 at 3 22 46 pm

This is based on Look at Cook by Derek Eder and Nick Rougeux at Open City, and can be easily re-deployed to visualize other budgets.

Dependencies

How to update this New York visualization

1. Update Data

The csv inputs that may need to be updated going forward are:

  • the budget numbers (data/budget_raw.csv)
  • the budget descriptions (data/descriptions.csv)

A csv and xlsx file are typically shared with the same data. I've found that the csv file sometimes has formatting issues, so I export the xlsx file as a new budget_raw.csv

cleanup.py is a python script that requires pandas and xlrd. You can install them by running:

pip install -r requirements.txt

When updating either of the above csvs, run the cleanup.py script to generate the finished budget, budget_finished.csv:

python cleanup.py

2. Update settings

The settings in js/settings.js that may need to be updated going forward are: - endYear (for example, if the last year in the budget is '2023-24', set the end year to 2024) - activeYear (typically set to the same as endYear) - projectionStartYear (for example, if the first year of estimates is '2023-24', set this to 2023) - plotBandBuffer (this determines the # months of padding for the beginning of the estimates plot band. if there are multiple years of estimates, set a small buffer like -1, otherwise set it to a larger negative number, e.g. -7, for more space) - inflation_idx (array of years and CPI values. typically we update the most recent years to track accurate inflation) - benchmark (set to the current year)

3. Preview

To preview changes locally:

python -m SimpleHTTPServer

4. Share preview with client

Open a pull requst with the latest changes. This will create a deploy preview in netlify that you can share with the client for review.

4. Deploy

The site is hosted on Netlify, so deploy previews are available if you make a pull request.

To deploy to production, push the changes into the deploy branch:

git push origin main
git push origin main:deploy

Live changes will be seen at https://ny-budget.datamade.us

How to adapt this to another budget

This code can be customized to visualize another data set.

Data Prepatation

The budget data must be a csv that adheres to a fixed format in order for the app to process it properly. Budget column headers include: Fund ID, Fund, Department ID, Department, Short Title, Link to Website, Department Description, and Control Officer. Values for estimates and actuals must be broken down into a separate column for each year.

See examples of prepped data: - New Orleans - Cook County - Macoupin County - A blank template to populate

If you need to do any preparation on your raw data to get it into the finished format (e.g. formatting dollar amounts, removing whitespace, adding descriptions), do it in a script so that it will be repeatable in the future. See an example script in data/cleanup.py.

Configuration

  1. Put your finished budget csv file in the data/ folder

  2. Next, set the configuration variables in js/settings.js

Team

  • Cathy Deng, DataMade
  • Derek Eder, DataMade

Errors / bugs

If something is not behaving intuitively, it is a bug, and should be reported as an issue

You can also email info@datamade.us or tweet @DataMadeCo.

Note on patches/pull requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Commit and send me a pull request. Bonus points for topic branches.

Copyright and Attribution

Copyright (c) 2016 DataMade. Released under the MIT License.

Core symbols most depended-on inside this repo

p
called by 149
lib/highcharts.js
q
called by 131
lib/html5shiv.js
i
called by 105
lib/html5shiv.js
$
called by 80
lib/highcharts.js
n
called by 73
lib/jquery.dataTables.js
s
called by 71
lib/highcharts.js
r
called by 65
lib/highcharts.js
A
called by 40
lib/jquery.dataTables.js

Shape

Function 269

Languages

TypeScript99%
Python1%

Modules by API surface

lib/jquery.dataTables.js78 symbols
lib/jquery.min.js71 symbols
lib/highcharts.js58 symbols
lib/spin.min.js12 symbols
lib/underscore.min.js8 symbols
lib/respond.min.js8 symbols
lib/backbone.min.js7 symbols
lib/accounting.min.js7 symbols
lib/html5shiv.js5 symbols
lib/bootstrap.min.js5 symbols
lib/fuse.min.js4 symbols
lib/jquery.csv.min.js3 symbols

For agents

$ claude mcp add ny-budget \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact