From 9d80f57ebc24deaf6f0ea35bb795a78fc387c634 Mon Sep 17 00:00:00 2001 From: Nicolas Dickinson Date: Mon, 2 Dec 2024 17:32:59 +0100 Subject: [PATCH] Adding LOST and thresholds and updating database; update git ignore --- .gitignore | 2 + README.md | 2 +- example-filltable.py | 123 ++++++++++++++++++++++++++++++++ state_sales_tax_thresholds.xlsx | Bin 0 -> 22479 bytes ttaxt.db | Bin 36864 -> 53248 bytes 5 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 state_sales_tax_thresholds.xlsx diff --git a/.gitignore b/.gitignore index 5d381cc..f7b964f 100644 --- a/.gitignore +++ b/.gitignore @@ -160,3 +160,5 @@ cython_debug/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ +LOST_July_2024_Rate_Table.xlsx +~*.xlsx diff --git a/README.md b/README.md index 52bb800..e4dad4b 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ Later on, Avalara could be used if thresholds set in the us_sales_tax_compliance ## Example -So far the only code that works is the example-filltable.py which scrapes data from the web and populates the tables with data for VAT rates and reverse charge mechanisms but does not yet include U.S. sales tax compliance. Open to suggestions on how to improve this to include U.S. sales tax compliance. +So far the only code that works is the example-filltable.py which scrapes data from the web and populates the tables with data for VAT rates and reverse charge mechanisms. Open to suggestions on how to improve this. ## Setup The SQL script provided in this repository will create the following tables: diff --git a/example-filltable.py b/example-filltable.py index a2784d3..275f014 100644 --- a/example-filltable.py +++ b/example-filltable.py @@ -40,6 +40,17 @@ CREATE TABLE IF NOT EXISTS vat_rules ( vat_action INTEGER DEFAULT NULL, PRIMARY KEY (country_code, is_registered) ); + +CREATE TABLE IF NOT EXISTS us_sales_tax_compliance ( + state_code TEXT PRIMARY KEY, + sales_threshold REAL, + transaction_threshold INTEGER, + sales_tax_rate REAL, + threshold_reached BOOLEAN, + sales_block BOOLEAN, + total_sales REAL, + total_transactions INTEGER +); ''') logging.info("Tables created successfully") @@ -173,6 +184,118 @@ conn.commit() conn.close() logging.info("Database connection closed") +# Let's download the U.S. sales tax compliance data from the web +# From: https://taxfoundation.org/wp-content/uploads/2024/07/LOST_July_2024_Rate_Table.xlsx + +# Define file paths +lost_file_path = "LOST_July_2024_Rate_Table.xlsx" + +# This is data manually gathered from the sources indicated in the file to crosscheck facts +thresholds_file_path = "state_sales_tax_thresholds.xlsx" + +# Check if files exist, download if they don't +if not os.path.exists(lost_file_path): + logging.info("Downloading U.S. sales tax compliance data") + url = "https://taxfoundation.org/wp-content/uploads/2024/07/LOST_July_2024_Rate_Table.xlsx" + response = requests.get(url) + if response.status_code == 200: + with open(lost_file_path, "wb") as file: + file.write(response.content) + logging.info("U.S. sales tax data downloaded successfully") + else: + logging.error(f"Failed to download U.S. sales tax data. Status code: {response.status_code}") + raise Exception("Failed to download U.S. sales tax data") +else: + logging.info("U.S. sales tax data file already exists, using existing file") + +if not os.path.exists(thresholds_file_path): + logging.error("State sales tax thresholds file not found") + raise FileNotFoundError("state_sales_tax_thresholds.xlsx is missing") +else: + logging.info("Using existing state sales tax thresholds file") + +# Read the Excel files +logging.info("Reading U.S. sales tax and threshold data from Excel files") +lost_df = pd.read_excel(lost_file_path, sheet_name="Sheet1") +thresholds_df = pd.read_excel(thresholds_file_path, sheet_name=0) # Explicitly read the first sheet + +def clean_state_name(state_name): + if pd.isna(state_name): + return pd.NA + return str(state_name).split('(')[0].strip() + +# Clean state names in both dataframes +lost_df['State'] = lost_df['State'].apply(clean_state_name) +thresholds_df['State Name'] = thresholds_df['State Name'].apply(clean_state_name) + +# Process and insert data into us_sales_tax_compliance table +logging.info("Processing and inserting U.S. sales tax and threshold data") +conn = sqlite3.connect(db_path) +cursor = conn.cursor() + +for _, threshold_row in thresholds_df.iterrows(): + state_name = threshold_row['State Name'] + state_code = threshold_row['State Code'] + sales_threshold = threshold_row['Threshold'] + transaction_threshold = threshold_row['Transactions'] + + # Skip rows where state_name is NA or null + if pd.isna(state_name): + logging.info(f"Skipping row with NA state name in thresholds data") + continue + + logging.info(f"Processing state: {state_name}") + + # Find corresponding LOST data + lost_row = lost_df[lost_df['State'] == state_name] + if not lost_row.empty: + combined_rate = lost_row['State Tax Rate'].values[0] + logging.info(f"LOST data found - Combined rate: {combined_rate}") + else: + combined_rate = None + logging.warning(f"No LOST data found for {state_name}") + + # Convert 'None' to None for SQLite + sales_threshold = None if pd.isna(sales_threshold) else sales_threshold + transaction_threshold = None if pd.isna(transaction_threshold) else transaction_threshold + combined_rate = None if pd.isna(combined_rate) else combined_rate + + # Remove '$' and ',' from sales_threshold if it's not None + if sales_threshold is not None: + sales_threshold = float(str(sales_threshold).replace('$', '').replace(',', '')) + + logging.info(f"Inserting data for {state_name}: State Code: {state_code}, Sales threshold: {sales_threshold}, Transaction threshold: {transaction_threshold}, Combined rate: {combined_rate}") + cursor.execute(''' + INSERT OR REPLACE INTO us_sales_tax_compliance + (state_code, sales_threshold, transaction_threshold, sales_tax_rate, threshold_reached, sales_block, total_sales, total_transactions) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + ''', (state_code, sales_threshold, transaction_threshold, combined_rate, False, False, 0, 0)) + logging.info(f"Data inserted for {state_name}") + +conn.commit() +logging.info("U.S. sales tax compliance data inserted successfully") + +# Check for any states in LOST data that weren't in thresholds data +lost_states = set(lost_df['State'].dropna()) +threshold_states = set(thresholds_df['State Name'].dropna()) +missing_states = lost_states - threshold_states +if missing_states: + logging.warning(f"States in LOST data but not in thresholds data: {missing_states}") + +# Print table +logging.info("Fetching all U.S. sales tax compliance data from database") +cursor.execute(''' + SELECT * FROM us_sales_tax_compliance +''') +us_tax_data = cursor.fetchall() +logging.info(f"Total U.S. sales tax entries: {len(us_tax_data)}") +logging.info(f"First few U.S. sales tax entries:\n{us_tax_data[:5]}") + +conn.close() +logging.info("Database connection closed") + +logging.info(f"Excel files kept at: {lost_file_path} and {thresholds_file_path}") + # Provide the path to the created SQLite database logging.info(f"SQLite database created at: {db_path}") db_path diff --git a/state_sales_tax_thresholds.xlsx b/state_sales_tax_thresholds.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..31f8040b84df79dc9056e8fe747b0eb74d80bb33 GIT binary patch literal 22479 zcmeFYWka0JwkAw)cXxM(;2zvvf=lD>?(QB4!QBb&?(P!YA-F@Zx0CE=&zbk^nLlub z58X-2s;X7%lKWm=iZWo}=pc|F&>$cnBp{U1f+SHNKtM7eK|s(zph2}i+1WY+Y@PL0 zJ?sHax{U5N*2H<>pwu}apuo@nzrX*%8R%D&Q|M!c?;yJ(D$`NQuz?DmZY6+RdyMxd zGC*~!Or=yZGI)MyHk5^qQ41$!Z1~ZC!Owd)=GcXeK3OG<#B>g>VrxawwdG*yLK^fdb?w0OU~D=1R)+;TGF=Ljx}V`l6Fh`j z5&w5vZ$3jDk#oS2dMDNL!MdZBNIpwjkPzo|Eqn{d^+L!(l2iE(^DtpbRT*x`kJ7_b zUPVzNWakQ$(vM=1VsJ69(?0%!HnFTBSKT75zfdocTx8#*psxJFSo!@nBf;lX+zVoQ zxNfhgrUedgL4SI|^5q7>Jw~tR=Zk?Nfcvq4E@__8C_lHi}^WBa=*h~5rvA* zOV;RC8T#dyg9{WbrDLkNL&bJKitEDN!hO1gv(p}l%D$bTDFCS^x`WSx>2qR6@P`&`d{ zHJ0ho&k564K72V67)4aF0hF`<4ieOZRLNB!Kx}|QhXl-wyET)WouieJot@Qhktwtjm8+ryDD5e`nImv|V@nM=CZjBS#x z{vut;4-!u)QP|*u2_BkSL3$v$AS+^0=qyGrd#7t)IU#8%J!nl4NDV)iL#mUZ5Y~!`U3;6NVYPC8upm6r|+98*w-(fXI`0=3om zN|00<0Ct$pDsgy>#JG21GawLDQ?8xUdOhj|DEFw*YdxQgum=o}SbMO^4AWElYa
f+{Dp=5}tHsGf} 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 Kfqw%R=l=ngf08W# delta 7378 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 Ihhl;M1-ZIsv;Y7A