Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1043, in forwardlooking_activities_current
    and not bool(self._forwardlooking_exclude_in_calculations(year=year, date_code_runs=date_code_runs))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 967, in _forwardlooking_exclude_in_calculations
    self._get_ratio_commitments_disbursements(year) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 926, in _get_ratio_commitments_disbursements
    get_USD_value(x[0], x[1], x[2].year)
  File "/work/IATI-Stats/helpers/currency_conversion/__init__.py", line 35, in get_USD_value
    usd_value = (1 / currency_values[input_currency][int(year)]) * float(input_value)
                                                                   ^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: '2,470'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Error in iati-data/datasets/wwf-uk/wwf-uk-org_15.xml: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1043, in forwardlooking_activities_current
    and not bool(self._forwardlooking_exclude_in_calculations(year=year, date_code_runs=date_code_runs))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 967, in _forwardlooking_exclude_in_calculations
    self._get_ratio_commitments_disbursements(year) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 926, in _get_ratio_commitments_disbursements
    get_USD_value(x[0], x[1], x[2].year)
  File "/work/IATI-Stats/helpers/currency_conversion/__init__.py", line 35, in get_USD_value
    usd_value = (1 / currency_values[input_currency][int(year)]) * float(input_value)
                                                                   ^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: '1,044'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1043, in forwardlooking_activities_current
    and not bool(self._forwardlooking_exclude_in_calculations(year=year, date_code_runs=date_code_runs))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 967, in _forwardlooking_exclude_in_calculations
    self._get_ratio_commitments_disbursements(year) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 926, in _get_ratio_commitments_disbursements
    get_USD_value(x[0], x[1], x[2].year)
  File "/work/IATI-Stats/helpers/currency_conversion/__init__.py", line 35, in get_USD_value
    usd_value = (1 / currency_values[input_currency][int(year)]) * float(input_value)
                                                                   ^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: '1,044'
Error in iati-data/datasets/wwf-uk/wwf-uk-org_15.xml: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1043, in forwardlooking_activities_current
    and not bool(self._forwardlooking_exclude_in_calculations(year=year, date_code_runs=date_code_runs))
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 967, in _forwardlooking_exclude_in_calculations
    self._get_ratio_commitments_disbursements(year) is not None
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 926, in _get_ratio_commitments_disbursements
    get_USD_value(x[0], x[1], x[2].year)
  File "/work/IATI-Stats/helpers/currency_conversion/__init__.py", line 35, in get_USD_value
    usd_value = (1 / currency_values[input_currency][int(year)]) * float(input_value)
                                                                   ^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: '3,035'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Error in iati-data/datasets/wwf-uk/wwf-uk-org_15.xml: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Error in iati-data/datasets/wv_et_activities/wv_et_activities-activity.xml: [<class 'decimal.ConversionSyntax'>]
Error in iati-data/datasets/wv_et_activities/wv_et_activities-activity.xml: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
Unsupported version '' in iati-data/datasets/iraq_foundation/iraq_foundation-activities.xml
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
TypeError: conversion from NoneType to Decimal is not supported
Could not parse file iati-data/datasets/unocha-cbpf/unocha-cbpf-southsudan-allocation-2025.xml
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 549, in by_hierarchy
    out[stat] = copy.deepcopy(getattr(self, stat)())
                              ^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 40, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 829, in forwardlooking_currency_year
    budget_value = 0 if value is None else Decimal(value.text)
                                           ^^^^^^^^^^^^^^^^^^^
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_year_usd().get(transaction_type, {}).get("USD", {}).values())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 26, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 14, in wrapper
    self.cache[f.__name__] = f(self)
                             ^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1794, in sum_transactions_by_type_by_year_usd
    if year > 2014:
       ^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 88, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1858, in activities_with_future_transactions
    if transaction_date(transaction) > self.today:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'datetime.date'
Traceback (most recent call last):
  File "/work/IATI-Stats/statsrunner/loop.py", line 29, in call_stats
    this_out[name] = function()
                     ^^^^^^^^^^
  File "/work/IATI-Stats/stats/common/decorators.py", line 56, in wrapper
    out = f(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/work/IATI-Stats/stats/analytics.py", line 1875, in sum_commitments_and_disbursements_by_activity_id_usd
    self._sum_transactions("C")
  File "/work/IATI-Stats/stats/analytics.py", line 1870, in _sum_transactions
    return sum(self.sum_transactions_by_type_by_ye